ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

pdfsandwich

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

./sandwich.png
© Quelle

pdfsandwich {en} ist ein Kommandozeilenwerkzeug zum Erstellen von durchsuchbaren PDF-Dateien. Mit Textverarbeitungsprogrammen erstellte PDF-Dateien können ohne Weiteres durchsucht werden, anders ist es mit reinen Bild-Vorlagen, die z.B. mit Scannern zur Archivierung (papierloses Büro, Digitalisierung alter Unterlagen etc,) erstellt wurden. Dafür wird die gescannte PDF-Vorlage mit convert aus ImageMagick in eine oder mehrere .bmp3-Dateien, ab 0.0.6 .png-Dateien überführt und aus diesen mit Cuneiform-Linux, ab 0.0.6 tesseract-ocr 3.0x, jeweils eine Texterkennung im hOCR-Format erstellt. Die OCR-Dateien und die PDF-Vorlagen werden mittels hocr2pdf als "unsichtbare" Schicht zusammengeführt, und schließlich mit ghostscript zu einer zusammenhängenden PDF-Datei weiterverarbeitet. Durch die Möglichkeit, mehrere Prozesse parallel arbeiten zu lassen (Befehlsoption -nthreads), ergeben sich gerade auf Rechnern mit 4 oder gar 8 CPUs erhebliche Zeitersparnisse gegenüber einer rein sequentiellen Verarbeitung.

Hinweis:

Die Probleme mit den von Cuneiform-Linux > 0.8.0 erstellten hocr-Dateien für hocr2pdf machen das Programm in der Version 0.0.3 für aktuelle Ubuntu-Versionen fast unbrauchbar. Ab Version 0.0.6 wird daher Tesseract in Version 3.0x verwendet, um die hocr/html-Dateien zu erzeugen. Benötigt werden dazu die gewünschten tesseract-ocr-Sprachpakete, die inzwischen in dutzenden Sprachen vorliegen.

Installation

pdfsandwich ist nicht in den Ubuntu-Quellen vorhanden, es können aber .deb-Pakete für 32- und 64-bit-Versionen von der Downloadseite {dl} des Projektes heruntergeladen und installiert[1] werden. Bei Versionen < 0.0.5 darauf achten, dass Cuneiform-Linux in einer Version kleiner als 0.9.0 installiert ist (siehe Kompilieren!).

Hinweis!

Fremdpakete können das System gefährden.

Bedienung

Die allgemeine Syntax zur Bedienung im Terminal[2] lautet

pdfsandwich [Optionen] <Ausgangsdatei>.pdf 

Es entsteht eine durchsuchbare PDF-Datei mit dem Namen <Ausgangsdatei>_ocr.pdf. Standard ist dabei die Verwendung von tesseract für englischsprachige Texte, der Prozess lässt sich aber über etliche Optionen den eigenen Bedingungen und Bedürfnissen entsprechend anpassen. pdfsandwich verlässt sich dabei auf die, zugegebenermaßen recht gute, Texterkennungsqualität von tesseract. Empfohlen werden Schwarz-weiße Vorlagen ohne Bilder, die Passung wird mit verschachtelten Vorlagen schwieriger. Eine Korrekturfunktion (z.B. wie das Mozilla-hOCR-Addon {en}/{de}) ist bisher leider nicht implementiert.

Optionen

pdfsandwich-Optionen
Option ggf. Wert Funktion
-coo Option(en) zusätzliche convert-Optionen; diese müssen in " " stehen, z.B. -coo "-normalize -black-threshold 75%"
Siehe convert --help oder die Manpage zu convert
-cuo, ab 0.0.6 -tesso Option(en) zusätzliche Cuneiform-Optionen bzw. tesseract-Optionen; diese müssen in " " stehen! z.B. -cuo "--fax" (ein für Faxvorlagen optimierter Texterkennungsmodus)
-first_page Seitenzahl Seitenzahl, ab der OCR durchgeführt werden soll (Standard: 1)
-last_page Seitenzahl Seitenzahl, bis zu der OCR durchgeführt werden soll (Standard: letzte Seite der Vorlage)
-lang Sprachkürzel verwendete Sprache für die Texterkennung (Standard: eng)
-noimage Keine Verwendung des Bildes, reine OCR-Ausgabe in der PDF-Datei
-nthreads <Anzahl> Anzahl der parallel durchgeführten Prozesse (Standard: vermutete Anzahl der CPUs; sonst 1)
-o <Dateiname> Ausgabe-Datei; Standard: <Eingabedatei>_ocr.pdf
-resolution NUMxNUM (in dpi) Auflösung für die Texterkennung (Standard: 300x300 dpi)
-rgb Verwendung des RGB-Farbraums in den Vorlagen (Standard: Strichzeichnung)
-sloppy_text hocr2pdf-Option: Zeichen mit größeren Abständen zusammenfassen, keine einzelnen Zeichen wiedergeben
-quiet keine Prozessausgaben
-verbose "gesprächige" Ausgabe, z.B. zur Fehlereingrenzung
-version Versionsangabe
-help, | --help Anzeige der möglichen Optionen

Probleme

Wenn bei der Erstellung unerwartet große PDF-Dateien entstehen (ein Vielfaches der Ausgangsdokumentgröße), kann es helfen, die entstandenen Dateien erneut mit pdfsandwich zu bearbeiten. Damit sollte die Größe auf ein normales Maß zurückgeführt werden können; unter tesseract sollte dieses Problem allerdings nicht auftreten.

pdfsandwich kompilieren

Voraussetzung zur Kompilierung ist neben den im SVN-Artikel genannten Paketen die Installation[3] von

  • ocaml

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install ocaml 

sudo aptitude install ocaml 

Die von pdfsandwich verwendeten Programme müssen natürlich ebenfalls installiert sein, also

  • imagemagick

  • exactimage

  • ghostscript

  • tesseract-ocr (sowie die gewünschten Sprachpakete)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install imagemagick exactimage ghostscript tesseract-ocr 

sudo aptitude install imagemagick exactimage ghostscript tesseract-ocr 

Den Code mit

svn co https://pdfsandwich.svn.sourceforge.net/svnroot/pdfsandwich/trunk/src pdfsandwich-0.0.x  

herunterladen. Die Kompilierung erfolgt dann nach üblichem Muster[4].

Extra-Optionen

Für Bastler, die ihre eigenen Versionen der benötigten Programme verwenden möchten, können für die PDF-Erstellung als Option die jeweils verwendeten Namen der Programme angegeben werden:

binary-Optionen
Option Funktion
-convert -convert <Dateiname> : Name des convert-Programms (Standard: convert)
-tesseract -tesseract <Dateiname> : Name des tesseract-Programms (Standard: tesseract)
-gs -gs <Dateiname> : Name des Ghostscript-Programms (Standard: gs)
-hocr2pdf -hocr2pdf <Dateiname>: Name des hocr2pdf-Programms (Standard: hocr2pdf)

Alternativen

  • gscan2pdf ist ebenfalls in der Lage, durchsuchbare PDF-Dateien zu erstellen; die Verwendung von Cuneiform-Linux ist allerdings erst ab Version 0.9.31 möglich, und auch nur ab Version 0.9.0, die mit libmagick++-Unterstützung kompiliert wurden. Die Schriftgröße wird angemessen ausgegeben, dabei scheint aber die Erkennung (bei fett und kursiv gesetzten Textteilen unter Cuneiform) hinter der bei der Verwendung von pdfsandwich zurückzubleiben; die Verwendung von tesseract-ocr 3.0x liefert aber sehr gute Ergebnisse). Außerdem kann die Texterkennung vor der Verarbeitung überprüft und ggf. korrigiert werden (zumindest bis Version gscan2pdf 0.9.32).

  • pdfocr funktioniert nach ganz ähnlichem Prinzip wie pdfsandwich, hat aber mit Cuneiform > 0.9.0 dieselben Probleme.

  • xsane2sandwich kann verwendet werden, um direkt aus Xsane heraus durchsuchbare PDF-Dateien mit eingebetteter Textlage zu erstellen; allerdings können keine bestehenden Dateien bearbeitet werden.

ubuntuusers.local › Wikipdfsandwich