Zum Inhalt springen
LeedyBox
Unterstützen

Text aus PDFs extrahieren: Textebenen und OCR

Manche PDFs geben ihren Text in einer Sekunde heraus, andere enthalten nur Bilder der Seiten und brauchen OCR. Diese Anleitung erklärt, wie Text in einer PDF gespeichert ist, warum extrahierter Text unleserlich oder in falscher Reihenfolge herauskommen kann, wie OCR gescannte Seiten liest und was ihre Genauigkeit beeinflusst, und was Sie prüfen sollten, bevor Sie sich auf das Ergebnis verlassen.

Zwei Arten von PDF-Seiten

Eine PDF-Seite kann Text auf zwei Arten enthalten. Die meisten PDFs, die aus einer Textverarbeitung, einem Browser oder einem Grafikprogramm exportiert wurden, haben eine Textebene: Jedes Zeichen ist als Code einer Schrift gespeichert und an einer Stelle der Seite platziert. Eine gescannte oder fotografierte Seite ist etwas anderes. Sie ist ein einziges Bild der Seite, und für Software sind die Buchstaben darauf nur Pixel.

Art der SeiteWie sie entstanden istWas die Extraktion liefert
Text-PDFAus einer Anwendung als PDF exportiert oder gedrucktDie gespeicherten Zeichen, meist exakt
Gescannte PDFScanner, Handykamera oder FaxNichts, bis OCR das Bild liest
Durchsuchbarer ScanEin Scan, dem später eine OCR-Textebene hinzugefügt wurdeDas damalige OCR-Ergebnis samt Fehlern
In Pfade umgewandelter TextText in einem Grafikprogramm in Formen umgewandeltKeine Zeichen; nur OCR kann ihn lesen

Ein PDF-Viewer zeigt meist, welche Art Sie vor sich haben. Lässt sich ein einzelnes Wort markieren oder über die Suche finden, hat die Seite eine Textebene. Wird beim Ziehen die ganze Seite als ein Block markiert oder findet die Suche nichts, ist die Seite ein Bild. Eine Datei kann beides enthalten, etwa ein getippter Bericht mit eingescannten Anhängen.

So funktioniert die Extraktion der Textebene

Eine PDF speichert keine Absätze. Sie speichert Zeichenfolgen mit Schrift und Position, oft ein Wort oder ein paar Buchstaben auf einmal, in der Reihenfolge, die das erzeugende Programm gewählt hat. Ein Extraktionsprogramm liest diese Folgen und setzt aus ihren Positionen wieder Zeilen zusammen.

Das Tool PDF in Text von LeedyBox liest die Folgen mit PDF.js, der PDF-Engine von Firefox. Es beginnt eine neue Zeile, wenn sich die vertikale Position um mehr als 5 Punkt (etwa 1,8 mm) ändert, und verbindet die Folgen sonst mit einem Leerzeichen; jede Seite im Ergebnis beginnt mit einer Markierung wie --- Seite 1 ---. Die meisten einspaltigen Dokumente kommen gut lesbar heraus, mit einigen Nebenwirkungen:

  • Ein Wort, das in mehreren Folgen gespeichert ist, etwa wegen Sperrsatz, kann mit Leerzeichen darin herauskommen.
  • Spalten, Seitenleisten und Bildunterschriften erscheinen in der gespeicherten Reihenfolge, die von der Lesereihenfolge abweichen kann.
  • Hochgestellte Zeichen, Fußnotenzeichen und anderer höher oder tiefer gesetzter Text können eine eigene Zeile bilden.
  • Kopf- und Fußzeilen sowie Seitenzahlen gehören zum Text jeder Seite.

Warum extrahierter Text unleserlich sein kann

In einer PDF ist Text als Glyphencodes einer Schrift gespeichert, nicht als Unicode-Zeichen. Um die Codes wieder in Buchstaben zu verwandeln, braucht die Datei eine Zuordnung. Sauber erzeugte PDFs enthalten für jede Schrift eine ToUnicode-Tabelle, und Schriften mit einer Standardkodierung lassen sich auch ohne sie entschlüsseln. Probleme entstehen, wenn eine Schrift als Teilmenge mit eigener Nummerierung und ohne Zuordnung eingebettet ist: Die Codes bedeuten außerhalb der Datei nichts, und die Extraktion liefert falsche Buchstaben, Symbole oder leere Kästchen, obwohl die Seite richtig aussieht.

Chinesische, japanische und koreanische Schriften verwenden statt eigener Tabellen oft vordefinierte Zeichenzuordnungen (CMaps) wie Adobe-Japan1 oder Adobe-Korea1. Das LeedyBox-Tool lädt diese CMaps zusammen mit PDF.js und liest so viele ostasiatische Dokumente richtig, an denen einfachere Programme scheitern. Weitere häufige Ursachen sind Ligaturen wie fi, die als eine Glyphe gespeichert sind, Type-3-Schriften, deren Buchstaben als Formen gezeichnet sind und oft keine Zuordnung haben, und PDFs, deren Kodierung absichtlich verwürfelt wurde, um das Kopieren zu erschweren.

Hat eine Seite eine Textebene, verwendet das Tool diese, auch wenn der Text unleserlich ist, und führt für diese Seite keine OCR aus. Um eine solche Seite per OCR zu lesen, wandeln Sie sie mit PDF in JPG in ein Bild um und lesen das Bild mit Bild zu Text (OCR).

Wann das LeedyBox-Tool OCR verwendet

Das Tool entscheidet Seite für Seite. Hat die Textebene einer Seite weniger als 15 Zeichen, wird die Seite als Bild in doppelter Größe, etwa 144 Pixel pro Zoll, gezeichnet und von Tesseract.js in der unter „OCR-Sprache“ gewählten Sprache zusammen mit Englisch gelesen. In einem Dokument mit getippten und gescannten Seiten werden die getippten Seiten daher exakt gelesen, und nur die Scans laufen durch die OCR.

Eine gescannte Seite mit wenigen Zeichen aus einem Stempel oder einer Seitenzahl gilt weiterhin als leer und geht in die OCR. Ein Scan, der bereits eine Textebene mit 15 oder mehr Zeichen hat, dagegen nicht, sodass eine schlechte OCR-Ebene, die der Scanner hinzugefügt hat, unverändert ausgegeben wird. Die OCR-Engine und ihre Sprachdaten werden beim ersten OCR-Lauf von leedybox.com geladen, deshalb dauert die erste gescannte Seite länger. Ihre PDF wird im Browser gelesen und nicht hochgeladen.

Wie OCR aus Pixeln Text macht

OCR arbeitet in Stufen. Die Engine wandelt das Bild zunächst in Schwarzweiß um und sucht Textblöcke, Zeilen und Wörter – ein Schritt, der Seitensegmentierung heißt. Dann liest ein neuronales Netz, das auf eine Sprache oder Schrift trainiert ist, jede Zeile und wählt die wahrscheinlichste Zeichenfolge, unterstützt durch die Wortlisten der Sprache. Das Ergebnis ist eine Schätzung, keine Kopie: Ähnliche Formen wie 0 und O, 1, l und I oder rn und m können verwechselt werden, und Wörter, die in den Sprachdaten fehlen, werden häufiger falsch gelesen.

Die Spracheinstellung ist wichtiger als jede andere Option. Ein Modell, das auf lateinische Buchstaben trainiert ist, kann kein Thai oder Japanisch lesen, und Text in einer nicht ausgewählten Sprache kommt meist als falsche Zeichen heraus. Alle Optionen des LeedyBox-Tools außer „Nur Englisch“ kombinieren die gewählte Sprache mit Englisch, was bei gemischten Dokumenten hilft, etwa einem deutschen Vertrag mit englischen Produktnamen.

Was die Genauigkeit der OCR beeinflusst

FaktorWirkungWas hilft
AuflösungKleiner Schrift fehlen die Details, die Buchstaben unterscheidenMit 300 DPI oder mehr scannen, bei kleiner Schrift höher
Schräglage und WölbungSchiefe Zeilen und gewölbte Buchseiten stören die ZeilenerkennungFlach und gerade scannen, von direkt oben fotografieren
Kontrast und StörungenGraue Hintergründe, Flecken, durchscheinende Rückseiten und JPEG-Artefakte wirken wie StricheSaubere Scans mit dunkler Schrift auf weißem Grund
SchriftenZierschriften und sehr dünne oder sehr fette Schriften werden öfter falsch gelesenDas Ergebnis sorgfältig prüfen
HandschriftTesseract ist auf gedruckten Text trainiertSchlechte Ergebnisse erwarten; besser abtippen
Senkrechter TextSenkrecht gesetztes Japanisch oder Chinesisch wird oft falsch gelesenSorgfältig prüfen oder neu eintippen

Da das Tool Seiten mit etwa 144 Pixeln pro Zoll zeichnet, kann kleine Schrift wie Fußnoten oder das Kleingedruckte eines Vertrags selbst bei einem guten Scan schwer lesbar sein. Für solche Seiten erzeugt PDF in JPG Bilder in höherer Auflösung, und Bild zu Text (OCR) kann kleinen Text erneut in doppelter Größe lesen und vor der Erkennung den Kontrast erhöhen.

Tabellen, Spalten und Layout

Das Ergebnis ist reiner Text. Tabellen verlieren ihr Raster, mehrspaltige Seiten können Spalte für Spalte oder Zeile für Zeile quer über die Spalten herauskommen, und Textfelder und Bildunterschriften landen dort, wo die Datei oder die OCR-Engine sie in die Lesereihenfolge eingeordnet hat. Wörter zu erkennen und ein Layout wiederherzustellen sind zwei verschiedene Aufgaben, und das Tool löst nur die erste. Prüfen Sie bei Zahlentabellen jeden Wert am Original oder tippen Sie die Tabelle in einer Tabellenkalkulation neu; bei langen Dokumenten stellen Sie Überschriften und Absätze nach der Extraktion im Editor wieder her.

Das Ergebnis prüfen und bereinigen

  • Vergleichen Sie einige Zahlen, Namen und Daten mit dem Original; OCR-Fehler in Zahlen werden leicht übersehen.
  • Suchen Sie nach typischen Verwechslungen: 0 und O, 1, l und I, 5 und S, rn und m sowie fehlende Umlaute oder Akzente.
  • Fügen Sie am Zeilenende getrennte Wörter und innerhalb von Absätzen umbrochene Zeilen wieder zusammen.
  • Entfernen Sie Seitenmarkierungen, Kopfzeilen und Seitenzahlen, wenn Sie fortlaufenden Text brauchen.
  • Sichern Sie das Ergebnis mit „Text kopieren“ oder „Als .TXT speichern“; die gespeicherte Datei ist reiner UTF-8-Text.

Häufige Fragen

Warum kommt eine Seite leer heraus?

Die Seite hatte keine Textebene, und die OCR hat nichts Lesbares gefunden: Der Scan kann leer, sehr blass oder zu klein sein, oder der Text ist handschriftlich. Versuchen Sie einen schärferen Scan, oder wandeln Sie die Seite mit PDF in JPG um und nutzen Sie Bild zu Text mit seinen Optionen für Kontrast und Vergrößerung.

Kann das Tool passwortgeschützte PDFs lesen?

Keine PDF, die beim Öffnen ein Passwort verlangt; stattdessen zeigt das Tool eine Fehlermeldung. Öffnen Sie die Datei mit dem Passwort in einem PDF-Viewer und speichern Sie zuerst eine ungeschützte Kopie, sofern Sie dazu berechtigt sind.

Kann das Tool eine durchsuchbare PDF erstellen?

Nein. Das Ergebnis ist reiner Text, den Sie kopieren oder als .txt-Datei speichern können; die PDF selbst bleibt unverändert. Programme, die durchsuchbare PDFs erzeugen, legen über jede gescannte Seite eine unsichtbare OCR-Textebene.

Warum ist die OCR bei langen Dokumenten langsam?

Jede gescannte Seite wird als Bild gezeichnet und in Ihrem Browser erkannt, eine nach der anderen, nachdem die OCR-Engine und die Sprachdaten geladen wurden. Auf einem langsameren Gerät kann eine Seite einige Sekunden oder länger dauern. Seiten mit Textebene gehen viel schneller, weil sie keine Erkennung brauchen.