DjVu und PDF

Für die Manipulationen von DjVu-Dateien gibt es die im Paket Djvulibre [7] zusammengestellten Werkzeuge (djvulibre-bin unter Debian und Ubuntu, djvulibre unter OpenSuse und Fedora). Wieder nutzen Sie eine Shell-Schleife, um die bearbeiteten Buchscans durch den Schwarzweiß-Encoder cjb2 von Djvulibre zu schicken (Listing 1, Zeile 1). Danach packen Sie mit djvm den Container zusammen (Zeile 2)

Listing 1

$ for i in *pbm; do echo $i; cjb2 $i ${i%pbm}djvu; done
$ djvm -c myebook.djvu *djvu

Nun können Sie bereits das neue E-Book betrachten. Dazu benutzen Sie einen Betrachter wie Djview. Auf Debian-basierten Systemen und unter Fedora heißt das passende Paket djview4; bei OpenSuse suchen Sie djvulibre-djview4.

Nun ergänzen Sie bei Bedarf die DjVu-Datei um Bookmarks (im DjVu-Jargon: ein Outline). Dazu erstellen Sie im Textformat mit einem Editor eine entsprechende Outline-Datei, die sich am Beispiel aus Listing 2 orientiert. Diese packen Sie dann mit dem Tool djvused in den bereits erstellten DjVu-Container:

$ djvused myebook.djvu '-e myebook.outline' -s

Listing 2

(bookmarks
("Titel" "#1")
("Hauptteil" "#5"
  ("Kapitel 1" "#5")
  ("Kapitel 2" "#10")
  ("Kapitel 3" "#15")
  )
)

Einfacher geht es wirklich nicht mehr, und das Ergebnis spricht für sich (Abbildung 3).

Abbildung 3: Aufgrund der einfachen Syntax fügen Sie dem Scan beim Verpacken im DjVu-Container noch ein Inhaltsverzeichnis mit Bookmarks hinzu. So navigieren Sie ganz einfach im Text.

Um unter Linux PDF-Dateien aus den Scans zusammenzustellen, müssen Sie die PBM-Dateien zunächst in TIFFs umwandeln. Auch das erledigen Sie wieder mit einer kleinen Schleife (Listing 3, Zeile 1). Dann erstellen Sie aus den Einzelbildern zunächst ein Multipage-TIFF (Zeile 2) und wandeln dieses wandeln schließlich mit einem weiteren Befehl in ein PDF um (Zeile 3).

Listing 3

$ for i in *pbm; do convert $i -verbose ${i%pbm}tif; done
$ tiffcp *tif myebook.tif
$ tiff2pdf -o myebook.pdf myebook.tif

Die beiden dazu notwendigen Werkzeuge gehören zum Standardpaket libtiff-tools (libtiff3 unter OpenSuse, libtiff bei Fedora). Bei tiff2pdf haben Sie mit den Optionen -j und -z die Möglichkeit, die Kompressionsalgorithmen von JPEG oder ZIP zu verwenden.

OCR

Mit der OCR-Engine Tesseract [8] und dem Wrapper Ocropus [9] stellen Sie unter Linux hochwertige Buchscans mit einem OCR-Layer her. Zusätzlich zum Hauptprogramm von Tesseract (tesseract-ocr, tesseract auf OpenSuse und Fedora) müssen Sie die dazugehörigen Sprachpakete (tesseract-ocr-deu, tesseract-data-deu unter OpenSuse, tesseract-langpack auf Fedora) einrichten. Der Paketmanager zeigt beim Installieren wie immer entsprechende Abhängigkeiten und Vorschläge an.

Grundsätzlich ist es möglich, ausschließlich Tesseract für die Textscans zu verwenden. Um aber eine Layoutanalyse der Scans zu erhalten, bietet es sich an, die Engine über den Wrapper Ocropus anzusprechen (0.3.1 auf Debian Squeeze und Ubuntu "Lucid Lynx", 0.2 auf Ubuntu "Karmic Koala", noch nicht enthalten in OpenSuse und Fedora).

Auch Ocropus eignet sich für den Einsatz in Skripten. Dazu verwenden Sie den Aufruf ocroscript, wobei Sie dem Programm für optimale Ergebnisse die entsprechende Sprachdatei von Tesseract mitgeben:

$ for i in *pbm; do echo $i; ocroscript recognize --tesslanguage=deu --charboxes *pbm > ${i%pbm}hocr; done

Sowohl Ocropus als auch Tesseract verstehen sich auf Scans in Graustufen und Bilder in den Dateien. Als Ausgabe erhalten Sie OCR-Dateien im Format HOCR [10], einem auf XHTML basierenden Textformat. Dieses bearbeiten Sie gegebenenfalls mit einem Texteditor. Nun gilt es die HOCR-Datei als OCR-Layer in das E-Books zu integrieren.

Bei E-Books auf PDF-Basis fügen Sie den OCR-Layer aus den mit Ocropus gewonnenen HOCR-Metadaten mit dem Tool hocr2pdf aus der ExactImage-Suite [11] an (Debian "Squeeze" und Ubuntu "Karmic"). Dafür wandeln Sie die PBM-Dateien nach dem OCR-Prozess zunächst wieder in TIFFs um. Anschließend kombinieren Sie dann die Daten mit den entsprechenden HOCR-Dateien in Einzel-PDFs:

$ for i in *tif; do hocr2pdf -i $i -o ${i%tif}pdf < ${i%tif}hocr; done

Allerdings gibt es hier noch Schwierigkeiten mit den Layoutdaten: Das Highlighting erscheint versetzt. Das ist allerdings bereits aufgefallen [12]. Die erzeugten einzelnen PDFs fassen Sie schließlich mit Pdftk [13] zu einem Container zusammen:

$ pdftk *pdf cat output myebook.pdf

Für E-Books im Format DjVu gibt es das Helferlein Ocrodjvu von Jakub Wilk [14] (Debian "Squeeze" und Ubuntu "Lucid"). Ocrodjvu übernimmt das Steuern von Ocropus und vollzieht automatisch den gesamten Prozess der Textextraktion und das Wiedereinfügen in das bereits fertige E-Book auf DjVu-Basis, wobei Sie anstelle des Teams Tesseract/Ocropus alternativ auch Cuneiform (siehe Kasten "Open-Source-OCR") einsetzen dürfen.

Das ganze funktioniert bisher noch nicht mit Graustufenscans. Es gibt aber entsprechende Pläne. Dem Paket Ocrodjvu liegt außerdem der Konverter Hocr2djvu bei, mit dem Sie HOCR-Dateien in das Metadatenformat von DjVu umwandeln. Dieses fügen Sie mit Djvused wie bei PDF in die Einzeldateien ein, bevor sie mit Djvm alles in einen Container packen.

Die aktuellen OCR-Engines werfen bei optimalen Bedingungen wie sauberen Scans und ausreichender Auflösung insgesamt einen ziemlich brauchbaren Text aus. Für ein perfektes Finish ist es natürlich prinzipiell möglich, die mit Ocropus oder Tesseract gewonnenen Daten von Hand mit dem Texteditor auf Restfehler durchzusehen und gegebenenfalls nachzubearbeiten. Dabei handelt es sich allerdings um ein sehr zeitaufwändiges Verfahren.

Sinnvoll ist hier, eine Rechtschreibprüfung für die Endkontrolle einzusetzen. GNU Aspell [15] (aktuell: Version 0.6.60) bietet die Möglichkeit, über einen Filter alle XHTML-Tags bei der Rechtschreibkontrolle auszuschließen. Für das Durchkontrollieren der gesamten HOCR-Dateien in einem Verzeichnis starten Sie auch Aspell in einer Schleife:

$ for i in *hocr; do aspell --lang=de --mode=html -c $i; done

Das setzt natürlich voraus, dass Sie das richtige Sprachpaket von Aspell installiert und angegeben haben.

Open-Source-OCR

Es gibt zur Zeit vier frei verfügbare OCR-Engines: Cuneiform vom Hersteller Cognitive Technologie in Russland (aktuell in Version 0.9), GOCR von Jörg Schulenburg (0.48), Ocrad als Teil des GNU-Projektes (0.19), und Tesseract. Bei Cuneiform und Tesseract liegen im Unterschied zu den beiden anderen Programmen Erkennungsdaten für verschiedene Sprachen bei, was die Genauigkeit steigert.

Tesseract (aktuell in Version 2.04) stammt ursprünglich von Hewlett-Packard. Derzeit entwickelt Google die Software unter der Apache-Lizenz 2.0 weiter. Es handelt sich dabei um eine leistungsfähige OCR-Engine, die bei Google Books zum Einsatz kommt. Auch Tesseract ist bisher eine reine Engine ohne statistisches Sprachmodell oder Layoutanalyse. Letztere – und auch zum Beispiel das Erkennen von Chinesisch – sind jedoch für das nächste Major Release angekündigt.

Um den OCR-Prozess mit Layoutanalyse und Sprachmodellen zu vervollständigen, entwickeln Mitarbeiter beim Deutschen Forschungszentrum für Künstliche Intelligenz (DFKI) in Kaiserslautern den Wrapper Ocropus für den Einsatz mit Tesseract (letztes Stable: 0.4.3).

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Scannen und OCR mit Gscan2pdf
    Vom gedruckten Wort bis zum digitalen Dokument in nur wenigen Schritten: Das Programm Gscan2pdf macht's möglich, weil es mehrere Tools unter einem Dach vereint.
  • Texterkennung mit Tesseract
    Schicke Frontends wollen beim Umgang mit der OCR-Engine Tesseract helfen. Wie gut das gelingt, zeigt ein Test.
  • Paperwork im Kampf gegen wachsende Aktenberge
    Der Traum ist so alt wie der PC auf dem Schreibtisch: Im papierlosen Büro sollen Akten nur noch digital im Rechner vorliegen. Für die Verwaltung des papierlosen Büros wurde Paperwork entwickelt.
  • Blätterwald
    Das PDF-Format hat sich als Standard für den Austausch von Dokumenten etabliert. Unter Linux stehen eine ganze Reihe von Programmen bereit, mit denen Sie alle Möglichkeiten dieses Dateiformats optimal ausreizen.
  • Weniger ist mehr
    Das ursprünglich für die automatische Bildaufbereitung von gescannten Bildern entwickelte ExactImage lässt sich auch im Alltag an verschiedenen Stellen nutzbringend einsetzen.
Kommentare

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...
Linux auf externe SSD installieren
Roland Seidl, 28.10.2016 20:44, 1 Antworten
Bin mit einem Mac unterwegs. Mac Mini 2012 i7. Würde gerne Linux parallel betreiben. Aber auf e...