OCR (optical character recognition) aus PDF
Da es leider immer wieder vorkommt, dass die Originaldateien eingescannter Texte nicht mehr vorliegen (oder nicht mehr gefunden werden können), muss in diesen Fällen eine Texterkennung bemüht werden, um aus den Bilddateien in den PDFs editierbaren Text zu erzeugen. Das Kommandozeilentool OCRmyPDF von James Barlow ist diesbezüglich eine unglaubliche Hilfe.
Die Installation unter Windows ist nicht so einfach wie unter Linux. Folgende Eingaben vereinfachen die Installation unter Windows und sind auch für ungeübte Nutzer einfach zu bewerkstelligen.
Folgende Programme müssen installiert werden:
- Python 64-bit
- Tesseracht 64-bit
- Ghostscript 64-bit
Man öffnet am einfachste mit Windos + x Taste ein Auswahlfenster und wählt dort Windows PowerShell aus und kopiert die untenstehenden Anweisungen in das Terminal Fenster hinein. Nach jeder Zeile mit Return bestätigen und warten bis der Befehl abgearbeitet ist!
winget install -e --id Python.Python.3.14winget install -e --id UB-Mannheim.TesseractOCRpy -m pip install ocrmypdf
Leider kann Ghostscript im Moment nicht mit Winget installiert werden. folgender Link führt zum Download von Ghostscript. Die Exe Datei muss danach installiert werden.
Um OCRmyPdf zu starten tippt man wieder Windows + X Taste alternativ Windows + r Taste und cmd eingeben. Im Terminalfenster folgendes eintippen und mit Return Taste abschliessen:
py -m ocrmypdf Eingabe.pdf Ausgabe.pdf
Wenn kein neuer Name eingegeben wird, wird das Original PDF überschrieben, was gewisse Risiken beinhaltet. Noch einfacher ist es, wenn ein Verzeichnis angelegt wird, in welches die umgewandelten Dateien gespeichert werden. Zum Beispiel:
%userprofile%\Documents\NeuerOrdnerName\Den NeuerOrdnerName nach Wunsch zuerst erstellen und den Namen anpassen.
Damit werden alle Konflikte zum Vornhinein vermieden.
OCRmyPDF-Optionen
| Option | Funktion |
| -h | Hilfefunktion |
| -v | Ausführlichkeit der Meldungen erhöhen (diese Option kann mehrfach verwendet werden) |
| -k | Temporärdateien nicht löschen (Speicherort ist standardmäßig OCRmyPDF-x.x/tmp/DATUM_UHRZEIT.filename.EINGABE ohne Endung) |
| -g | Debug-Modus: – erstellt eine PDF-Datei, in der jede Seite zweimal vorhanden ist (einmal nur mit der Textlage und den „bounding boxes“, einmal mit dem Bild; siehe Abbildung) – Ausführlichkeit wird auf das höchstmögliche Level gestellt – die Temporärdateien werden nicht gelöscht, es wird ein Log zur PDF-Überprüfung angelegt |
| -d | Jede Seite vor der Texterkennung geradeziehen (mit convert aus ImageMagick) |
| -c | Jede Seite vor Texterkennung säubern (mit unpaper) |
| -i | Das gesäuberte Bild in der Ausgabe-PDF-Datei verwenden (Standard ist es, das Original zu verwenden, oder die geradegezogene Version, wenn die -d-Option gesetzt ist) |
| -o | Falls die Auflösung eines Vorlagebildes niedriger sein sollte als die per Argument angegebene Auflösung in dpi, wird für die Texterkennung ein „oversampled“ Bild mit letzterer Auflösung erstellt. Dadurch kann die Texterkennung verbessert werden, führt aber ggf. zu größeren PDF-Ausgabedateien (Standard: keine Verwendung von oversampled Vorlagen) |
| -f | Erzwinge eine Texterkennung für das gesamte Dokument, selbst wenn einige Seiten bereits Font-Daten enthalten (was bei PDF-Dateien aus Scans eigentlich nicht vorkommen sollte). Nutzung allerdings mit Bedacht, da bei überdimensionierten PDFs einen sehr hohe CPU/Arbeitsspeicher-Last entstehen kann!. |
| -l | Angabe der Sprache in der PDF-Datei als 3-stelliger Sprachcode (ISO 639-2), z.B. „deu“ für deutsch. Die Texterkennung wird dadurch verbessert (Standard ohne Angabe ist Englisch). Jede von Tesseract unterstützte Sprache ist möglich. |
| -C | Angabe einer zusätzlichen tesseract-Konfigurationsdatei (diese Option kann mehrfach verwendet werden). Die Konfigurationsdatei muss sich im tessdata/configs-Verzeichnis der tesseract-Installation befinden, normalerweise /usr/share/tesseract/ zu finden. Die mitgelieferte Datei tess-cfg/no_ligature, die die Verwendung der f-Ligaturen fi und fl verhindert, muss zur Nutzung entsprechend verschoben werden. |
| -s | Überspringt bei der Texterstellung alle Seiten, in denen schon Text enthalten ist, die Seiten werden aber in das Dokument aufgenommen. Sinnvoll für Seiten, die eine Mixtur aus Bildern, Textseiten und /oder bereits mit OCR versehenen Lagen beinhalten. |
| –output-type {pdfa,pdf,pdfa-1,pdfa-2,pdfa-3} | Legt das Ausgabeformat fest – pdfa erzeugt eine dem PDF/A-2b-Standard entsprechend Datei zur Langzeit-Archivierung (empfohlen, Standardeinstellung). Mit pdf wird versucht, die Eingabedateiinhalte so wenig als möglich zu verändern. Mit pdf-a1 wird eine PDF/A1-b Datei erstellt, pdf-a2 entspricht pdfa, pdf-a3 erzeugt eine PDF/A3-b-Datei. |
Die Hilfefunktion liefert Informationen zu einer Vielzahl weiterer Optionen.