Aus selbst gescannten Dokumenten lassen sich relativ einfach durchsuchbare PDFs erzeugen – zumindest unter Linux.
Schon vor einiger Zeit habe ich mich damit beschäftigt, wie man unter Ubuntu alte Dokumente digitalisieren kann. Das ist weiterhin ein gutes Verfahren, wenn man nur an die Text-Inhalte herankommen will, ohne alles abtippen zu müssen.
PDF bietet aber auch die Möglichkeit, über die gescannten Bilder eine unsichtbare Ebene Text zu legen. So erhält man den alten Look der Dokumente, kann aber die Texte durchsuchen, markieren und kopieren. Das Ergebnis nennt sich Sandwich-PDF.
Zunächst hatte mir mein Scanner nur einen Stapel JPG-Grafiken ausgeworfen, die alle in einem Verzeichnis lagen. Daraus lässt sich mit GraphicsMagick sehr leicht ein PDF erstellen. Dazu musst du GraphicsMagick installieren, wenn Du das noch nicht getan hast:
sudo apt-get install graphicsmagick
Dann kannst Du die Bilder zu einem PDF zusammenfügen. Dazu musst Du die Dateien in der richtigen Reihenfolge angeben:
gm convert datei1.jpg datei2.jpg datei3.jpg ergebnis.pdf
Das resultierende PDF ist dann noch nicht durchsuchbar. Dazu musst Du ein kleines Skript benutzen, das ich bei auxnet gefunden habe. Allerdings lief das bei mir nicht korrekt durch, weil die Dateiendung der temporären Dateien eine andere war, als das Skript annimmt.
Installier dazu folgende Tools – da ist auch Tesseract mit den deutschen Interpretations-Dateien dabei, falls Du es noch nicht installiert hast:
sudo apt-get install pdftk poppler-utils tesseract-ocr tesseract-ocr-deu
Kopier Dir dieses Skript…
#/bin/bash if [ $# -eq 0 ] then echo "PDF-Datei als ersten Parameter erwartet" exit 1 fi echo "Lese: $1" # Basisnamen für später merken pdfbase=$(basename "$1" .pdf) # Extrahiere Bilder aus PDF pdfimages "$1" temp # Lese Bilder einzeln und wende OCR an for image in temp-*.ppm do base=$(basename "$image" .ppm) echo "OCR auf $base" tesseract -l deu "$image" "${base}" pdf done # Fasse einzelne PDFs wieder zusammen echo "PDFs zusammenfassen" pdftk temp-*.pdf output "${pdfbase}_sandy.pdf" # Lösche temporäre Dateien echo "Aufräumen..." rm temp-*.pdf temp-*.ppm echo "Fertig!"
…und speicher es unter sandy.sh in Deinem Home-Verzeichnis und mach es ausfürbar:
chmod +x sandy.sh
Leg Dein ergebnis.pdf in das gleiche Verzeichnis und starte das Skript:
./sandy.sh ergebnis.pdf
Dabei kommt dann die Datei ergebnis_sandy.pdf heraus, die durchsuchbar ist. Fertig.
Ein wenig problematisch ist, dass man das Ergebnis natürlich nicht richtig überprüfen und nachbessern kann. Ob Tesseract die Texte korrekt erkannt hat, kann man nur feststellen, wenn man die Texte kopiert und in einen Editor einfügt. Besser als gar nichts, ist das aber alle mal.
Schreibe einen Kommentar