ePub für ein eBook von Grund auf selbst erstellen (Teil 1)

Ein ePub händisch von Grund auf selbst zu erstellen, ist kein Hexenwerk. Im Grunde handelt es sich um ein ZIP-komprimiertes Verzeichnis mit einer relativ festen Dateistruktur. Wir lernen hier kennen, wie man ein ein solches eBook erstellt, so dass es beispielsweise mit Amazons Kindle- und Apples iBook-Store kompatibel ist.

Obwohl das ein oder andere Tool zur Verfügung steht, lohnt es sich dennoch den Aufbau eines ePubs kennenzulernen. Auf diese Weise kann man eventuell gemeldete Fehler selbst beheben und das ePub an die eigenen Anforderungen genau anpassen.

Bei so einem ePub handelt es sich im Grunde um eine eingefrorene Website, daher kommen die hier eingesetzten Techniken den Leuten entgegen, die sich eventuell mit dem Bau von Webseiten beschäftigt haben. So gibt es auch hier ein stylesheet.css und Text im html-Format.

Der ePub-Standard existiert bereits seit vielen Jahren. Die derzeit gültige Version ist die 3, aber wir erstellen wir unser eBook als ePub in der Version 2. Der Gründe dafür sind die höhere Kompatibilität zu den den Lesegeräten, die Ausgereiftheit der Software und die etwas einfachere Handhabung.

Voraussetzungen

Wir benötigen einen Texteditor, der den Text nicht formatiert; Programme wie Microsoft Word oder Apple Pages scheiden damit aus. Das unter mehreren Betriebssystemen verfügbare Visual Studio Code wäre eine Möglichkeit. Unter Windows ginge Notepad. Auf dem Mac lässt sich das mitgelieferte TextEdit einsetzen, allerdings ist es hier entscheidend, dass wir im TextEdit-Dokument unter dem Menüpunkt „Format“ den Eintrag „In reinen Text umwandeln“ auswählen, sonst funktionieren die im weiteren Verlauf beschriebenen Schritte nicht.

Darüber hinaus sind ein paar Grundkenntnisse in HTML von Vorteil, es geht aber auch ohne.

Dateistruktur

Die Grundstruktur innerhalb des Verzeichnisses für das zukünftige ePub sieht wie folgt aus:

  • META-INF (ein Verzeichnis)
  • OEBPS (ein Verzeichnis)
  • mimetype (eine Datei)

Die Groß-Kleinschreibung spielt hierbei eine Rolle. Diese Struktur bauen wir zunächst auf.

Die Datei mimetype

Beginnen wir mit dem Einfachsten, der Datei namens mimetype. Hierin geben wir an, worum es sich bei unserem Produkt handelt, nämlich um ein ZIP-komprimiertes eBook im ePub-Format.

Für das Sichern dieser Information benötigen wir eine reine Textdatei, die wir „mimetype“ nennen, keine Endung. In diese Datei schreiben wir als reinen Text die folgende Zeile:

application/epub+zip

Es gibt keine Leerzeichen, keinen Zeilenumbruch, sondern lediglich diese exakte Zeichenfolge.

Das Verzeichnis META-INF

Ebenfalls relativ einfach ist der Inhalt des Ordners „META-INF“. Hier platzieren wir eine Datei namens container.xml. Deren Inhalt weist das Programm an, das später unser eBook anzeigen soll, denn container.xml enthält den Pfad zum Inhalt unseres eBooks; in diesem Fall OEBPS/content.opf.

Wir erstellen also die Datei container.xml und kopieren mit einem Texteditor die folgenden Zeilen in die Datei.

<?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>

In diesem Fall spielen zusätzliche Leerzeichen an Zeilenenden oder leere Zeilen zwar keine Rolle, aber es ist entscheidend, dass es sich abermals um reinen Text handelt.

Das Verzeichnis OEBPS

Kommen wir zum Ordner, der den Inhalt unseres eBooks enthält, dem Verzeichnis OEBPS.

Neben den Dateien, die wir noch anlegen werden, können wir den Inhalt in mehrere Unterordner sortieren, damit wir einen besseren Überblick haben. Meine Empfehlung ist, folgende Unterordner anzulegen:

  • images
  • styles
  • texts

Wie es die Namen bereits andeuten, werden wir unsere Bilder im images-Verzeichnis, unser Stylesheet im styles– und unsere html-Dateien der einzelnen Kapitel im texts-Ordner hinterlegen.

Weiter oben haben wir mit OEBPS/content.opf in container.xml bereits angegeben, dass es in OEBPS eine Datei namens content.opf gibt. Das ist eine Strukturierung nach dem Standard Open Packaging Format (OPF). Diese Datei erstellen wir nun.

Darin geben wir zusätzliche Informationen über unser eBook an und organisieren den Inhalt: Wir nennen nicht nur die Dateien, die Teil unseres Buchs sind, sondern wir geben auch die Reihenfolge an, in der die einzelnen Dateien innerhalb des eBooks angeordnet sein sollen. Lass dich nicht verschrecken, denn content.opf ist die komplizierteste Datei, der wir begegnen werden.

Diese Datei ist im Grunde sehr übersichtlich aufgebaut, es sind nur die vielen Details, die das Ganze letzten Endes unübersichtlich machen. So sieht das Skelett der content.opfaus.

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<package xmlns="http://www.idpf.org/2007/opf"
	version="2.0"
	unique-identifier="bookid">

	<metadata>
		<!-- Metainformationen -->
	</metadata>

	<manifest>
		<!-- Übersicht des Inhalts -->
	</manifest>

	<spine>
		<!-- Reihenfolge des Inhalts-->
	</spine>

</package>

Neben einigen obligatorischen Einleitungselementen besteht diese XML-Datei aus lediglich drei Teilen: <metadata><manifest> und <spine>. Wie wir die einzelnen Teile füllen, sehen wir uns im nächsten Post an:

ePub selbst erstellen: Die Datei content.opf mit Metadata, Manifest und Spine (Teil 2)

Photo by Perfecto Capucine on Unsplash