Kompresja pliku Epub i błąd epubCheck.

0

Witam. Jak wiadomo plik epub to e-book, a tak na prawde skompresowany html, zdjęcia i xml-e. Między innymi jest tam również mimetype, który jest niczym innym jak contentType i w moim przypadku brzmi " application/epub+zip "

Problem polega na tym, że po przepuszczeniu go przez epubCheck-a wyskakuje mi błąd :
"Mimetype entry must not have an extra field in its ZIP header"

z tego co czytam to chodzi o to że plik mimetype nie może zostać skompresowany. a pozostać w epubie taki jaki jest, ponieważ nie może mieć nagłówka w zip-ie. Metoda która u mnie pakuje uprzednio zwatermarkowanego epuba, wygląda następująco :

 public void SaveToFile(string zipFileToCreate)
        {
            try
            {
                ZipFile zip = new ZipFile();
                zip.StatusMessageTextWriter = System.Console.Out;
                zip.AddDirectory(this.path);
                zip.Save(zipFileToCreate);
                zip.Dispose();
            }
            catch (Exception e)
            {
                log.Error("Nie udało się ponownie spakować pliku epub: " + e.Message);
                throw new Exception("Nie udało się ponownie spakować pliku epub", e);
            }
        }

czy ZipFile, ewentualnie inny lib, potrafi pakować epuby, lub pakować w ten sposób by móc wskazać że ten plik ma na przykład nie podlegać kompresji, ale oczywiście znajdować się w Epub-ie ?

Z góry dziękuję.

0

Nie znam się na tej bibliotece (to jest DotNetZip?), ale wygląda na to, że musisz użyć:

zip.CompressionMethod = CompressionMethod.None;

Tylko to chyba działa w odniesieniu do całej paczki, a nie tylko do pojedynczego wpisu (pliku).

http://web.archive.org/web/20130906002633/http://dotnetzip.herobo.com/DNZHelp/html/1ca46ce6-8a3f-a219-f572-c62518f3a45b.htm

0

Nie do końca wiem jak to zaimplementować w tej metodzie.

0

Wie ktoś z was jak na przykład pojedynczo zapodać każdy plik do skompresowania a cały epub kompresować metodą None ??

1 użytkowników online, w tym zalogowanych: 0, gości: 1