Eine einfache EPUB-Datei

EPUB-Dateien sind eigentlich ganz einfach aufgebaut. Es sind nämlich nur ZIP-Archive, die eine bestimmte Verzeichnisstruktur abbilden. Die Abbildung zeigt einen einfachen Fall.

Struktur einer einfachen EPUB-Datei
Struktur einer einfachen EPUB-Datei

Die allererste Datei muß immer die Datei mit dem Namen mimetype sein, und die darf auch nicht komprimiert sein. Sie enthält den MIME Type von EPUB – application/epub+zip. Da sie an erster Stelle im Archiv liegt und auch nicht komprimiert ist, können z.B. Dateiwerkzeuge, die typischerweise nur die ersten paar Byte einer Datei lesen, um deren Typ herauszubekommen, schnell erkennen, dass es sich hierbei um eine EPUB-Datei im Zip-Format handelt.

Danach folgt das Standardverzeichnis META-INF. Wie der Name schon andeutet, es handelt sich bei den Inhalten dieses Verzeichnisses um Meta-Informationen zu den Inhalten des EPUBs. Die hier abgebildete Datei container.xml ist nicht die einzige, die sich in META-INF befinden kann, aber sie ist die wichtigste Datei, und sie muss vorhanden sein.

Auch in diesem Fall ist der Name sprechend. container.xml enthält Informationen darüber, was sich im Container, der EPUB-Datei, befindet. Die Einträge in dieser Datei zeigen, auf die Wurzeldateien der eigentlichen Inhalte, der Texte. Ein Eintrag muss dort vorhanden sein, der auf die Inhalte im EPUB-Standardformat (also XHTML). Es können aber noch weitere Ausgaben derselben Inhalte in anderen Formaten vorhanden sein, zum Beispiel eine PDF-Datei. Ein EPUB-Leseprogramm auf einem PC könnte so ggf. der PDF-Fassung den Vorzug vor dem HTML geben. Solche alternativen Fassungen sind aber optional.

Im Falle des Standardformats zeigt die container.xml aber nicht direkt auf die eigentlich HTML-Datei mit dem Inhalt, wie man es erwarten würde, sondern sie zeigt auf eine weitere Datei mit Metadaten, content.opf. Diese Datei enthält nun aber Metadaten zum eigentlichen Inhalt, meist bibiographische Angaben wie Autor, Titel usw. Zu guter Letzt zeigt diese Datei wiederum dann auf den Beginn des Textes, um den es eigentlich geht. Dieser liegt dann im XHTML-Format vor.

Natürlich können mehrere HTML-Dateien mit Kapitelstrukturen vorhanden sein, ebenso wie die üblichen Bilddateien und Stylesheets.

Alle diese Dateien werden in content.opf aufgelistet. Dazu gibt es aber noch ein Inhaltverzeichnis in Form der Datei toc.ncx. Hier soll die typische Lesereihenfolge aufgelistet werden.

Ziemlich viele Dateien und Metadaten, aber doch nicht so schwierig. Immerhin hat man so einen ziemlich flexiblen Standard, der es ermöglicht verschiedenste Gerätearten mit einer EPUB-Datei abzudecken. Ob die Leseprogramme für EPUB diese Flexibilität auch nutzen, und dem Leser, die verschiedenen Inhalts-Fassungen auch anbieten, dass ist eine ganz andere Frage.

Quellen:


Kommentare

  1. Neben XHTML ist DTBook ein weiteres XML-Format, dass laut Standard von EPUB-Readern unterstützt werden muss. Obwohl es gegenüber XHTML den Vorteil des semantischen Taggings hat (z.B. bei Fußnoten), wurde es nach meiner Erfahrung anfänglich von den meisten Hard- und Software-Readern schlechter unterstützt als XHTML. Schade, denn dadurch wird es heute kaum benutzt.

    P.S.: Das Hello-World-Beispiel aus der Wikipedia kann man zu einem funktionierendem EPUB zusammenkopieren/-komprimeren.

  2. Genau das war das Problem. Ich hatte keinen Anwendungsfall gesehen für DTBook, es daher als “Erbschaft aus der Vergangenheit” angesehen und rausgelassen.

    P.S.: Pardon für die späte Veröffentlichung es Kommentars, aber irgendwo ging die Benachrichtigung verloren…

Kommentare sind geschlossen.