kaffeeringe.de

Digitalisierung: Eigene Scans in durchsuchbare PDFs umwandeln

Scan
Beispielscan

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

Eine wei­te­re Möglichkeit, die al­les sehr ele­gant in ei­nem ein­zi­gen Schritt kom­bi­niert: gscan2pdf

MAWSpitau (@MAWSpitau)

Ich be­vor­zu­ge an der Stelle

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

Schnell, un­kom­pli­ziert und ei­ni­ge Optionen die ich mit­ge­ben kann. Unter Anderem der Parameter -g, der ei­ne Kontrollansicht baut!

Steffen

@SammyHP: Der Tipp ist pri­ma – wenn man di­rekt vom Rechner scannt. Bei Netzwerkscannern kann man si­ch die Scans so­weit ich weiß nur zu­mai­len las­sen. Mal se­hen was si­ch da no­ch au­to­ma­ti­sie­ren lässt.

@MAWspitau: Sieht gut aus! Das muss ich aus­pro­bie­ren!

Bastian Baum

PyPdfOcr wä­re auch no­ch ei­ne al­ter­na­ti­ve, be­son­ders die Watch-Funktion ist in­ter­es­sant.

https://github.com/virantha/pypdfocr

Steffen

@Bastian: Oh, ja, die Watch-Funktion ist ge­n­au das, was ich ge­su­ch ha­be! Jetzt muss ich nur no­ch her­aus­fin­den, wie ich über ei­ne ex­tra ein­ge­rich­te­te Mail-Adresse die Attachements in so ein Verzeichnis be­kom­me. Projekt fürs nächs­te Wochenende. 😀

Ceelight

HI,

ich ha­be hier­zu mal ein Script ver­öf­fent­licht, wel­ches in­ter­ac­tiv ein DMS auf die­ser techn. Basis rea­li­siert:

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 an­de­ren…

Cee

Steffen Voß

Danke für die vie­len gu­ten Tipps, Leute! <3

MAWSpitau (@MAWSpitau)

Hui. pypdfo­cr macht wahr­li­ch ei­nen schlan­ken Fuß 😉 Großartiger Hinweis! Vielen Dank @Bastian! Ist be­reits in­stal­liert und für gut be­fun­den wor­den.

Schreibe einen Kommentar

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

Möchtest Du benachrichtigt werden, wenn Dir hier jemand antwortet?