Steffen Voß - Technologie & Gesellschaft

Digitalisierung : Eigene Scans in durchsuchbare PDFs umwandeln

Scan
Beispielscan

Steffen Voß

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:

1
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:

1
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:

1
sudo apt-get install pdftk poppler-utils tesseract-ocr tesseract-ocr-deu

Kopier Dir dieses Skript…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#/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:

1
chmod +x sandy.sh

Leg Dein ergebnis.pdf in das gleiche Verzeichnis und starte das Skript:

1
./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.

Kommentare

SammysHP
SammysHP:

Eine weitere Möglichkeit, die alles sehr elegant in einem einzigen Schritt kombiniert: gscan2pdf

24.2.2015 um 12:34
MAWSpitau (@MAWSpitau)
MAWSpitau (@MAWSpitau):

Ich bevorzuge an der Stelle

https://github.com/fritz-hh/OCRmyPDF
http://wiki.ubuntuusers.de/OCRmyPDF

Schnell, unkompliziert und einige Optionen die ich mitgeben kann. Unter Anderem der Parameter -g, der eine Kontrollansicht baut!

24.2.2015 um 16:33
Steffen
Steffen:

@SammyHP: Der Tipp ist prima – wenn man direkt vom Rechner scannt. Bei Netzwerkscannern kann man sich die Scans soweit ich weiß nur zumailen lassen. Mal sehen was sich da noch automatisieren lässt.

@MAWspitau: Sieht gut aus! Das muss ich ausprobieren!

24.2.2015 um 22:31
Bastian Baum
Bastian Baum:

PyPdfOcr wäre auch noch eine alternative, besonders die Watch-Funktion ist interessant.

https://github.com/virantha/pypdfocr

25.2.2015 um 01:34
Steffen
Steffen:

@Bastian: Oh, ja, die Watch-Funktion ist genau das, was ich gesuch habe! Jetzt muss ich nur noch herausfinden, wie ich über eine extra eingerichtete Mail-Adresse die Attachements in so ein Verzeichnis bekomme. Projekt fürs nächste Wochenende. 😀

25.2.2015 um 08:50
Ceelight
Ceelight:

HI,

ich habe hierzu mal ein Script veröffentlicht, welches interactiv ein DMS auf dieser techn. Basis realisiert:

Hier: http://blog.goldies-place.de/2013/10/06/scan2dms-skript-zum-dokumentenscan-pdf-erstellung-ablage/

Und hier: http://blog.goldies-place.de/2013/10/11/scan2dms-2-0/

Vielleicht hilft es ja dem ein oder anderen…

Cee

25.2.2015 um 14:59
Steffen Voß
Steffen Voß:

Danke für die vielen guten Tipps, Leute! <3

25.2.2015 um 22:50
MAWSpitau (@MAWSpitau)
MAWSpitau (@MAWSpitau):

Hui. pypdfocr macht wahrlich einen schlanken Fuß 😉 Großartiger Hinweis! Vielen Dank @Bastian! Ist bereits installiert und für gut befunden worden.

26.2.2015 um 09:47

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Möchtest Du per E-Mail benachrichtigt werden, wenn Dir hier jemand antwortet?