kaffeeringe.de

Digitalisierung: Eigene Scans in durchsuchbare PDFs umwandeln

Scan
Beispielscan

Aus selbst ge­scann­ten Dokumenten las­sen si­ch re­la­tiv ein­fach durch­such­ba­re PDFs er­zeu­gen – zu­min­dest un­ter Linux. 

Schon vor ei­ni­ger Zeit ha­be ich mi­ch da­mit be­schäf­tigt, wie man un­ter Ubuntu al­te Dokumente di­gi­ta­li­sie­ren kann. Das ist wei­ter­hin ein gu­tes Verfahren, wenn man nur an die Text-Inhalte her­an­kom­men will, oh­ne al­les ab­tip­pen zu müs­sen.

PDF bie­tet aber auch die Möglichkeit, über die ge­scann­ten Bilder ei­ne un­sicht­ba­re Ebene Text zu le­gen. So er­hält man den al­ten Look der Dokumente, kann aber die Texte durch­su­chen, mar­kie­ren und ko­pie­ren. Das Ergebnis nennt si­ch Sandwich-PDF.

Zunächst hat­te mir mein Scanner nur ei­nen Stapel JPG-Grafiken aus­ge­wor­fen, die al­le in ei­nem Verzeichnis la­gen. Daraus lässt si­ch mit GraphicsMagick sehr leicht ein PDF er­stel­len. Dazu mus­st du GraphicsMagick in­stal­lie­ren, wenn Du das no­ch nicht ge­tan hast:

1
su­do apt-get in­stall gra­phics­ma­gick

Dann kann­st Du die Bilder zu ei­nem PDF zu­sam­men­fü­gen. Dazu mus­st Du die Dateien in der rich­ti­gen Reihenfolge an­ge­ben:

1
gm con­vert datei1.jpg datei2.jpg datei3.jpg ergebnis.pdf

Das re­sul­tie­ren­de PDF ist dann no­ch nicht durch­such­bar. Dazu mus­st Du ein klei­nes Skript be­nut­zen, das ich bei aux­net ge­fun­den ha­be. Allerdings lief das bei mir nicht kor­rekt durch, weil die Dateiendung der tem­po­rä­ren Dateien ei­ne an­de­re war, als das Skript an­nimmt.

Installier da­zu fol­gen­de Tools – da ist auch Tesseract mit den deut­schen Interpretations-Dateien da­bei, falls Du es no­ch nicht in­stal­liert hast:

1
su­do apt-get in­stall pdftk poppler-utils tesseract-ocr tesseract-ocr-deu

Kopier Dir die­ses 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 ers­ten Parameter er­war­tet"
exit 1
fi

echo "Lese: $1"

# Basisnamen für spä­ter mer­ken
pdfba­se=$(ba­se­na­me "$1" .pdf)

# Extrahiere Bilder aus PDF
pdfi­ma­ges "$1" temp

# Lese Bilder ein­zeln und wen­de OCR an
for image in temp-*.ppm
do
ba­se=$(ba­se­na­me "$image" .ppm)
echo "OCR auf $ba­se"
tes­ser­act -l deu "$image" "${ba­se}" pdf
do­ne

# Fasse ein­zel­ne PDFs wie­der zu­sam­men
echo "PDFs zu­sam­men­fas­sen"
pdftk temp-*.pdf out­put "${pdfba­se}_sandy.pdf"

# Lösche tem­po­rä­re Dateien
echo "Aufräumen..."
rm temp-*.pdf temp-*.ppm

echo "Fertig!"

…und spei­cher es un­ter sandy.sh in Deinem Home-Verzeichnis und mach es aus­für­bar:

1
ch­mod +x sandy.sh

Leg Dein ergebnis.pdf in das glei­che Verzeichnis und star­te das Skript:

1
./sandy.sh ergebnis.pdf

Dabei kommt dann die Datei ergebnis_sandy.pdf her­aus, die durch­such­bar ist. Fertig.

Ein we­nig pro­ble­ma­ti­sch ist, dass man das Ergebnis na­tür­li­ch nicht rich­tig über­prü­fen und nach­bes­sern kann. Ob Tesseract die Texte kor­rekt er­kannt hat, kann man nur fest­stel­len, wenn man die Texte ko­piert und in ei­nen Editor ein­fügt. Besser als gar nichts, ist das aber al­le 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?