Warum ist die Extraktion von Text aus einem PDF-Dokument so mühsam?
Wenn ich ein Textverarbeitungsprogramm wie Microsoft Word verwende, ist es ganz selbstverständlich, dass ich einen Textabschnitt markieren, in die Zwischenablage kopieren und in ein Fenster eines anderen Programms einfügen kann. Nicht so bei PDF. Zumindest nicht bei jeder Art von Dokument. Warum ist das so?
In PDF, wie auch in anderen Dokumentenformaten, basiert der Text auf Schriftarten. Schriftarten enthalten neben anderen Informationen eine Sammlung von Zeichen, die zum Zusammensetzen des Textes verwendet werden können. PDF unterstützt verschiedene Schriftformate wie Type 1, CFF, TrueType und OpenType. Schriften können in die Dokumentendatei eingebettet sein oder über ihren Namen referenziert werden.
In einer TrueType-Schrift ist jedes Zeichen mit einem Unicode verknüpft. Ein Unicode ist eine standardisierte Zahl, die die Bedeutung eines Zeichens unabhängig von seinem Aussehen beschreibt, z. B. haben die Zeichen a, a und a denselben Unicode, aber ein unterschiedliches Aussehen. In einer Schriftart wird die Beschreibung des Aussehens eines Zeichens als Glyphe bezeichnet. In einem Microsoft Word-Dokument werden die Unicodes zur Speicherung des Textes verwendet. Im Gegensatz dazu wählt PDF das Zeichen einer eingebetteten Schriftart anhand seiner Glyphennummer aus. Die Glyphennummer ist schriftspezifisch und nur in Verbindung mit der jeweiligen Schrift gültig.
Diese Architektur hat einige Vorteile. Glyphen können ohne Rücksicht auf das Unicode-System eindeutig nummeriert werden, verschiedene Erscheinungsformen desselben Zeichens können in derselben Schriftart gebündelt werden, Glyphen können ohne Kenntnis ihres Unicodes verwendet werden usw. Es gibt jedoch auch einige Nachteile.
Um die Größe einer PDF-Datei zu verringern, entfernen einige Hersteller die Unicodes und ihre Verbindung mit den Glyphen. Dadurch wird die Textextraktion aus solchen Dokumenten behindert. Zumindest können diese Art von Dokumenten erkannt und entsprechend verarbeitet werden, könnte man meinen. Aber auch dies trifft nicht generell zu.
Es gibt Hersteller-Software auf dem Markt, die PDF-Dokumente mit korrekten Glyphenauswahl-Informationen, aber falschen oder irreführenden Unicode-Informationen erstellen. Solche Dokumente sehen so aus, als ob alle Unicodes der verwendeten Zeichen vorhanden wären, aber die Assoziation zwischen dem Aussehen und der Bedeutung ist falsch. In diesem Fall erscheint der extrahierte Text als Müll.
Insbesondere ein Standard wie PDF/A-2u, der verlangt, dass der gesamte Text auf Unicodes abgebildet werden kann, garantiert nicht, dass die Unicodes-Zuordnung korrekt ist, obwohl der Text sinnvoll erscheint, wenn er in einer Reader-Software angezeigt wird. Im Allgemeinen kann selbst eine Validierungssoftware eine solche Situation nicht erkennen.
Um herauszufinden, ob ein Dokument extrahierbaren Text enthält, kann man das Dokument auf automatisierte - und bis zu einem gewissen Grad zuverlässige - Weise durch eine OCR-Engine laufen lassen.