Ebooks


Im Bett lese ich richtige Bücher aus Papier. Auf dem Klo auch. Einen E-Book-Reader wollte ich für unterwegs, damit ich auf langen Bahnfahrten oder im Urlaub nicht immer einen halben Wald mit mir herumtragen muß. Was ist, wenn ich um die halbe Welt fliege mit zwei Bänden "Die Brüder Karamasoff" im Gepäck, aber vor Ort bin ich auf einmal gar nicht mehr in Stimmung für Dostojewski, sondern mag lieber Mark Twain lesen? Aber die Bücher müssen erstmal auf den Reader kommen, darum habe ich den Epub-Erzeuger Ebola geschrieben.

[ Einrichtung | Download | Pocketbook 360 ]
Wenn ein Autor vor mindestens 70 Jahren das Zeitliche gesegnet hat, stehen seine Werke nicht mehr unter einen Copyright. Freundliche Menschen erfassen sie und stellen sie ins Internet. Für deutschsprachige Bücher existieren zwei Haupt-Adressen: Gutenberg und Zeno. Beide bieten ziemlich umfangreiche Sammlungen der Werke toter Dichter für gar kein Geld an.

Nur die Bücher auf sein E-Book zu bekommen, ist nicht so ganz einfach, denn Gutenberg und Zeno zeigen sie zerhäckselt in einzelne Kapitel auf verschiedenen html-Seiten an. Die müßte man alle per Hand herunterladen und zusammenbasteln, bevor man seinem Authoringprogramm (z.B. Calibre) die Daten zu futtern geben könnte, auf daß ein Ebook daraus entstehe.

Jemand hat daraufhin Cextra entwickelt, das in der Lage ist, beliebige Bücher von diesen Seiten herunterzuladen (EDIT: nach Strukturänderung bei Gutenberg dort nicht mehr, sondern nur noch bei Zeno!) und in konsolidierter Form, als XHTML-Datei, zu speichern, dazu Bilder und Stylesheets. Damit kann man dann schon arbeiten, allerdings ist das noch immer mühsam, weil Cextra ein Kommandozeilen-Tool ist und man für jedes Büchlein eine eigene, recht komplexe Befehlsfolge eintippen muß.

Darum habe ich angefangen, Autor, Titel und Link zu einem Buch in einer Datei zu sammeln und Cextra per Bash-Script zu steuern. Funktioniert, aber ach, wenig ist damit gewonnen, denn hinterher mußte ich trotzdem jedes XHTML einzeln in ein Ebook umwandeln. Schlußendlich habe ich mich entschlossen, das Ganze selbst zu machen, und damit andere es auch benutzen können, auch noch mit GUI und sogar für Windows gleich mit.

Verwendet habe ich die freie Delphi-Umsetzung Lazarus. Das fertige Programm kann eine beliebig lange Liste von Büchern (deren Autor, Titel und Weblink man freilich noch per Hand in eine Maske eingeben bzw. in eine Datei eintragen muß) automatisch mit Hilfe von Cextra herunterladen und auf Wunsch auch gleich in Ebooks umwandeln, wobei eventuell vorhandene Bilder automatisch eingebunden werden. Besonders bei den liebevoll digitalisierten Jules-Verne-Büchern auf Zeno ist das sehr nett.

So entstand also das Programm Ebola, das diesen Namen trägt, um der DRM-Seuche sozusagen eine Gegenseuche entgegenzusetzen.



Ich vermute mal, die von Ebola erzeugten Ebooks sind nicht besonders standardkonform; ich habe niemals einen Ebook-Checker drüberlaufen lassen. Besonders die Aufteilung großer XHTML-Dateien in kleine Häppchen geschieht nicht. Für mich war nur wichtig, daß mein Reader damit umgehen kann. Das kann er. Wenn Deiner es nicht kann, hol Dir den Quelltext und ändere das Programm.

Ebola steht komplett unter der Schnurz-Piep-Egal-Lizenz. Deren Bestimmungen lassen sich sehr leicht in zwei Wörtern zusammenfassen: alles erlaubt. Bedeutet, Du kannst Programm und/oder Quelltext runterladen, beliebig verändern, ganz oder teilweise weitergeben oder für Dich behalten, auf CD/DVD brennen und so weiter. Und wenn Du jemanden findest, der dumm genug ist, Dir Geld dafür zu geben, kannst Du es auch verkaufen.

Ich selbst übernehme für gar nichts Verantwortung und möchte normalerweise auch nicht mit "bei mir geht das nicht"-Meldungen belästigt werden. Bei mir geht das nämlich, und die erzeugten Epubs kann mein Pocketbook 360 prima lesen.
Solltest Du signifikante Verbesserungen/Erweiterungen vorgenommen haben, kannst Du Dich gern mit mir in Verbindung setzen, damit wir das synchronisieren.

zum Seitenanfang
Einrichtung

Ebola lädt die Bücher nicht selbst herunter, sondern bastelt eine Kommandozeile für Cextra zusammen und ruft dieses auf. Daher funktioniert Ebola nur, wenn Cextra heruntergeladen und irgendwohin ausgepackt wurde. Den Pfad kann man im Programm unter "Einstellungen → Cextra-Pfad" angeben. Sollte man auch, denn sonst funktioniert nichts. Am schlauesten ist es, das direkt ins passende Unterverzeichnis von Ebola zu kopieren, wo das Programm auch zuerst sucht.

EDIT: Ebola ab 0.2 lädt die Bücher von Gutenberg selbst herunter. Gutenberg hat nämlich die Seitenstruktur geändert, so daß Cextra nicht mehr funktioniert und nur mehr für Zeno gebraucht wird. Ebola 0.2 holt sich alle Kapitel eines Gutenberg-Buches (und zeigt das während des Downloads auch an), bastelt sie zu einem XHTML sammen und fügt im Quelltext verlinkte Bilder ein. Allerdings macht Ebola nicht selbst die Herunterlade-Arbeit, sondern läßt sie von Wget tun.

Windows-Benutzer (und nur diese) müssen unterhalb der ebola.exe zwei Subdirectorys namens "zip" und "wget" haben, in dem die Dateien "zip.exe" und "bzip2.dll" bzw. "libiconv2.dll", "libintl3.dll" und "wget.exe" liegen. Gibt es unter ZIP (Windows) und WGET (Windows).

Es kann eine Liste namens "SavedBooks" im Ebola-Verzeichnis existieren. Sie sieht beispielsweise so aus:
			Verne, Jules
Reise um den Mond
http://www.zeno.org/Literatur/M/Verne,+Jules/Romane/Reise+um+den+Mond
Verne, Jules
Robur der Sieger
http://gutenberg.spiegel.de/buch/4037/1

Es handelt sich einfach um eine Liste von Büchern, die von Ebola eingelesen werden und die man per Klick herunterladen kann. Wie das genau geht, wird weiter unten beschrieben. Das ist also eine einfache Möglichkeit, viele Bücher auf einen Schlag ins Programm zu bringen. Das Format ist simpel: jeder Eintrag besteht aus drei Zeilen in genau dieser Reihenfolge:
			Autor
Titel
URL (der Startseite bzw. des ersten Kapitels)
Geht da was durcheinander, gerät das Programm auch durcheinander. Mitgeliefert wird eine Beispielliste. Praktisch wäre es, wenn Benutzer von Ebola mir Ihre Listen schicken würden, damit im Auslieferungszustand bereits möglichst viele Bücher-Links erfaßt sind und von jedem ohne Neueingabe heruntergeladen werden können.


Bedienung

Nach dem Start präsentiert Ebola ein jungfräuliches Fenster ohne jeden Eintrag. Um Bücher zum Herunterladen und Konvertieren zu erfassen, muß man die Eingabemaske im oberen Teil mit Autor, Titel und URL befüllen.

Neueingabe der Bücher: Dafür ruft man den Link der ersten Buchseite im Browser auf, egal ob bei Gutenberg oder Zeno, und kopiert die URL aus der Adreßzeile in das Eingabefeld von Ebola. Den Titel des Buches muß man per Hand angeben; unter dieser Bezeichnung wird das fertige XHTML oder Epub am Ende gespeichert. Fehlt noch der Autor. Es sind bereits alle (derzeit) bei Zeno und Gutenberg vorhandenen Autoren gespeichert, so daß man einfach den richtigen Eintrag aus der Liste wählen kann. Gibt es ihn nicht, muß man den Namen eintippen und er wird der Auswahlliste hinzugefügt, steht also beim nächsten Mal zur Auswahl bereit. Den Datensatz kann man per Klick auf das kleine Disketten-Icon mit dem Pfeil drin in die Download-Liste im unteren Fenster-Bereich aufnehmen und zum Beispiel ein weiteres Buch eingeben.

Download-Liste: Die Einträge in der Download-Liste kann man auch bearbeiten; ein Klick darauf bringt die Daten wieder in die Eingabemaske, wo sie beliebig geändert werden können. Beim Speichern wird entweder der bestehende Listeneintrag geändert oder ein neuer erzeugt – das hängt davon ab, ob sich an Autor oder Titel etwa geändert hat. Ggf. muß man also hinterher in der Download-Liste den alten Eintrag löschen, was per Markieren und Klick auf das kleine rote Kreuz in der Buttonleiste zu bewerkstelligen ist. Ein Klick auf das linke Disketten-Symbol in der Buttonleiste (das ohne Pfeil drin!) fügt die Listeneinträge der Liste der gespeicherten Bücher hinzu (Datei "SavedBooks" im Programm-Verzeichnis).

Gespeicherte Bücher Damit man nicht immer alles neu eingeben und besonders, damit man nicht immer alles, was man eingibt, auch gleich herunterladen muß, merkt sich Ebola die bereits eingegebenen Bücher in der Datei "SavedBooks" im Programm-Verzeichnis (die man auch per Hand manipulieren kann – VOR dem Programmstart). Per Klick auf das öffnende Ordner-Symbol in der Buttonleister ruft man ein neues Fensterchen auf, in dem alle gespeicherten Bücher aufgelistet sind, und zwar in einer Baumansicht nach Autoren sortiert.
Ein Doppelklick auf ein Buch fügt es der Download-Liste hinzu, ein Doppelklick auf einen Autoren fügt der Liste alle gespeicherten Bücher dieses Autors hinzu.

Herunterladen und Konvertieren: Ist die Download-Liste einmal fertig befüllt, kann man alle darin enthaltenen Bücher auf einen Rutsch herunterladen und als XHTML und/oder Epub speichern – je nachdem, welches Häkchen gesetzt ist. Mit dem Button "Bearbeitung starten" geht es los. Ebola erzeugt für jedes Buch in der Download-Liste eine Kommandozeile und ruft Cextra damit auf. Das Herunterladen kann eine Weile dauern.

Ist ein Buch heruntergeladen, wird es konvertiert und ins Verzeichnis "output" unterhalb des Programmverzeichnisses kopiert. Dort tauchen weitere Unterverzeichnisse auf, "XHTML" und/oder "Epub", je nachdem, was man eingestellt hat, und darunter werden wiederum Verzeichnisse für jeden Autor angelegt. Und darin endlich landen die fertigen Ebooks. Von dort kann man sie direkt auf einen Reader oder eine Speicherkarte kopieren. Falls Cextra Bilder mit heruntergeladen hat, landen sie an passender Stelle (dort, wo sie im Text verlinkt sind) auch im E-Book. Bilder, auf die nirgends im Text ein Link existiert (Werbebildchen usw.) werden von Ebola ignoriert, also nicht ins Ebook übernommen.

Ebola erzeugt noch kein Inhaltsverzeichnis. Bei Romanen finde ich das nicht weiter wichtig, aber bei einer Gedichtsammlung schon. Intern habe ich das schon vorbereitet, das XHTML wird schon passend zerhäckselt, aber das auszuprogrammieren, dazu bin ich noch nicht gekommen. Tue ich aber irgendwann.

zum Seitenanfang
Ebola 0.6 für Windows herunterladen (ebola.zip, 1,5 MByte)
Ebola 0.6 Quelltext herunterladen (ebola_src.zip, 3,6 MByte)
Ebola 0.6 Linux-Binary herunterladen (ebola_linux.zip, 1,6 MByte) ... sollte bswp. auf aktuellen 64-Bit-Ubuntus laufen.

Hinweise:


Changelog

zum Seitenanfang

Noch ein paar Worte zum Pocketbook 360

Ich will jetzt hier keinen Testbericht schreiben, nur soviel: trotz (sehr) kleiner Hakeligkeiten bin ich mit dem Pocketbook 360 sehr zufrieden; es hat in vielerlei Hinsicht meine Erwartungen sogar übertroffen. Leute, die unterwegs Bücher lesen wollen und keinen Wert auf bunte Bilder, direkte WLAN-Fähigkeit und anderen Schnickschnack legen, werden damit gut bedient. Ganz ohne Schnickschnack kommt es aber auch nicht daher, es sind so sinnlose Sachen wie Spiele mit drauf, aber die muß man ja nicht benutzen oder kann sie auch löschen.

zum Seitenanfang


Letzte Aktualisierung am 24.09.2011