Warum ist die Extraktion von Text aus einem PDF-Dokument so mühsam
Wenn ich ein Textbearbeitungstool wie Microsoft Word verwende, ist es ganz natürlich, dass ich einen Abschnitt des Textes auswählen, in die Zwischenablage kopieren und in ein Fenster eines anderen Tools einfügen kann. So ist es nicht bei PDF. Zumindest nicht mit irgendeiner Art von Dokument. Warum ist das so?
In PDF, wie auch in anderen Dokumentformaten, basiert der Text auf Schriften. Schriften enthalten neben anderen Informationen eine Sammlung von Zeichen, die verwendet werden können, um den Text zusammenzustellen. PDF unterstützt verschiedene Schriftformate wie Type 1, CFF, TrueType und OpenType. Schriften können in der Dokumentdatei eingebettet oder namentlich referenziert werden.
In einer TrueType-Schrift ist jedes Zeichen mit einem Unicode verbunden. Ein Unicode ist eine standardisierte Nummer, die die Bedeutung eines Zeichens unabhängig von seinem Aussehen beschreibt, z.B. die Zeichen a, Consider providing a context-specific term or phrase instead of just 'a', which may refer to an article or stand-alone abbreviation. und Consider using a different term based on the specific context, rather than simply maintaining 'a' as is. haben den gleichen Unicode, aber ein anderes Aussehen. In einer Schrift wird die Beschreibung des Aussehens eines Zeichens als Glyph bezeichnet. In einem Microsoft Word-Dokument werden die Unicodes verwendet, um den Text zu speichern. PDF hingegen wählt das Zeichen einer eingebetteten Schrift anhand seiner Glyphe-Nummer aus. Die Glyphe-Nummer ist lokal zur Schrift und nur in Verbindung mit der bestimmten Schrift gültig.
Diese Architektur hat einige Vorteile. Glyphen können eindeutig nummeriert werden, ohne das Unicode-System zu berücksichtigen, unterschiedliche Erscheinungen des gleichen Zeichens können in der gleichen Schrift gebündelt werden, Glyphen können verwendet werden, ohne dass man ihr Unicode kennt usw. Es gibt jedoch auch einige Nachteile.
Um die Größe einer PDF-Datei zu reduzieren, entfernen einige Produzenten die Unicodes und ihre Zuordnung zu den Glyphen. Dadurch wird die Textextraktion aus solchen Dokumenten behindert. Man könnte denken, dass zumindest diese Art von Dokumenten erkannt und entsprechend verarbeitet werden kann. Aber selbst das ist im Allgemeinen nicht wahr.
Es gibt Produzenten-Software auf dem Markt, die PDF-Dokumente mit korrekten Glyphenauswahlinformationen, aber falschen oder irreführenden Unicode-Informationen erstellen. Solche Dokumente sehen so aus, als wären alle Unicodes der verwendeten Zeichen vorhanden, aber die Zuordnung 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 aller Text auf Unicodes abgebildet werden kann, garantiert nicht, dass die Unicode-Zuordnung korrekt ist, auch wenn der Text bedeutungsvoll erscheint, wenn er in einer Reader-Software angezeigt wird. Im Allgemeinen kann nicht einmal Validator-Software eine solche Situation erkennen.
Um herauszufinden, ob ein Dokument extrahierbaren Text enthält, auf automatisierte – und bis zu einem gewissen Grad zuverlässige – Weise, muss das Dokument durch eine OCR-Engine laufen.