EPUB FACTORY
EPUB verstehen / Grundlagen
Grundlagen

Was steckt in einer EPUB-Datei?
entpacken und sich die Mechanik ansehen

Eine EPUB-Datei ist in Wahrheit ein ZIP. Ändern Sie die Endung, und jeder kann sie öffnen und hineinsehen. Dieser Artikel geht durch, was beim Entpacken tatsächlich darin liegt und was jede Datei tut. Wenn Sie die Mechanik kennen, können Sie erraten, wo zu suchen ist, wenn etwas nicht angezeigt wird.
In diesem Artikel
  1. Ein EPUB entpacken
  2. Die Gesamtform
  3. mimetype ── die seltsamste Datei
  4. container.xml ── der Wegweiser
  5. content.opf ── das Herz des Buches
  6. nav.xhtml ── das Inhaltsverzeichnis
  7. Text, CSS und Bilder
  8. Warum es schwer ist, eines von Hand zu bauen

Ein EPUB entpacken

Fangen Sie damit an, es zu tun. Wenn Sie ein EPUB zur Hand haben, braucht es nur dies.

1Kopieren Sie die EPUB-Datei (damit das Original unbeschädigt bleibt)
2Ändern Sie die Endung von .epub auf .zip
3Entpacken Sie wie gewohnt

Das war es. Keine besondere Software. Ein EPUB ist ein ZIP, es entpackt sich also ohne auch nur eine Warnung.

Umgekehrt geht es nicht

Man könnte denken: „Wenn es sich entpacken lässt, dann macht das Komprimieren eines Ordners und das Umbenennen auf .epub ein EPUB.“ So einfach ist es nicht, wegen der Regeln dazu, wie es komprimiert sein muss, die im nächsten Abschnitt beschrieben werden.

Die Gesamtform

Entpackt sieht es in der Regel so aus.

Der entpackte Ordner
├── mimetype       kennzeichnet diese Kiste als EPUB
├── META-INF/
│  └── container.xml  weist den Weg zum eigentlichen Buch
└── OEBPS/       der Ordner, der das Buch enthält
  ├── content.opf   Angaben zum Buch, Liste der Inhalte, Lesereihenfolge
  ├── nav.xhtml    Inhaltsverzeichnis
  ├── text/
  │  ├── p001.xhtml  der Text (eine Datei pro Seite)
  │  └── p002.xhtml
  ├── image/
  │  └── cover.jpg   das Cover und weitere Bilder
  └── style/
    └── book.css   Aussehen

OEBPS — dieser Ordnername und wie die Dinge darin aufgeteilt sind, hängen vom Werkzeug ab, das die Datei gebaut hat. Es könnte stattdessen item oder xhtml heißen, und das ist völlig in Ordnung.

Was Sie nicht ändern können, weder im Namen noch in der Position, ist mimetype ganz vorn und META-INF/container.xml . Diese beiden sind fest und alles andere ist frei — das ist Schritt eins, um die Struktur zu verstehen.

mimetype ── die seltsamste Datei

Ihr Inhalt ist eine einzige Zeile.

application/epub+zip

Ihre Aufgabe ist zu erklären: „Dieses ZIP ist ein EPUB.“ Aber sie kommt mit strengen Regeln, die keine andere Datei hat.

Eine Leseanwendung kann allein anhand der ersten paar Bytes der Datei entscheiden: „Das ist ein EPUB.“ Deshalb sind Position und Form festgenagelt.

Hier fallen von Hand gebaute EPUB zuerst um

Komprimieren Sie einen Ordner mit einem gewöhnlichen Werkzeug, können Sie die Dateireihenfolge nicht wählen, und mimetype wird mit allem anderen zusammen komprimiert. Das Ergebnis: Sie benennen es auf .epub um und Leseanwendungen öffnen es nicht.

Die Bedingung „zuerst, unkomprimiert“ zu erfüllen heißt, die Komprimierung in zwei getrennten Schritten laufen zu lassen. Das ist das Allererste, was ein EPUB-Bauwerkzeug tut.

container.xml ── der Wegweiser

META-INF/container.xml sieht so aus.

<?xml version="1.0" encoding="UTF-8"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
  <rootfiles>
    <rootfile full-path="OEBPS/content.opf"
      media-type="application/oebps-package+xml"/>
  </rootfiles>
</container>

Sie tut genau eine Sache: Sie sagt „die Angaben zum Buch stehen in OEBPS/content.opf.

Wegen dieses Wegweisers dürfen die Ordnernamen frei sein. Eine Leseanwendung schaut zuerst in META-INF/container.xml und geht dorthin, wohin er zeigt.

content.opf ── das Herz des Buches

Das ist die wichtigste Datei in einem EPUB. Sie zerfällt in drei Teile.

TeilWas er tut
metadataTitel, Autorschaft, Sprache — die Angaben zum Buch selbst
manifestEine Liste aller enthaltenen Dateien
spineDie Reihenfolge, in der geblättert wird

metadata ── die Angaben zum Buch

<metadata>
  <dc:title>Alice im Wunderland</dc:title>
  <dc:creator>Lewis Carroll</dc:creator>
  <dc:language>de</dc:language>
  <dc:identifier id="uid">urn:uuid:xxxxxxxx</dc:identifier>
  <meta property="dcterms:modified">2026-08-04T00:00:00Z</meta>
</metadata>

Im Auge behalten sollte man dc:title . Was im Regal einer Leseanwendung erscheint, ist dieser Wert, nicht der Dateiname. So sorgfältig Sie die Datei auch benannt haben — ist dies leer, zeigt das Regal „Untitled“.

dc:language zählt ebenfalls. Setzen Sie de für Deutsch, ja für Japanisch. Ohne das wendet eine Leseanwendung womöglich die Satzregeln der Sprache nicht an — was am stärksten im Japanischen zu Buche schlägt.

manifest ── die Liste der enthaltenen Dateien

<manifest>
  <item id="nav" href="nav.xhtml" media-type="application/xhtml+xml" properties="nav"/>
  <item id="p001" href="text/p001.xhtml" media-type="application/xhtml+xml"/>
  <item id="css" href="style/book.css" media-type="text/css"/>
  <item id="cover" href="image/cover.jpg" media-type="image/jpeg"/>
</manifest>

Jede Datei im EPUB muss hier angemeldet sein. Fügen Sie ein Bild hinzu und vergessen Sie es anzumelden — allein das ist schon ein Fehler. Umgekehrt — angemeldet, aber nicht vorhanden — ist ebenfalls ein Fehler.

Die Datei des Inhaltsverzeichnisses ist mit properties="nav" markiert; so sagt sie „diese Datei ist das Inhaltsverzeichnis“.

spine ── die Lesereihenfolge

<spine page-progression-direction="rtl">
  <itemref idref="p001"/>
  <itemref idref="p002"/>
</spine>

manifest ist die Liste dessen, was drin ist; spine ist die Reihenfolge, in der es gelesen wird. Die Reihenfolge hier wird zur Seitenreihenfolge.

Und der Teil, der bei einem japanischen Buch am meisten zählt, ist page-progression-direction .

WertBedeutungBücher, die ihn nutzen
rtlLäuft von rechts nach linksVertikalsatz, Manga
ltrLäuft von links nach rechtsHorizontalsatz

Lassen Sie das bei einem vertikal gesetzten Buch weg, und die Seiten blättern falsch herum. Es gehört zum Ersten, was zu prüfen ist, wenn der Vertikalsatz nicht funktioniert.

nav.xhtml ── das Inhaltsverzeichnis

EPUB 3 verlangt das Inhaltsverzeichnis immer als eigene Datei. Es sieht aus wie eine gewöhnliche HTML-Linkliste und wird durch die Markierung epub:type="toc" unterschieden.

<nav epub:type="toc">
  <ol>
    <li><a href="text/p001.xhtml">Kapitel 1</a></li>
    <li><a href="text/p002.xhtml">Kapitel 2</a></li>
  </ol>
</nav>

Das ist es, was erscheint, wenn die lesende Person auf die Inhaltsverzeichnis-Schaltfläche drückt. Fehlt eine verlinkte Datei, haben Sie ein Buch, in dem man nicht navigieren kann.

Womöglich finden Sie dort auch toc.ncx

Im alten EPUB 2 erledigte eine Datei namens toc.ncx die Arbeit des Inhaltsverzeichnisses. EPUB 3 hat sie durch nav.xhtml ersetzt, aber manche EPUB enthalten beide, damit ältere Leseanwendungen weiterhin funktionieren.

Text, CSS und Bilder

Von hier an ist es weitgehend dasselbe wie bei einer Webseite.

Wie Sie den Text aufteilen, bleibt Ihnen überlassen, aber eine zu große Einzeldatei macht Leseanwendungen träge, eine Aufteilung nach Kapiteln ist deshalb üblich.

Warum es schwer ist, eines von Hand zu bauen

Wie Sie gesehen haben, ist die Struktur eines EPUB nicht kompliziert. Text, Bilder und Gestaltungsanweisungen, in eine Kiste gepackt mit einem Wegweiser und einer Liste — mehr ist es nicht.

Die zu befolgenden Regeln sind allerdings pingelig.

Fehlt eines, lässt sich das Buch nicht öffnen oder wird beim Einreichen im Shop abgewiesen. Und die Ursache des Fehlers ist an dem, was auf dem Bildschirm zu sehen ist, meist nicht erkennbar.

Deshalb nutzt man in der echten Produktion ein Werkzeug, das die Struktur aus einem Manuskript oder aus Bildern zusammensetzt. Trotzdem heißt einmal hineingeschaut zu haben, dass Sie erraten können, wo zu suchen ist, wenn etwas schiefgeht — und genau darum geht es in diesem Artikel.

Die Struktur wird für Sie zusammengesetzt

EPUB FACTORY baut jeden hier beschriebenen Teil der Struktur automatisch. Wählen Sie einfach einen Bilderordner oder ein Textmanuskript. Ohne Konto, ohne Installation.

EPUB FACTORY ausprobieren