Das EPUB-Format
EPUB (Akronym für electronic publication) ist ein offener Standard für E-Books vom International Digital Publishing Forum (IDPF), der den älteren Standard Open eBook (OEB, bzw. Open eBook Publication Structure, OEBPS) ersetzt.
Er unterstützt DRM-Mechanismen, definiert aber keine Implementierung sondern überläßt dies der jeweiligen Lesesoftware. Annotationen wie Notizen, Lesezeichen etc. sind nicht Teil des Standards.
Auf EPUB basierende E-Books erlauben eine dynamische Anpassung des Textes an die jeweilige Bildschirmgröße des Lesers und eignen sich damit insbesondere für die Ausgabe auf Mobile Devices. Im Gegensatz dazu wird beispielsweise der Text bei PDF wie im gedruckten Buch angezeigt. Bei kleinen Ausgabegeräten kann eine derartige Darstellung jedoch für den Leser unbefriedigend sein, falls er bei einer individuell angenehmen Anzeigegröße des Textes häufig hin- und herscrollen muss.
Aufbau einer EPUB-Datei
Eine EPUB-Datei ist eine Zip-Datei, deren Inhalt gemäß dem OEBPS Container Format (OCF) aufgebaut ist. Der Standard erfordert minimal
* eine unkomprimierte Datei mimetype mit dem Inhalt application/epub+zip im Wurzelverzeichnis als erste Datei im Archiv,
* ein Verzeichnis META-INF mit der Datei container.xml, die auf die Stammdatei der Publikation verweist,
* eine Stammdatei entsprechend dem Open Packaging Format (OPF), die Metadaten bereitstellt, alle Dateien der Publikation auflistet und auf eine Inhaltsdatei verweist,
* ein Inhaltsverzeichnis zur Navigation durch die Publikation (eine XML-Datei im NCX-Format) und
* mindestens eine Inhaltsdatei, entsprechend der Open Publication Structure (OPS) 2.0 in der Regel als XHTML- oder DTBook-Datei.
Das Dateisystem in einer minimalen EPUB-Datei könnte so aussehen:
mimetype
META-INF/
container.xml
inhalt.opf
inhalt.ncx
inhalt.xhtml
Dabei können die einzelnen Dateien innerhalb des Zip-Archives folgende Inhalte haben:
mimetype [Bearbeiten]
application/epub+zip
container.xml [Bearbeiten]
<?xml version="1.0" encoding="UTF-8"?>
<container
xmlns="urn:oasis:names:tc:opendocument:xmlns:container"
version="1.0">
<rootfiles>
<rootfile
full-path="inhalt.opf"
media-type="application/oebps-package+xml"/>
</rootfiles>
</container>
inhalt.opf [Bearbeiten]
Dies ist die Stammdatei. Im Abschnitt manifest werden alle Dateien, die entsprechend der OPF-Spezifikation im Archiv gespeichert werden, aufgelistet. Der Abschnitt spine ist ein minimales Inhaltsverzeichnis, mit dem Attribut toc wird auf das ausführliche Inhaltsverzeichnis verwiesen.
<?xml version="1.0" encoding="UTF-8"?>
<package
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:opf="http://www.idpf.org/2007/opf"
xmlns="http://www.idpf.org/2007/opf"
version="2.0"
unique-identifier="BookId">
<metadata>
<dc:language xsi:type="dcterms:RFC3066">de-DE</dc:language>
<dc:title>Hello World</dc:title>
<dc:identifier id="BookId">id_Hello_World</dc:identifier>
</metadata>
<manifest>
<item id="ncx" href="inhalt.ncx" media-type="application/x-dtbncx+xml"/>
<item id="Datei_1" href="inhalt.xhtml" media-type="application/xhtml+xml"/>
</manifest>
<spine toc="ncx">
<itemref idref="Datei_1"/>
</spine>
</package>
inhalt.ncx [Bearbeiten]
Diese Datei enthält ein detailliertes Inhaltsverzeichnis im Abschnitt navMap. Jedem Eintrag wird im Attribut playOrder eine Position innerhalb der Reihenfolge der wiederzugebenden Texte zugeordnet.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ncx
PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd">
<ncx
xmlns="http://www.daisy.org/z3986/2005/ncx/"
version="2005-1"
xml:lang="de-DE">
<head>
<meta name="dc:Title" content="Hello World"/>
<meta name="dtb:uid" content="id_Hello_World"/>
</head>
<docTitle>
<text>Hello World</text>
</docTitle>
<navMap>
<navPoint playOrder="1" id="id_Hello_World_01">
<navLabel>
<text>Hello World</text>
</navLabel>
<content src="inhalt.xhtml"/>
</navPoint>
</navMap>
</ncx>
inhalt.xhtml [Bearbeiten]
Der eigentliche Inhalt des Beispiel-E-Books ist eine einfache XHTML-Datei.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="schema.DC" href="http://purl.org/dc/elements/1.1/"/>
<title>Hello World</title>
<meta name="DC.identifier" content="id_Hello_World"/>
</head>
<body>
<h1>Hello World</h1>
<p>Ein Beispieltext.</p>
</body>
</html>
Quelle der o.a. Informationen
Der Text ist unter der Lizenz „» Creative Commons Attribution/Share Alike“ verfügbar; zusätzliche Bedingungen können anwendbar sein. Einzelheiten sind in den » Nutzungsbedingungen beschrieben.