Warum aus einem PDF kopierter Text unleserlich ankommt
Warum fügt Text, den ich aus einem PDF kopiere, als Unsinn ein?
Speicher deine Lieblings-Tools
Leg ein kostenloses iBuildPDF-Konto an, um deine Lieblings-Tools zu behalten und jederzeit schnell wiederzufinden.
Kostenloses Konto. Die PDF-Tools selbst brauchen nie eins.
Kurze Antwort
Weil das, was ein PDF zeigt, und das, was es dir übergeben kann, zwei getrennte Tabellen sind. Die Seite zeichnet nummerierte Codes durch eine Schrift, und das lässt sie richtig aussehen; das Kopieren braucht eine zweite Tabelle, die sagt, für welches Zeichen jeder Code steht, und diese Tabelle ist optional. Fehlt sie oder ist sie falsch, ist die Seite makellos und die Zwischenablage Kauderwelsch, und kein noch so häufiges Wiederholen ändert daran etwas.
Ein PDF zeichnet Glyphen, keine Zeichen
Der Inhaltsstrom einer Seite enthält nicht deinen Text. Er enthält Zahlen.
Zwei Tabellen, und nur eine ist Pflicht
- Die Seite speichert Codes, keine Buchstaben. Für sich bedeuten diese Zahlen nichts.
- Die Schrift macht aus jedem Code einen Umriss. Das ist die Tabelle, die ein PDF haben muss, und die, die die Seite richtig aussehen lässt.
- Das Kopieren braucht die andere Tabelle — Code zu Unicode-Zeichen — und eine Datei kann ohne sie geschrieben sein. Dann ist nichts da zum Übergeben.
- So können die Seite makellos und die Zwischenablage Unsinn sein, gleichzeitig. Nichts ist kaputt; eine Tabelle wurde nie geschrieben.
Jede Zahl ist ein Code. Die Schriftressource an der Seite bildet diesen Code auf einen Umriss ab — eine Form zum Zeichnen. Das ist die einzige Tabelle, die ein PDF haben muss, weil es die einzige ist, die man braucht, um Markierungen auf eine Seite zu setzen, und deshalb sieht das Dokument perfekt aus.
Das Kopieren braucht die Tabelle in die andere Richtung: Dieser Code bedeutet das Zeichen U+0041, großes A. ISO 32000-1 sieht genau das vor, als ToUnicode-CMap an der Schrift. Sie ist optional. Ein Erzeuger, dem nur daran lag, dass das Dokument richtig druckt, hatte keinen Grund, eine zu schreiben, und nichts in der Datei beklagt ihr Fehlen.
Subsetting macht das Versagen schlimmer. Wenn ein Erzeuger nur die Glyphen einbettet, die ein Dokument tatsächlich verwendet, darf er sie nummerieren, wie er will — gewöhnlich 1, 2, 3 in der Reihenfolge, in der die Zeichen zuerst vorkamen. Ohne eine ToUnicode-Tabelle bedeuten diese Zahlen überhaupt nichts; mit einer bedeuten sie, was sie sagt. Warum ein PDF auf einem anderen Rechner anders aussieht behandelt Subsetting und die übrigen Überraschungen, die es verursacht.
Die Folge, die man sich merken sollte: Das ist eine Eigenschaft der Datei, nicht deines Rechners. Betrachter, Betriebssystem, Schrifteinstellungen oder Einfügeziel zu wechseln hilft nicht, denn sie alle schlagen in derselben fehlenden Tabelle nach. Es ist auch der Grund, warum das Suchen im Dokument nichts findet — der Betrachter vergleicht, was du getippt hast, mit derselben kaputten Tabelle.
Welches davon ist deines
Das Symptom benennt die Ursache ziemlich verlässlich, und die Ursache entscheidet, ob sich etwas machen lässt.
| Was du bekommst | Was es ist | Lässt es sich beheben |
|---|---|---|
| Nichts lässt sich markieren; der Cursor greift an keinem Wort | Es gibt keinen Text. Die Seite ist ein Bild. | Ja, durch Erkennen — OCR |
| Jedes Zeichen falsch, und zwar gleichmäßig — ein verschobenes Alphabet oder Reihen von Kästchen | Fehlende oder falsche ToUnicode-Tabelle | Nicht an Ort und Stelle. OCR oder abtippen |
Meist richtig, aber fi, fl und ffi verschwinden oder werden zu einem seltsamen Zeichen | Ligaturglyphen ohne Zeichenzuordnung | Ja — hinterher suchen und ersetzen |
Richtige Zeichen, keine Leerzeichen: thequickbrown | Die Datei enthält überhaupt keine Leerzeichen | Oft, mit einem anderen Extraktor |
Richtige Zeichen, Leerzeichen mitten in Wörtern: t h e | Weite Sperrung im Layout, als Lücken gelesen | Oft, mit einem anderen Extraktor |
| Richtige Wörter, falsche Reihenfolge — zwei Spalten ineinander, eine Fußnote mitten im Satz | Die Extraktion folgt der Reihenfolge, in der die Markierungen geschrieben wurden | Manchmal. Hängt von der Datei ab |
| Abgelöste Akzente, oder Buchstaben, die in zwei Zeichen zerfallen | Kombinierende Zeichen getrennt von ihren Grundbuchstaben gespeichert | Ja — Unicode-Normalisierung |
Die erste Zeile ist die, die man vor allem anderen ausschließen sollte, denn sie ist häufig und sie ist nicht das Problem dieses Artikels. Wenn sich nichts hervorhebt, während du über die Seite ziehst, hast du einen Scan, und da ist kein Text, der verstümmelt sein könnte.
Dieselbe Seite, mit und ohne Text
- Ein digitales PDF. Am Bildschirm nicht vom rechten zu unterscheiden.
- Darunter: Zeichencodes, jeweils mit Schrift und Position. Durchsuchbar, markierbar, umwandelbar.
- Ein gescanntes PDF. Dieselbe Seite, dasselbe Aussehen.
- Darunter: ein Raster aus hellen und dunklen Werten. Keine Buchstaben, keine Wörter, nichts zu suchen.
Ist dieses PDF gescannt oder ist es Text? behandelt, wie du die beiden in ein paar Sekunden auseinanderhältst.
Leerzeichen und Reihenfolge sind ein anderes Problem
Diese beiden erzeugen lesbar wirkendes Trümmerwerk statt Unsinn, und sie haben eine andere Ursache als die fehlende Tabelle.
Vielleicht gibt es in der Datei keine Leerzeichen
Nichts verlangt, dass ein PDF Leerzeichen enthält. Eine Textzeile wird typischerweise als Folge von Zeichenketten mit numerischen Versätzen dazwischen gezeichnet, und der Versatz ist das, was die Lücke zwischen zwei Wörtern macht. Ob diese Lücke ein Leerzeichen ist, ist eine Einschätzung, die ein Extraktor aus der Breite trifft: zu großzügig, und Wörter kleben zusammen; zu eifrig, und Wörter zerfallen in zwei. Das ist eine Heuristik, und deshalb sind sich zwei Tools bei derselben Datei uneins, ohne dass eines unrecht hätte.
Die Reihenfolge ist die, in der gezeichnet wurde
Warum zwei Spalten ineinander herauskommen
- Zwei Spalten, korrekt gezeichnet. Du siehst Spalten wegen der Lage der Markierungen, nicht weil die Datei es sagt.
- Die Reihenfolge, in der die Markierungen tatsächlich geschrieben wurden. Eine Layout-Engine wechselt oft zwischen Rahmen, und nichts hält fest, dass das Spalten waren.
- Ein Extraktor folgt dieser Reihenfolge, die Spalten kommen also zeilenweise ineinander heraus. Ein getaggtes PDF gibt die echte Lesereihenfolge an; ein ungetaggtes hat nichts zum Nachschlagen.
Der Inhaltsstrom steht in der Reihenfolge, in der die erzeugende Anwendung die Markierungen ausgegeben hat. Eine Layout-Engine, die Textrahmen abarbeitet, wechselt womöglich zwischen zwei Spalten hin und her; eine Vorlage setzt die Fußzeile vielleicht vor den Fließtext; eine Tabelle wird vielleicht Zelle für Zelle spaltenweise gezeichnet statt zeilenweise. Nichts in einem gewöhnlichen PDF hält fest, dass diese Markierungen eine Spalte, eine Fußnote oder eine Tabelle waren — die Spalten entstehen in deinem Lesen der Seite, nicht in der Datei.
Extraktoren gleichen das aus, indem sie die Markierungen nach Position sortieren, was bei einfachen zweispaltigen Seiten gut und bei komplizierten Layouts schlecht funktioniert. Ein getaggtes PDF ist die Ausnahme: Es trägt einen Strukturbaum, der die tatsächliche Lesereihenfolge angibt, und ein Extraktor, der sich daran hält, bekommt die richtige Antwort, ohne zu raten. Das ist einer der echten praktischen Vorteile des Taggens, ganz unabhängig von der Barrierefreiheitspflicht, für die es meist existiert — siehe was ein PDF barrierefrei macht.
Was wirklich hilft, der Reihe nach
- Probier vor allem anderen einen anderen Extraktor. PDF in Text läuft in deinem Browser auf PDF.js und beachtet
ToUnicode-Tabellen, wo es sie gibt. Kommt korrekter Text zurück, war nie die Datei das Problem, sondern das Kopierverhalten deines Betrachters — eine Erkenntnis von zwei Minuten, die vor einer von zwei Stunden lohnt. - Ist die Tabelle kaputt, hilft kein Tool, das die Textebene liest. Jeder Extraktor liest dieselbe Tabelle. Umwandeln nach Word, in eine Tabellenkalkulation oder in reinen Text schlägt alles dort nach, sie liefern also denselben Unsinn in unterschiedlicher Verpackung. Das ist der Punkt, an dem man aufhören sollte, Tools zu probieren.
- Ignorier die Textebene und lies die Seite als Bild. Das ist OCR: die Seite rendern, die Formen erkennen, eine frische Textebene schreiben. Es ist der einzige verlässliche Ausweg aus einer kaputten Tabelle, und es hat zwei Kosten — die Erkennung macht ihre eigenen Fehler, und das Tool läuft auf einem Server, das Dokument wird also hochgeladen. Bei einer vertraulichen Datei ist das eine Entscheidung und kein Klick.
- Geht es um Abstände oder Reihenfolge, extrahiere und räum auf. Ein Durchgang mit Suchen und Ersetzen über den extrahierten Text behebt Ligaturen und zusammengeklebte Wörter meist schneller als jedes Tool. Für ein Dokument, an dem du weiterarbeiten musst, gibt dir PDF in Word etwas Bearbeitbares zum Reparieren — ebenfalls serverseitig, und was ein Konverter erhalten kann und was nicht lohnt vorher gelesen zu werden.
- Erzeugst du die Datei selbst, bring es an der Quelle in Ordnung. Exportiere, statt in PDF zu drucken, bette die Schriften ein und tagge das Dokument. Eine Datei, die aus einer aktuellen Textverarbeitung exportiert wurde, lässt sich fast immer korrekt kopieren, und die, bei denen es nicht klappt, sind meist die, die unterwegs durch einen Druckertreiber gegangen sind.
Und das Unglamouröse: Bei ein, zwei Seiten ist Abtippen oft schneller als alles Obige. Das gehört ausgesprochen, denn Leute verbringen eine Stunde mit einer Fünfminutenaufgabe, aus dem Gefühl heraus, der Computer müsste das doch können.
Was kein Tool kann
- Es kann keine Tabelle rekonstruieren, die nie geschrieben wurde. Die Information ist nicht versteckt oder verschlüsselt, sie ist nicht da. Was behauptet, eine kaputte
ToUnicode-Tabelle zu reparieren, erschließt Zeichen aus Glyphenformen, und das ist optische Zeichenerkennung mit einem anderen Etikett. - OCR gibt dir eine neue beste Vermutung, nicht das Original. Ihre Fehler häufen sich genau dort, wo du sie dir am wenigsten leisten kannst — Ziffern, Aktenzeichen, Nachnamen, alles, was du nicht durch sinnvolles Lesen prüfen kannst. Lies alles gegen, wonach du handeln willst.
- Korrekte Extraktion ist immer noch nicht das Dokument. Tabellen kommen als Zeilen zurück, Fußnoten kommen mittendrin, Bildunterschriften kommen losgelöst von ihren Abbildungen. Jedes Zeichen richtig zu bekommen sagt nichts über die Struktur, und keine Genauigkeit auf Zeichenebene wird das je tun.
- Rechts-nach-links- und komplexe Schriften haben ein zweites Versagen darüber. Manche Erzeuger schreiben Arabisch oder Hebräisch in visueller Reihenfolge und verwenden Präsentationsformen statt der zugrunde liegenden Buchstaben. Eine korrekte Zeichentabelle liefert dann Text, der technisch richtig ist und rückwärts liest, und ihn wieder in die logische Reihenfolge zu bringen ist eine eigene Aufgabe.
Die nützliche Gewohnheit ist, vor der Festlegung zu testen: eine Seite nehmen, sie extrahieren und lesen, was herauskommt. Zwei Minuten am Anfang entscheiden, ob dieses Dokument ein Kopieren-und-Einfügen-Fall oder ein Abtippfall ist, und das ist hier die einzige Entscheidung, auf die es wirklich ankommt.
Tools, um die es in diesem Artikel geht
Quellen
Primärdokumentation zu den Aussagen oben.