Aus LinuxUser 09/2016

Durchsuchbare PDFs erstellen und optimal nutzen

© smileus, 123RF

Blätterwald

Das PDF-Format hat sich als Standard für den Austausch von Dokumenten etabliert. Unter Linux stehen eine ganze Reihe von Programmen bereit, mit denen Sie alle Möglichkeiten dieses Dateiformats optimal ausreizen.

Dokumente unterschiedlichster Art, von Rechnungen über Bedienungsanleitungen bis hin zu Büchern und wissenschaftlichen Arbeiten, werden heutzutage digital verschickt, verbreitet und genutzt – vorzugsweise im plattformunabhängigen PDF-Format. Durchsuchbare Dokumente erleichtern das schnelle Auffinden einer bestimmten Stelle innerhalb der Datei, Metadaten halten zusätzliche Informationen bereit.

Zudem gibt es zahlreiche Möglichkeiten, um PDF-Dokumente zu bearbeiten. Ganz nach Bedarf lassen sich einzelne Seiten entfernen, neue einfügen oder einzelne Seiten zu einer neuen PDF-Datei zusammenfügen. Auch können Sie in einer PDF-Datei, wie in einem gedruckten Text, Textstellen markieren oder Anmerkungen hinzufügen.

Texterkennung

Um die Möglichkeiten des PDF-Formats voll auszunutzen, sollten PDF-Dateien durchsuchbar sein. So durchstöbern Sie etwa gleich mehrere PDF-Dateien nach bestimmten Wörtern und finden innerhalb einer Datei mittels der Suchfunktion des PDF-Betrachters schnell die richtige Stelle. PDF-Dateien, die Sie mit LaTeX oder LibreOffice erstellen, lassen sich üblicherweise bereits durchsuchen. Anders sieht es jedoch bei PDF-Dateien aus, die Sie aus Scans erstellen: Sie bestehen nach dem Scan zunächst nur aus reinen Bilddaten, denen Sie mittels einer Texterkennung noch eine Textebene hinzufügen müssen.

Als Texterkennungsprogramm für Linux empfiehlt sich die OCR-Engine Tesseract [1]. Die meisten Distributionen führen das Programm in ihren Paketquellen, bei Debian oder Ubuntu finden Sie es im Paket tesseract-ocr. Zudem benötigen Sie ein Paket mit den Sprachen, die das Programm erkennen soll, wie etwa tesseract-ocr-deu oder tesseract-ocr-eng.

Das Programm selbst bringt keine grafische Oberfläche mit, doch auch aus der Kommandozeile lässt sich der Inhalt einer Bilddatei komplett in maschinenlesbaren Text übersetzen. Listing 1 gibt alle zur Verfügung stehenden Sprachen aus. Dort steht osd für „Orientation and Script Detection“, also für das automatische Ermitteln der Orientierung des Scans sowie für die Erkennung von Texten in Spalten. Anschließend übergeben Sie Tesseract einen Scan als beispiel.jpg und lassen den erkannten Text eine gleichnamige Textdatei ausgeben.

Listing 1

$ tesseract --list-langs
List of available languages (3):
deu
eng
osd
$ tesseract -l deu beispiel.jpg beispiel.txt

Damit liegt nun eine durchsuchbare Textdatei auf der Festplatte. Das PDF selbst allerdings kennt weiterhin nur die Bilddaten. Anwendungen wie OCRmyPDF [2] gehen nun einen Schritt weiter und betten den von Tesseract per OCR ermittelten Text direkt ins PDF ein, wie man es etwa vom LibreOffice-Export gewohnt ist.

Das Programm lässt sich bisher nur unter Debian „Testing“ aus den Paketquellen installieren. Bei aktuellen Distributionen müssen Sie daher in der Regel auf das Paketverwaltungsprogramm Pip für Python-Pakete zurückgreifen. Damit spielen Sie den Python-Paketmanager samt der von OCRmyPDF benötigten Abhängigkeiten ein, aktualisieren Pip und installieren dann abschließend das Programm (Listing 2).

Listing 2

$ sudo apt install python3-pip python3-pil python3-pytest python3-reportlab zlib1g-dev libjpeg-dev libffi-dev ghostscript qpdf unpaper
$ sudo pip3 install --upgrade pip
$ sudo pip3 install ocrmypdf

Um aus einem Scan eine durchsuchbare PDF-Datei zu erstellen, verwenden Sie die Kommandos aus Listing 3. Da Texterkennung mit Tesseract nicht einfach nur Buchstabe für Buchstabe analysiert, sondern das Ergebnis mit einem sprachspezifischen Wörterbuch abgleicht, müssen Sie den Aufruf mit -l deu auf die richtige Sprache einstellen. Ohne eine Angabe gehen OCRmyPDF und damit auch Tesseract von Englisch als Sprache aus.

Listing 3

$ ocrmypdf -l deu artikel.pdf artikel_ocr.pdf
$ ocrmypdf -l deu -c -d -i --title "Sherlock Holmes: Ein Skandal in Böhmen" --author "Arthur Conan Doyle" --subject Scan --keywords "Krimi, Kurzgeschichte" scan.pdf scan_ocr.pdf

Die beiden Optionen -c und -d veranlassen OCRmyPDF, Scan-Fehler wie dunkle Balken zu korrigieren und schief gescannten Text gerade auszurichten. Dazu greift OCRmyPDF auf das dafür optimierte Werkzeug Unpaper [3] zurück. Ohne weitere Angaben nutzt OCRmyPDF die mit Unpaper verbesserten Seiten nur intern zur Texterkennung, erst durch die Option -i landen die bereinigten Scans auch in der Ausgabedatei.

Das Hinzuziehen von Unpaper funktioniert gut – allerdings meist nur dann, wenn der Scan ausschließlich Fließtext enthält. Finden sich im gescannten Dokument auch Bilder und grafische Elemente, dann kommt es durchaus vor, dass Unpaper auch diese als Scan-Fehler ansieht und löscht. Verzichten Sie daher im Zweifel besser auf die Option.

Am Ende definieren Sie Metadaten wie Titel, Autor, Betreff und Schlagwörter für das ausgegebene PDF-Dokument. Einzelne Wörter tragen Sie einfach hinter dem entsprechenden Schalter ein, mehrere Wörter oder ganze Sätze gehören in Anführungszeichen. Am Ende steht der Name der Eingabedatei, gefolgt vom Namen der Ausgabedatei. Als Ergebnis erhalten Sie eine durchsuchbare PDF-Datei.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 8 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 09/2016 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: