ubuntuusers.de

ubuntuusers.deWikipdfsandwich

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 überführt und aus diesen mit Cuneiform-Linux 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.

Installation

pdfsandwich ist nicht in den Ubuntuquellen 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. Dabei 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 Cuneiform-Linux 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 Cuneiform-Linux. 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 Option(en) zusätzliche Cuneiform-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 Sprache des Textes (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.

pdfsandwich kompilieren

Die .deb-Version von pdfsandwich "erzwingt" die Verwendung von Cuneiform-Linux < 0.9.0, bzw. lässt sich bei höheren Versionen nicht installieren, da in der Version ein Programmfehler zur Ausgabe überdimensionierter Schrift führen kann. Wer z.B. die neuste Cuneiform-Version 1.x.x verwenden möchte, kann auf die Git-Version von pdfsandwich zurückgreifen, die mit der Cuneiform 1.x.x-Version zusammenarbeitet; der Fehler tritt allerdings z.T. auch dort auf....

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

  • ocaml

Wiki/Vorlagen/Installbutton/button.png

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

  • imagemagick

  • exactimage

  • ghostscript

  • cuneiform (< Version 0.9.0!)

Wiki/Vorlagen/Installbutton/button.png

Paketliste zum Kopieren:

sudo apt-get install imagemagick exactimage ghostscript cuneiform 

sudo aptitude install imagemagick exactimage ghostscript cuneiform 

Den Code mit

svn checkout https://svn.origo.ethz.ch/pdfsandwich/trunk pdfsandwich 

herunterladen. Die Kompilierung erfolgt dann im Verzeichnis src nach üblichem Muster[4]. Bei der Verwendung von checkinstall auf die Vergabe eines sinnvollen Namens achten, sonst wird evt. src verwendet.

Wenn die in dem Makefile vorgesehene Paketerstellung mit make deb erfolgt, wird ein Paket erstellt, dass sich nur verwenden lässt, wenn Cuneiform in einer Version kleiner als 0.9.0 installiert ist. Momentan können nämlich für pdfsandwich nur hOCR-Dateien verwendet werden, die von einer entsprechenden Cuneiform-Version erstellt wurden. Ab Version 0.9.0 wird eine veränderte hOCR-Version verwendet, bei der es bei der Weiterverarbeitung mit hocr2pdf zu Fehlern in der Darstellung der Schrift kommt (z.T. extrem vergrößerte Schriftzeichen). Bei so erstellten Sandwich-PDFs ist die verborgenen Textebene praktisch unbrauchbar! Die neusten auf der Downloadeite angebotenen .deb-Versionen (ab 0.0.3 ) beinhalten diese Vorsichtsmaßnahme ebenfalls.

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)
-cuneiform -cuneiform <Dateiname> : Name des cuneiform-Programms (Standard: cuneiform)
-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 OCRopus liefert aber sehr gute Ergebnisse, wenn die tesslanguage-Variable exportiert wurde (siehe gscan2pdf - Problembehandung). Außerdem kann die Texterkennung vor der Verarbeitung überprüft und ggf. korrigiert werden.

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

Diese Revision wurde am 11. April 2012 03:21 von Kuttel Daddeldu erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Büro, Grafik, Kommunikation, OCR, PDF, Texterkennung

Passwort vergessen?