OCR für PDFs unter Linux mit Tesseract – vollständige Anleitung
Tesseract ist die führende Open-Source-OCR-Engine, die ursprünglich von HP entwickelt und heute von Google gepflegt wird. Unter Linux ist Tesseract die erste Wahl für die automatische Texterkennung in gescannten PDFs. In Kombination mit pdftoppm oder Ghostscript für die Bildextraktion und ocrmypdf als Wrapper können Sie gescannte Dokumente in vollständig durchsuchbare PDFs umwandeln – komplett lokal, ohne Cloud-Dienste und ohne Kosten. Dieser Artikel erklärt die Installation, Konfiguration und den Einsatz von Tesseract für die PDF-OCR unter Linux, inklusive spezifischer Tipps für deutschsprachige Dokumente.
Tesseract und ocrmypdf installieren und konfigurieren
Tesseract ist in den Paketquellen aller gängigen Linux-Distributionen verfügbar. Auf Ubuntu/Debian: sudo apt install tesseract-ocr tesseract-ocr-deu. Das Paket tesseract-ocr-deu enthält die deutschen Sprachdaten, die für die Erkennung deutschsprachiger Dokumente notwendig sind. Für ocrmypdf, das pdftk, Tesseract und Ghostscript zu einem komfortablen Workflow kombiniert: sudo apt install ocrmypdf. Auf Fedora: sudo dnf install tesseract tesseract-langpack-deu ocrmypdf. Nach der Installation können Sie die verfügbaren Sprachen mit tesseract --list-langs überprüfen.
- 1Tesseract installieren: sudo apt install tesseract-ocr tesseract-ocr-deu (Ubuntu/Debian)
- 2ocrmypdf installieren: sudo apt install ocrmypdf
- 3Einfache OCR-Konvertierung: ocrmypdf --language deu gescannt.pdf durchsuchbar.pdf
- 4Nur OCR ohne Layout-Änderung: ocrmypdf -l deu --skip-text gescannt.pdf ausgabe.pdf
- 5Ergebnis prüfen: pdftotext ausgabe.pdf - | head -50
ocrmypdf: Der einfachste Weg für PDF-OCR unter Linux
ocrmypdf ist ein Wrapper, der Tesseract, Ghostscript und andere Tools zu einem einfachen Workflow kombiniert. Der grundlegende Befehl für deutschen Text lautet: ocrmypdf --language deu eingabe.pdf ausgabe.pdf. Dieser Befehl erkennt deutschen Text im gescannten PDF und erstellt eine neue Version mit eingebettetem, durchsuchbarem Text. Das Original-Scan-Bild bleibt erhalten, sodass das Dokument genauso aussieht wie vorher, aber nun vollständig durchsuchbar ist. Nützliche Optionen: --deskew korrigiert leicht schiefe Scans automatisch, --clean entfernt visuelles Rauschen vor der OCR und --rotate-pages dreht falsch ausgerichtete Seiten automatisch.
Tipps für bessere OCR-Qualität unter Linux
Die OCR-Qualität hängt stark von der Qualität des Eingabedokuments ab. Für beste Ergebnisse sollten gescannte Dokumente eine Auflösung von mindestens 300 DPI haben. Wenn Sie niedrigauflösende Scans haben, kann Ghostscript vor der OCR hochskaliert werden. Das Schärfen des Bildes kann die Erkennungsrate erhöhen: ocrmypdf --deskew --clean --rotate-pages -l deu eingabe.pdf ausgabe.pdf. Wenn Ihr Dokument mehrsprachig ist, können Sie mehrere Sprachen angeben: ocrmypdf -l deu+eng eingabe.pdf ausgabe.pdf. Für alte Dokumente mit Frakturschrift steht das Sprachpaket tesseract-ocr-deu-frak zur Verfügung.
Batch-OCR für viele Dokumente automatisieren
Für die Verarbeitung vieler gescannter Dokumente eignet sich ein Bash-Skript: for f in *.pdf; do ocrmypdf -l deu --skip-text "$f" "ocr_$f"; done. Dieses Skript verarbeitet alle PDFs im aktuellen Ordner. Die Option --skip-text überspringt Seiten, die bereits erkennbaren Text enthalten, und beschleunigt so die Verarbeitung. Für Parallelverarbeitung auf Multi-Core-Systemen: find . -name '*.pdf' | parallel -j4 ocrmypdf -l deu {} ocr_{/}. Das parallel-Kommando (parallel installieren: sudo apt install parallel) verarbeitet vier PDFs gleichzeitig. Fuer Entwickler, die Tesseract in eigene Anwendungen integrieren moechten, bietet die Tesseract-API Sprachbindungen fuer Python, Java, C++ und weitere. Mit dem Python-Paket pytesseract laesst sich OCR in Python-Skripten einfach nutzen: pip install pytesseract pillow. Fuer Web-Anwendungen unter Node.js gibt es das Paket node-tesseract-ocr. Diese Integrationsmoeglichkeiten machen Tesseract zur bevorzugten OCR-Loesung in Open-Source-Projekten, die Texterkennung benoetigen. Kombiniert mit ocrmypdf und einem einfachen REST-API-Layer koennen Sie so schnell einen eigenen OCR-Mikrodienst aufbauen, der gescannte PDFs entgegennimmt und durchsuchbare PDFs zurueckliefert. Fuer Produktionsumgebungen empfiehlt sich die Containerisierung mit Docker, um alle Abhaengigkeiten konsistent bereitzustellen. Fuer fortgeschrittene Linux-Nutzer gibt es weitere Moeglichkeiten, die OCR-Qualitaet zu verbessern. Mit dem Parameter --psm (page segmentation mode) koennen Sie Tesseract mitteilen, wie die Seite aufgebaut ist. PSM 1 ist der Standardmodus fuer automatische Seitensegmentierung. PSM 6 eignet sich fuer einheitliche Bloecke von Text. PSM 11 ist ideal fuer sparsamen Text oder einzelne Zeilen. Fuer deutsche Dokumente sollten Sie sicherstellen, dass das Sprachpaket tesseract-ocr-deu installiert ist. Mit der TESSDATA_PREFIX-Umgebungsvariable koennen Sie den Pfad zu benutzerdefinierten trainierten Modellen angeben, was bei Spezialtexten wie historischen Dokumenten oder wissenschaftlichen Fachartikeln hilfreich ist. Fuer einfache OCR ohne Terminal-Kenntnisse ist LazyPDF im Browser die empfohlene Alternative, die qualitativ hochwertige OCR-Ergebnisse ohne Konfigurationsaufwand liefert. Ein haeufiges Problem bei der OCR-Verarbeitung unter Linux ist die falsche Sprache. Stellen Sie sicher, dass das deutsche Sprachpaket installiert ist und den Parameter -l deu verwenden. Mit tesseract --list-langs koennen Sie alle installierten Sprachpakete anzeigen. Fuer beste Ergebnisse sollte die Eingabe-PDF eine Aufloesung von mindestens 300 DPI haben. Niedrig aufgeloeste Scans koennen vor der OCR mit ImageMagick hochskaliert werden.
Häufig gestellte Fragen
Wie gut erkennt Tesseract deutschen Text?
Tesseract mit dem deutschen Sprachpaket (tesseract-ocr-deu) liefert bei sauberen, hochauflösenden Scans eine Erkennungsgenauigkeit von über 99 % für standardmäßigen deutschen Drucktext. Bei Umlauten (ä, ö, ü, ß) ist die Erkennung ebenfalls zuverlässig. Schwierigkeiten treten bei sehr kleiner Schrift (unter 8pt), schlechter Bildqualität oder ungewöhnlichen Schriftarten auf.
Kann Tesseract unter Linux auch Handschriften erkennen?
Die Standard-Tesseract-Engine ist für Druckschrift optimiert und erkennt Handschriften schlecht. Für Handschriften gibt es spezialisierte Machine-Learning-Modelle, die mit Tesseract trainiert wurden. Alternativ eignen sich Cloud-Dienste wie Google Cloud Vision oder Azure Computer Vision besser für Handschrifterkennung. Für gedruckte Texte ist Tesseract jedoch sehr leistungsfähig.
Bleibt das Original-PDF-Layout nach der OCR erhalten?
Ja, ocrmypdf fügt den erkannten Text als unsichtbare Ebene über dem Originalbild ein. Das bedeutet, das Dokument sieht nach der OCR genauso aus wie vorher – alle Bilder, Formatierungen und das Layout bleiben unverändert. Der Text ist nun jedoch durchsuchbar und kann kopiert werden.