ePUBs „zippen“

Den meisten Leuten ist klar, dass ein ePUB nichts anderes ist als eine .zip-Datei. Das heißt im Umkehrschluss, dass man jede „.epub“-Datei einfach brutal in „.zip“ umbenennen kann. Vorausgesetzt natürlich, dass man sich die Dateiendungen mitanzeigen lässt. Entpackt man diese Datei, enthält sie die hier schon mehrfach angesprochenen drei Dinge: META-INF-Ordner, mimetype-Datei und Inhaltsordner bzw. Inhalt. Da der gesamte Inhalt nun schlichtes HTML ist, ist es kein Problem, da etwas zu ändern. Man kann zwar viel Mist bauen, aber davon abgesehen, kann man Dinge ändern. Problematisch wird es dann, wenn man versucht, die Datei wieder zu zippen und in „.epub“ umzubenennen, denn hier bekommt man häufig Fehlermeldungen, auch dann, wenn man nichts geändert hat, die Datei also funktionieren müsste.

Die Ursache für diesen Fehler ist die Reihenfolge innerhalb des zip-Archivs. Damit die Datei ein gültiges ePUB wird, muss die mimetype-Datei als Erstes gespeichert werden. Dies geschieht unter Windows automatisch und zwar Aufgrund eines Fehlers, der normalerweise tierisch nervt. Markiert man unter Windows nämlich mehrere Dateien, wird die oberste mit der untersten vertauscht. Da die meisten Inhaltsordner „Content“, „Inhalt“ oder „OEBPS“ heißen und die Anzeige der Dateimanager meistens auf „Alphabetisch“ steht, ist die mimetype-Datei ganz unten, also nach dem Zippen ganz oben. Bei Linux und Mac, die die Dateien in der korrekten Reihenfolge zippen, aber nicht.

Um eine korrekte ePUB zu erzeugen, muss man die mimetype-Datei zuerst alleine zippen und die beiden Ordner dann zu diesem Archiv hinzufügen.

Unter Linux reicht folgender Konsolenbefehl:

zip -r -X ./Dateiname.epub ./mimetype ./META-INF ./OEBPS

edit vom 13.06.2012: Sollte es auch unter Windows mal nicht klappen hier ein Tipp von ThomasM@XMLArbyter: Unter Windows alternativ Info-Zip (zip.exe) oder ePubPack verwenden.

Leave a comment

Deine E-Mail-Adresse wird nicht veröffentlicht.


*