Ratgeber · Praxis & Anwendung
OCR oder Text-Layer: Warum manche PDFs leer extrahieren
Manche PDFs lassen sich problemlos extrahieren, andere liefern leeren Output. Der Grund liegt nicht im Tool, sondern im PDF-Typ. Wir erklären die drei Varianten und welche Lösung für welchen Typ funktioniert.
Wer aus einem PDF Text extrahieren möchte, stößt früher oder später auf das Problem leerer Output-Dateien. Das Tool funktioniert nicht? Die Datei ist kaputt? Nichts davon. Die Erklärung liegt im PDF-Typ. Es gibt drei grundsätzlich verschiedene PDF-Varianten, und jede braucht eine eigene Behandlung. Wir zeigen, welche das sind, woran man sie erkennt und was bei welcher Variante hilft.
Die drei PDF-Typen
PDF ist ein Container-Format. Im Container können verschiedene Arten von Inhalten liegen. Die wichtigsten drei Typen aus Sicht der Text-Extraktion sind:
Typ 1: Digitales PDF. Erzeugt aus einer Quelldatei wie Word, LaTeX, OpenOffice oder dem Browser-Druck. Text liegt als Vektor-Objekt im Content-Stream, jede Glyphe hat einen Unicode-Codepoint über die ToUnicode-CMap. pdfjs-dist.getTextContent liefert sauberen Text. Das ist der Standard-Fall für 95 Prozent aller modernen PDFs.
Typ 2: Gescanntes PDF. Erzeugt aus einem physischen Dokument über einen Scanner, einen Multifunktionsdrucker oder eine Kamera-App. Jede Seite besteht aus einem einzigen Bild (JPG oder TIFF im PDF eingebettet), referenziert über den Do-Operator. Es gibt keinen Text-Layer. getTextContent liefert ein leeres Items-Array. Typisch für Briefe, alte Verträge, Buch-Scans.
Typ 3: Hybrid-PDF. Optisch identisch mit einem gescannten PDF (Bild pro Seite), aber zusätzlich liegt ein unsichtbarer Text-Layer darüber, der durch OCR erzeugt wurde. getTextContent liefert den OCR-Text. Der Nutzer sieht das Scan-Bild, kann aber Text markieren und kopieren. Standard für gescannte Behörden-PDFs, archivierte Bücher und durchsuchbare Scan-Archive.
Wie man den Typ erkennt
Der einfachste Test: PDF im Browser oder in einem Reader öffnen, einen Textabschnitt mit der Maus markieren, kopieren und in einen Text-Editor einfügen.
Bei Typ 1 (digital) kommt sauberer Text in die Zwischenablage. Die Auswahl-Markierung folgt sauber den Glyphen.
Bei Typ 2 (gescannt) lässt sich nichts markieren oder die Auswahl-Markierung erscheint als rechteckiger Bild-Ausschnitt. Kopieren liefert ein Bild, keinen Text.
Bei Typ 3 (hybrid) lässt sich Text markieren, aber die Auswahl-Markierung wirkt manchmal etwas verschoben, weil der OCR-Layer nicht exakt mit dem Bild ausgerichtet ist. Kopierter Text kommt sauber in die Zwischenablage, hat aber gelegentlich OCR-typische Fehler (zum Beispiel rn statt m oder 0 statt O).
Adobe Acrobat zeigt zusätzlich im Datei-Eigenschaften-Dialog unter dem Reiter ‘Schriften’ an, welche Schriften eingebettet sind. Wenn keine Schriften gelistet sind, ist es ein reines Scan-PDF.
Was bei digitalen PDFs passiert
Bei Typ-1-PDFs ist die Sache einfach. pdfjs-dist.getTextContent durchläuft den Content-Stream, sammelt alle Tj- und TJ-Operatoren (definiert in ISO 32000-1:2008 Abschnitt 9.4.3) und gibt sie als Items mit Position und Schriftgröße zurück. Über die ToUnicode-CMap der eingebetteten Schriften werden die Glyph-Indizes auf Unicode-Codepoints gemappt.
Bei gut gemachten PDFs (Word ab Version 2007, LaTeX mit modernem hyperref, Browser-Druck aus Chrome oder Firefox) klappt das nahezu perfekt. Schwierig wird es bei alten Microsoft-Word-Versionen vor 2007, bei PDFs aus selbstgebauten LaTeX-Setups ohne ToUnicode-Map oder bei PDFs, die mit kaputten OCR-Tools nachträglich verändert wurden. Dort sieht man dann Käse-Zeichen oder Unicode-Private-Use-Codepoints im extrahierten Text.
Auf pdfkonvertieren.de ist unser PDF-zu-TXT-Tool genau für Typ 1 gemacht. Wir liefern sauberen UTF-8-Text mit Byte-Order-Mark, Zeilenumbruch-Erkennung über Y-Sprünge und korrekte Absatz-Markierung.
Was bei gescannten PDFs passiert
Bei Typ 2 (reines Scan-PDF) ist getTextContent machtlos. Es gibt keine Text-Operatoren im Stream, nur Bild-Referenzen. Das Items-Array ist leer. Wir geben dem Nutzer eine entsprechende Hinweis-Meldung: das PDF enthält keinen Text-Layer, OCR ist erforderlich.
Die Lösung für gescannte PDFs ist OCR (Optical Character Recognition). Eine OCR-Engine analysiert das Bild Pixel für Pixel, erkennt Glyphen-Formen und ordnet sie Buchstaben zu. Das Ergebnis kann entweder als reine Text-Datei oder als Text-Layer in ein neues Hybrid-PDF eingebaut werden.
Die wichtigsten OCR-Optionen 2026:
| Tool | Plattform | Lizenz | Genauigkeit (deutsch) | Kosten |
|---|---|---|---|---|
| Tesseract OCR | CLI Windows/Mac/Linux | Apache 2.0 | 98 % | kostenlos |
| Adobe Acrobat Pro | Windows/Mac | Proprietär | 99 % | ~290 €/Jahr |
| ABBYY FineReader | Windows/Mac | Proprietär | 99 % | ~199 € Einmalkauf |
| Tesseract.js | Browser | Apache 2.0 | 97 % | kostenlos, langsam |
| gImageReader | Linux/Windows GUI | GPL | 98 % | kostenlos |
Tesseract als kostenlose Lösung
Tesseract OCR ist das einflussreichste freie OCR-Tool. Ursprünglich von Hewlett-Packard in den 80ern entwickelt, seit 2005 unter Apache 2.0 Open Source, seit 2018 in Version 4 mit LSTM-basierter neuronaler Erkennung. Die Engine läuft auf der Kommando-Zeile:
tesseract scan.pdf output -l deu pdf
Das Kommando OCR’d eine PDF-Datei mit deutscher Sprachdatei und erzeugt eine Hybrid-PDF mit eingebettetem Text-Layer. Die Sprachdatei deu muss vorher installiert sein, auf Ubuntu via apt install tesseract-ocr-deu.
Für Windows gibt es vorkompilierte Builds von der UB Mannheim (github.com/UB-Mannheim/tesseract/wiki). Die Genauigkeit erreicht bei modernen Drucken 98 bis 99 Prozent, vergleichbar mit kommerziellen Tools. Bei schlechter Scan-Qualität (unter 200 DPI, schief, mit Schatten) fallen die Werte deutlich.
Tesseract kennt über 100 Sprachen, darunter deutsche Frakturschrift (frk), historisches Latein (lat), Arabisch, Chinesisch und viele andere. Frakturschrift erreicht bei guten Scans 90 Prozent Genauigkeit, was für historische Forschung oft ausreicht.
Warum wir keine OCR auf pdfkonvertieren.de bieten
Wir haben Tesseract.js (github.com/naptha/tesseract.js) ausprobiert, einen WebAssembly-Port von Tesseract für den Browser. Technisch funktioniert es: man bindet die Library ein, lädt eine Sprachdatei und kann PDFs OCR’en. Praktisch ist es für unser Tool nicht geeignet.
Die Performance ist das größte Problem. Tesseract.js braucht zwischen 5 und 20 Sekunden pro Seite, abhängig von Bildgröße und CPU. Bei einer 100-Seiten-Datei sind das mehr als zwanzig Minuten Browser-Zeit, in denen der Nutzer das Tab offen halten muss. Mit Sprach-Auswahl, Auflösungs-Optimierung und Fortschritts-Anzeige wäre das ein eigenes Tool, kein Add-On zu einem Konvertierer.
Zweitens braucht OCR Sprach-Vorauswahl. Wenn der Nutzer ‘Englisch’ wählt, aber die Datei deutsch ist, sind die Ergebnisse unbrauchbar. Wir müssten entweder Auto-Detection bauen oder den Nutzer zwingen, die Sprache zu wählen, was die UX verschlechtert.
Drittens: unsere Tools sind Konvertierer, nicht OCR-Pipelines. Wer OCR braucht, ist mit einem dedizierten Tool besser bedient: Tesseract auf der Kommando-Zeile für Power-User, ABBYY FineReader oder Adobe Acrobat Pro für Office-Nutzer.
Wir verweisen daher in der UI auf diese Alternativen, wenn wir feststellen, dass ein hochgeladenes PDF keinen Text-Layer hat.
Hybrid-PDFs selbst erzeugen
Wer regelmäßig gescannte PDFs in durchsuchbare Hybrid-PDFs umwandeln muss, kann das mit Tesseract auf der Kommando-Zeile automatisieren. Das folgende Skript läuft auf Mac und Linux und konvertiert alle PDFs in einem Ordner:
for f in *.pdf; do
tesseract "$f" "${f%.pdf}_ocr" -l deu pdf
done
Auf Windows mit PowerShell sieht das ähnlich aus:
Get-ChildItem -Filter *.pdf | ForEach-Object {
tesseract $_.FullName "$($_.BaseName)_ocr" -l deu pdf
}
Wer Adobe Acrobat Pro nutzt, klickt im Menü auf ‘Scan & OCR’, dann auf ‘Text erkennen’. Acrobat erkennt automatisch die Sprache und legt den Text-Layer transparent über das Bild. Die OCR-Qualität ist mit Tesseract vergleichbar, oft eine Spur besser bei schlechter Scan-Qualität.
ABBYY FineReader hat das beste Bedienkonzept für Office-Nutzer: ein klassischer Wizard führt durch Dokumenten-Auswahl, Sprach-Wahl und Output-Format. Die OCR-Engine ist bei schwierigen Schriften (italienische Renaissance-Drucke, deutsche Frakturen, kyrillisch mit alten Buchstabenformen) führend.
OCR bei Tabellen und Layout-Erkennung
Klassisches OCR erkennt Zeichen, aber nicht Struktur. Wer eine Tabelle scannt und OCR’d, bekommt linearen Text ohne Tabellen-Information. Die Spalten gehen verloren, alles wird zu Fließtext.
Moderne OCR-Tools (Tesseract ab Version 5, Adobe Acrobat ab Version 2021, ABBYY) erkennen Tabellen-Layout zusätzlich zum Text. Tesseract kann mit dem Modus --psm 6 (Page Segmentation Mode, einzelner Block uniformierter Text) oder --psm 11 (Sparse Text mit OSD, Auto-Rotations-Erkennung) verschiedene Layout-Strategien wählen. Für Standard-Drucke ist --psm 3 (Default, Auto-Layout) meistens die richtige Wahl.
ABBYY FineReader hat das ausgereifteste Layout-Verständnis und exportiert Tabellen direkt nach Excel, mit Spalten, Zeilen und Zell-Formaten erhalten. Für tabellen-lastige Dokumente (Buchhaltungs-Belege, Statistik-PDFs, Studienergebnisse) ist FineReader oft die einzige praktikable Lösung.
Genauigkeit in der Praxis
OCR-Genauigkeit hängt von vielen Faktoren ab: Scan-Auflösung, Schriftart, Schriftgröße, Bildqualität, Sprache, Bildkontrast. Eine Faustregel: 300 DPI saubere Scans von modernen Drucken sind die Goldgrube, alles darunter wird zur Lotterie.
Schriftart-Einfluss: Standard-Antiqua (Times, Garamond, Minion) wird zu 99 Prozent erkannt. Sans-Serif (Helvetica, Arial) ebenfalls. Schmalere Schriften wie Times New Roman Condensed verlieren leicht. Handschriften unter 50 Prozent. Frakturschrift mit spezieller Sprachdatei 90 Prozent, ohne spezielle Datei unter 60 Prozent.
Sprachen-Einfluss: Standard-Latein (Deutsch, Englisch, Französisch, Italienisch, Spanisch) ist gut abgedeckt. Slawische Sprachen mit Sonderzeichen brauchen die jeweilige Sprachdatei. Chinesisch und Japanisch funktionieren mit spezialisierten Modellen, sind aber rechenintensiver.
Was hängenbleibt
PDFs sind nicht alle gleich. Digitale PDFs (Typ 1) liefern sauberen Text aus getTextContent. Gescannte PDFs (Typ 2) liefern leeren Output, weil kein Text-Layer existiert. Hybrid-PDFs (Typ 3) haben einen unsichtbaren OCR-Layer und liefern Text mit OCR-typischen Fehlern. Für gescannte PDFs braucht es OCR: Tesseract (Apache 2.0, kostenlos, sehr gut), Adobe Acrobat Pro (kommerziell, ~290 €/Jahr) oder ABBYY FineReader (~199 € Einmalkauf). Wir bieten keine Browser-OCR an, weil Tesseract.js zu langsam und zu fehleranfällig für ein gutes Nutzer-Erlebnis ist. Wer OCR braucht, ist mit dedizierten Desktop-Tools besser bedient.
FAQ
Häufige Fragen
Wie erkenne ich, ob mein PDF Text-Layer hat?
Schneller Test: Im PDF-Viewer einen Textabschnitt mit der Maus markieren und kopieren. Wenn Text in die Zwischenablage kommt, ist Text-Layer vorhanden. Bei reinem Scan-PDF bekommt man entweder gar nichts oder einen Auswahl-Rahmen, der wie ein Bild-Ausschnitt aussieht. Adobe Acrobat zeigt im Datei-Eigenschaften-Dialog außerdem an, ob das PDF Text enthält.
Wie gut funktioniert OCR bei deutschen Texten?
Bei klar gedrucktem Latein-Schrift in moderner Standard-Typografie (Times, Helvetica, Arial) erreicht Tesseract OCR mit der `deu`-Sprachdatei eine Genauigkeit von 98 bis 99 Prozent. Schlechte Scan-Qualität (Schatten, schiefer Scan, niedrige Auflösung unter 200 DPI) drückt das schnell unter 90 Prozent. Frakturschrift, Handschrift oder historische Drucke aus dem 19. Jahrhundert können unter 50 Prozent fallen.
Was ist ein Hybrid-PDF?
Hybrid-PDFs (auch 'durchsuchbare PDFs' genannt) sind gescannte PDFs, durch die nachträglich ein unsichtbarer OCR-Text-Layer gelegt wurde. Optisch sieht der Nutzer das Scan-Bild, technisch liegt darunter ein extrahierbarer Text. Adobe Acrobat Pro, ABBYY FineReader und Tesseract können solche Hybrid-PDFs erzeugen. Sie verbinden gute Lesbarkeit (Original-Optik) mit Volltext-Suchbarkeit.
Warum macht pdfkonvertieren.de keine OCR?
Browser-basiertes OCR via Tesseract.js läuft, ist aber zu langsam und zu fehleranfällig für ein gutes Nutzer-Erlebnis. Tesseract.js braucht 5 bis 20 Sekunden pro Seite, bei einer 100-Seiten-Datei sind das mehr als zwanzig Minuten. Außerdem müsste der Nutzer die Sprache vorauswählen, sonst sind die Ergebnisse unbrauchbar. Wir verweisen daher auf Desktop-Tools wie Adobe Acrobat Pro oder ABBYY FineReader für OCR-Bedarf.
Gibt es kostenlose OCR-Tools für gescannte PDFs?
Ja, Tesseract OCR (`github.com/tesseract-ocr/tesseract`) ist die wichtigste freie Lösung, läuft unter Apache-2.0-Lizenz und kann via Kommando-Zeile direkt PDFs OCR'en (`tesseract scan.pdf output pdf`). Für Windows gibt es Tesseract über die UB-Mannheim-Builds, für Mac und Linux über die offiziellen Paket-Manager. Für eine grafische Oberfläche eignet sich gImageReader als Tesseract-Frontend.
Quellen
Worauf dieser Ratgeber sich stützt
Verwandte Ratgeber