
Vor längerem habe ich eine Möglichkeit gezeigt, wie man aus den Galileo OpenBooks eine epub-Datei erstellt. Dabei verwendete ich das Tool Calibre.
Es entwickelte sich schnell eine rege Diskussion und es kamen immer mehr Kommentare zu diesem Thema. Dabei wurden weitere Möglichkeiten vorgestellt, wie man das z.B. das OpenBook zu PDF per PHP umwandeln kann. Ein weiteres Thema war die Bereinigung der Bücher von unerwünschtem HTML-Code, um eine saubere und leserfreundliche Version zu bekommen.
Mit der Zeit sammelten sich viele Kommentare und der Post ist recht unübersichtlich geworden. Sehr viele Kommentare und Fragen kamen zum Programm von Alexander Kriegisch. Aus diesem Grund gehe ich in diesem Beitrag speziell darauf ein.
Der Galileo Openbook Cleaner
Alexander entwickelte ein Java-Programm, welches automatisch das gewünschte OpenBook aus dem Netz lädt, die Dateien entpackt und anschließend den HTML-Code säubert.
Als Ergebnis liegt das OpenBook zwar immer noch im HTML-Format vor, allerdings perfekt formatiert und somit als optimale Quelle für die weitere Verarbeitung in EPUB, PDF, MOBI …
Das komplette Projekt liegt bei github. Dies hat den Vorteil, dass er selbst die volle Kontrolle über das Programm hat und problemlos neue Versionen veröffentlichen kann. Bisher landete alles hier im Blog in den Kommentaren, was auf Dauer keine Lösung war.
Wo findet man was – wichtige Links?
Fragen oder Probleme mit dem Galileo OpenBook Cleaner?
Bitte immer zuerst die Dokumentation aufmerksam lesen. Damit lassen sich bereits die meisten Dinge selbst lösen.
Sollte es allerdings doch mal zu Problemen oder Programmfehlern kommen, dann bitte auf github ein Ticket (New Issue) eröffnen.
Bitte immer die komplette Fehlerausgabe der Console anhängen. Außerdem die verwendete Java-Version (java -version
) und das benutzte Betriebssystem mitteilen. Nur so ist eine schnelle Hilfe möglich!
Lars meint
Hallo nochmal, ;)
erstmal danke fuer die vielen Infos/Tools etc., die hier benannt wurden. Ich versuche momentan einige Openbooks fuer’s iPad zu konvertieren, scheitere aber leider an Calibre.
HTML ist sauber, dank Alexander’s Tool. Jedoch ist der Output von Calibre nicht zu gebrauchen (weder epub noch pdf), da zum einen das Inhaltsverzeichnis nur Muell anzeigt und mir die ersten Seiten der Anfangskapitel fehlen.
Vielleicht hat jemand einen Rat fuer mich, vielleicht hab ich auch etwas uebersehen… danke schonmal vorab!
Lars
Alexander Kriegisch meint
Ich habe Calibre schon lange nicht mehr angeworfen, aber wegen Deiner Meldung habe ich es mal mit dem Excel-Buch probiert. EPUB sieht absolut sauber aus, auch das Inhaltsverzeichnis. PDF funktioniert ebenfalls, nur sind die HTML-Links im Inhaltsverzeichnise eben keine Links mehr hinterher und es wird auch kein Inhaltsverzeichnis generiert. Vielleicht kann man das aber einstellen. Übrigens, falls Du Linux hast, dort sieht das Calibre-Ergebnis für PDF besser aus als unter Windows. Die Umwandlung erfolgt dort offenbar durch ein anderes Tool oder einen anderen Algorithmus.
Welche Bücher machen Dir denn Probleme und wie sieht das Ergebnis aus?
Lars meint
Danke fuer Deine Antwort.
Zwei Buecher habe ich bisher getestet, die beide das gleiche Problem nach Umwandlung mit Calibre gezeigt haben:
– Apps entwickeln für iPhone und iPad
– Shell-Programmierung
Falls gewuenscht, kann ich das Ergebnis auch online stellen, damit man sich ein Bild davon machen kann.
Calibre-Umwandlung habe ich uebrigens erst unter OSX und anschliessend unter Win7 ausprobiert. Das Excel Buch werde ich morgen testweise mal Umwandeln und das Ergebnis morgen nachreichen.
Danke und Grus – Lars
Alexander Kriegisch meint
Bei mir klappt das, z.B. mit den Inhaltsverzeichnis-Einstellungen [1], ansonsten Standard-Einstellungen in Calibre. Wenn Du die Kapitelerkennung noch tunen willst, nur zu. Das könnte aber buchspezifisch sein, ist aber einfach zu machen, wenn es Dir wichtig ist.
Alexander Kriegisch meint
Ich habe gerade mal die Kommandozeilen-Schnittstelle von Calibre, wie unter [1] beschrieben, ausprobiert, und Folgendes erfolgreich getestet:
Nehmen wir an, Ihr habt ein Kommandozeilenfenster (cmd.exe) gestartet und befindet Euch im Download-Verzeichnis. Der Openbook Cleaner hat bereits das Buch bereinigt, welches Ihr von HTML in EPUB umwandeln wollt.
c:\Programme\Calibre2\ebook-convert.exe shell_prog\index.htm shell_prog.epub --cover shell_prog\cover.jpg --preserve-cover-
aspect-ratio --max-toc-links 0 --toc-filter "Unbenannt|\[[0-9]+\]"
c:\Programme\Calibre2\ebook-viewer.exe shell_prog.epub
Der erste Befehl erzeugt das EPUB mit den Optionen, ein Inhaltsverzeichnis unbegrenzter Länge (Standard: nur max. 50 Einträge) zu erzeugen, ein Cover-Bild im richtigen Seitenverhältnis einzufügen und Inhaltsverzeichnis-einträge, die „Unbenannt“ oder „[1]“, „[2]“ usw. heißen, zu löschen, damit weniger Müll im Inhaltsverzeichnis landet.
Der zweite Befehl öffnet das frisch erzeugte EPUB im eBook-Betrachter.
[1] http://manual.calibre-ebook.com/cli/cli-index.html
Lars meint
Danke fuer Deine Hilfe!
Inhaltsverzeichnis sieht mittlerweile ganz gut aus… leider besteht immer noch das Problem, dass ganze Kapitel fehlen.
Im Falle des iOS Buch, wird nach der Umwandlung erst bei Kapitel 1.5 angefangen, auch das Inhaltsverzeichnis faengt erst bei 1.5 an.
Fuer mich leider absolut unverstaendlich, ich hoffe das Du noch einen Rat fuer mich hast?!
Gruss
Lars
Alexander Kriegisch meint
Was soll denn das heißen, „Inhaltsverzeichnis sieht mittlerweile ganz gut aus“? Es sieht immer gleich aus, es sei denn, Du hast etwas an Deiner Vorgehensweise oder den Einstellungen in Calibre geändert. Demzufolge vermute ich, daß eher dort der Hase im Pfeffer liegt. Was hast Du denn zuletzt anders gemacht als zuvor? Leider sind Deine Beschreibungen so schwammig, daß ich nicht weiß, wie ich Dein Problem nachvollziehen soll. Ich kann nur sagen: Hier funktioniert alles gut, kein Kapitel fehlt. Ich tippe auf einen Anwendungsfehler. Setz doch mal Deine Calibre-Einstellungen auf Standardwerte zurück und ändere nur die von mir angegebenen Dinge, oder probier es mal mit meinem Kommandozeilen-Beispiel.
Alexander Kriegisch meint
Kleiner Tip nebenbei: Unter [1] fand ich einen Tip, wie man einen Verbund von HTML-Dateien in PDF umwandeln kann. Das klappt gleichermaßen unter Windows, Linux und MacOS (getestet von mir unter Windows). Das Tool heißt wkhtmltopdf [2].
Man kann z.B. so etwas machen (ohne Zeilenumbrüche), wenn man sich im Unterverzeichnis des betreffenden Buches befindet:
/cygdrive/c/Programme/wkhtmltopdf/wkhtmltopdf.exe
--book
--orientation portrait
--page-size A4
$(ls -1 *.htm | grep -Ev 'index|stichwort')
../shell_prog.pdf
Man sagt damit dem Tool Folgendes: Wandle die angegebenen HTML-Dateien (außer index.htm und stichwort.htm) um in ein PDF-Buch, DIN-A4 Hochformat.
Da es unter Windows in cmd.exe nicht so einfach möglich ist, die Ausgabe der DIR-Befehls (Liste aller HTML-Dateien) mit $(…) oder `…` in die Befehlszeile zu bekommen und da wkhtmltopdf offenbar auch keine Joker-Zeichen versteht, habe ich das Ganze in einer Cygwin-Umgebung ausgeführt. Es würde aber auch gehen in cmd.exe (Windows-Kommandozeilenfenster), wenn man alle Eingabedateien manuell in der Kommandozeile angeben würde. Dazu kann man sie ja vorher mit DIR auflisten und dann in einem Editor daraus eine Kommandozeile basteln. Unter Linux oder MacOS dürfte man dieses Problem nicht haben, ebensowenig unter der Windows PowerShell, die diese Art der Kommandoexpansion versteht (Syntax weiß ich gerade nicht auswendig).
Anmerkungen:
1) Der Grund, weshalb ich index.htm weglasse, ist, daß das Tool selbst ein hübsches Inhaltsverzeichnis generiert.
2) Der Grund, weshalb ich stichwort.htm weglasse, ist, daß das Tool die dort enthaltenen HTML-Links leider nicht umwandelt in PDF-Links, so daß das Stichwortverzeichnis wenig bringen würde.
3) Bei manchen Openbooks könnte es sein (ungetestet), daß die alphabetische Reihenfolge der HTML-Dateien nicht der korrekten Buchreihenfolge entspricht. Dementsprechend durcheinander wären Inhaltsverzeichnis und Buchinhalt. In solchen Fällen wäre es wichtig, dem Tool auf der Kommandozeile die HTML-Dateien in der korrekten Reihenfolge zu übermitteln.
[1] http://explicate.blogspot.de/2011/01/multiple-html-files-to-single-pdf-with.html
[2] http://code.google.com/p/wkhtmltopdf/
Alexander Kriegisch meint
Ich vergaß: wkhtmltopdf bietet eine Menge Parameter, um die PDF-Formatierung detaillierter zu beeinflussen, siehe [3].
[3] http://wkhtmltopdf.org/
Alexander Kriegisch meint
Nach einer mehrwöchigen Pause – manchmal muß ich auch etwas Richtiges arbeiten – hatte ich mal wieder Lust zum Spielen. Herausgekommen ist ein Refactoring, das nun zur Version 1.0 geführt hat. Sie ist viel schneller als die vorherigen und verwendet eine andere Technologie. Die Kommandozeilen-Parameter habe sich auch geändert, aber das ist alles auf der Webseite beschrieben, Links siehe Hauptartikel oben unter „Wo findet man was – wichtige Links?“.
jan meint
hi !
habe mir das hdr fotobuch gezogen und auf dem ebook sind das gerade einmal 72 seiten – lt. web hat das original über 200 !
stimmt da in der regel die nummerierung nicht oder sind das abgespeckte versionen?
gruß Jan :-)
Alexander Kriegisch meint
Hallo Jan.
Ich war die ganze Woche unterwegs, daher die späte Antwort.
Der Zweck des Galileo Openbook Cleaners (GOC) ist es ja gerade, die vielen Naviggations- und Werbeelemente außen herum zu entfernen und auf eBook Readers ein flüssigeres, klareres Leseerlebnis bereitzustellen.
Fehlen denn Inhalte? Falls ja, eröffne bitte ein Ticket (Issue) auf der GitHub-Homepage des GOC.