Warum ist der aus einem PDF kopierte Text immer so unordentlich?
Du findest in einem PDF eine nützliche Passage und möchtest sie in deine Notizen übernehmen, mit einem Kollegen teilen oder als Grundlage für eine Frage verwenden. Markieren, kopieren, einfügen – das sollte nur wenige Sekunden dauern.
Doch nach dem Einfügen ist ein Satz auf mehrere Zeilen verteilt, ein englisches Wort in der Mitte getrennt und eine Seitenzahl in den Absatz gerutscht. Du wolltest nur einen Abschnitt übernehmen und musst nun immer wieder die Rücktaste drücken.
Wenn die Reihenfolge stimmt und nur jede Zeile getrennt ist, füge zunächst einzelne Zeilenumbrüche innerhalb eines Absatzes zusammen und lasse die Leerzeilen zwischen Absätzen stehen. Überschriften, Listen und Bindestriche am Zeilenende müssen separat geprüft werden. Sind Sätze aus zwei Spalten vermischt, korrigiere zuerst die Reihenfolge beim Kopieren und lösche nicht einfach alle Zeilenumbrüche.
Eine Zeile auf der Seite ist nicht automatisch ein Absatz im Text
Auf einer PDF-Seite wird ein Satz am rechten Rand umgebrochen. Dieser sichtbare Umbruch kann aber nur durch Papier- oder Spaltenbreite entstehen; er bedeutet nicht unbedingt, dass der Autor einen neuen Absatz begonnen hat.
Beim Kopieren muss der Reader den Text von der Seite zu einem Textstrom zusammensetzen. Dabei kann er diese beiden Arten von Umbrüchen nicht immer unterscheiden. Die Textextraktions-Dokumentation von pdfminer.six beschreibt, wie Zeichen anhand ihrer Position und ihres Abstands zu Zeilen und Textblöcken gruppiert werden können. Inhalte, die auf der Seite verbunden aussehen, können beim Kopieren trotzdem getrennt werden.
An einigen einfachen Beispielen lässt sich zeigen, wie du damit umgehen kannst.
Sätze verbinden, Absätze behalten
Beginnen wir mit einem Fall, der sich relativ gut bereinigen lässt: Jeder Absatz wurde in zwei Zeilen geteilt, zwischen den Absätzen ist aber eine Leerzeile erhalten geblieben.
Zu bearbeitender Text:
We copied a paragraph
from the report into our notes.
The original page remains available
for checking names and numbers.Du kannst den Text in den iSomor Textbereiniger einsetzen und in drei Schritten bearbeiten:
- Text einfügen. Setze zuerst einen kurzen Ausschnitt in „Originalinhalt“ ein und lasse die Leerzeilen zwischen den Absätzen bestehen.
- Optionen auswählen und bereinigen. Aktiviere „Einzelne Zeilenumbrüche zusammenführen“ und „Leerzeichen normalisieren“. Lass „Am Zeilenende getrennte Wörter verbinden“ zunächst deaktiviert und klicke auf „Text bereinigen“.
- Prüfen und Ergebnis übernehmen. Vergleiche beide Seiten, stelle sicher, dass Absätze und Wörter nicht falsch verbunden wurden, und kopiere den Text oder lade die TXT-Datei herunter.
Ausgabe des Tools:
We copied a paragraph from the report into our notes.
The original page remains available for checking names and numbers.Der Umbruch innerhalb des Satzes ist verschwunden, die Trennung zwischen den beiden Absätzen bleibt erhalten. Auch die Leerzeichen zwischen den englischen Wörtern bleiben bestehen, sodass paragraph und from nicht zusammenkleben.
In diesem Beispiel steht ein einzelner Zeilenumbruch innerhalb eines Absatzes, eine Leerzeile markiert die Absatzgrenze. Wenn nach dem Kopieren auch zwischen den Absätzen nur ein Umbruch bleibt, vergleiche mit dem Original und füge die Leerzeile vor der Bereinigung wieder ein.
Nicht jeden Bindestrich am Zeilenende entfernen
In englischen Dokumenten kann ein Wort aus Layoutgründen am Zeilenende getrennt werden. Zum Beispiel:
The trans-
lation is ready for review.trans- und lation gehören hier zu demselben Wort. Wenn „Am Zeilenende getrennte Wörter verbinden“ aktiviert ist, erzeugt das Tool:
The translation is ready for review.Ein ähnliches Aussehen bedeutet aber nicht immer dieselbe Behandlung. Sieh dir ein Wort an, das ursprünglich cross-validation lautete:
We used cross-
validation to compare the models.Mit derselben Option lautet die tatsächliche Ausgabe:
We used crossvalidation to compare the models.Der Zeilenumbruch ist verschwunden, aber auch der bedeutungstragende Bindestrich wurde entfernt. Hier sollte cross-validation erhalten bleiben.
Lass das Verbinden von Worttrennungen daher zunächst ausgeschaltet. Verwende es erst, wenn du geprüft hast, dass ein Wort tatsächlich nur durch das Layout geteilt wurde. Enthält das Material zusammengesetzte Wörter oder Modellnummern, bereinige zuerst normale Zeilenumbrüche und prüfe die Bindestriche anschließend einzeln.
Überschriften und Listen brauchen etwas Abstand
Nicht alles, was in einer eigenen Zeile steht, sollte mit der nächsten Zeile verbunden werden.
Im folgenden Beispiel ist die erste Zeile eine Überschrift, danach folgen eine Erklärung und eine Liste:
Preparation
Keep the original PDF first.
- Check names
- Check dates
- Check amountsMit aktivierten Optionen „Einzelne Zeilenumbrüche zusammenführen“ und „Leerzeichen normalisieren“ gibt das Tool tatsächlich Folgendes aus:
PreparationKeep the original PDF first.
- Check names
- Check dates
- Check amountsDie Liste mit den Markierungen - bleibt erhalten, aber Überschrift und Text wurden verbunden. Sobald „Preparation“ nur noch einfacher Text ist, fehlen Schriftgröße und Fettdruck; ein einzelner Zeilenumbruch reicht dann kaum aus, um die Überschrift zu erkennen.
Füge bei solchen Inhalten vor der Bereinigung eine Leerzeile nach der Überschrift ein. Mit denselben Optionen entsteht dann:
Preparation
Keep the original PDF first.
- Check names
- Check dates
- Check amountsDie Leerzeile hält Überschrift und Text getrennt. Komplexe verschachtelte Listen, Tabellen oder Formeln solltest du separat behandeln und nicht zusammen mit normalen Absätzen in einem Durchgang verbinden.
Wenn die Reihenfolge schon falsch ist, nicht sofort die Zeilenumbrüche bereinigen
Wenn auf einen Satz aus der linken Spalte Text aus der rechten Spalte folgt oder eine Seitenzahl mitten in einem Satz steht, lässt sich die Lesereihenfolge nicht durch das Löschen von Zeilenumbrüchen reparieren. Gehe zunächst zum Kopieren zurück:
- Zwei Spalten sind vermischt: Markiere und kopiere jeweils eine Spalte oder einen kleinen Abschnitt und prüfe die Reihenfolge. Wenn der Reader die Spalten weiterhin mischt, probiere eine andere Extraktionsmethode.
- Kopfzeilen, Fußzeilen oder Seitenzahlen sind enthalten: Vergleiche mit der Seite und entferne nur die nachweislich eingeschobenen Teile. Lösche nicht pauschal jede einzelne Zahlenzeile; sie kann eine Abschnittsnummer oder eine Zahl aus dem Text sein.
- Eine Tabelle ist zu einer Textkette geworden: Prüfe Überschriften, Einheiten und die Zuordnung von Zeilen und Spalten, bevor du sie in eine einfache Textnotiz übernimmst. Weniger Leerzeichen bedeuten nicht, dass die Tabelle wiederhergestellt ist.
- Der kopierte Text ist unleserlich: Prüfe die Textebene oder die Schriftkodierung separat. Eine Formatbereinigung kann diese Zeichen nicht korrigieren.
- Ein Scan enthält keinen auswählbaren Text: Zuerst ist OCR nötig. Auch eine vorhandene OCR-Textebene kann Erkennungsfehler enthalten; Kopierbarkeit bedeutet nicht automatisch Textgenauigkeit. Die pypdf-Dokumentation unterscheidet zwischen PDF-Dateien mit Text, reinen Bildscans und PDFs mit OCR-Textebene. Der Text stammt jeweils aus unterschiedlichen Quellen.
Vor der weiteren Verwendung des Ergebnisses noch diese Stellen prüfen
Nachdem du einen kurzen Abschnitt bereinigt hast, sieh dir besonders die Stellen an, die sich leicht verändern:
- Beginnt und endet jeder Absatz noch richtig?
- Sind englische Wörter getrennt, und stehen bedeutungstragende Bindestriche noch an der richtigen Stelle?
- Sind Überschriften und Listen weiterhin getrennt?
- Sind Zahlen, Einheiten, Minuszeichen und Formelzeichen vollständig und richtig angeordnet?
Wenn der Abschnitt chinesische Satzzeichen enthält, lohnt sich auch ein Blick rund um diese Zeichen. In unserem Test blieb nach dem Zusammenführen eines Umbruchs nach einem Komma ein zusätzliches Leerzeichen stehen, das von Hand entfernt werden musste. Prüfe zuerst an diesem kurzen Abschnitt, ob die Methode passt, bevor du sie auf ähnliche Inhalte anwendest.
Wenn du den Abschnitt zitieren möchtest, bewahre Dokumenttitel, Seitenzahl oder Link auf und gleiche den Wortlaut mit der Quelle ab.
Bereinigen, damit du zu deiner eigentlichen Aufgabe zurückkehren kannst
Textbereinigung soll wiederholte Zeilenumbrüche und überflüssige Leerzeichen reduzieren – nicht alles in einen einzigen Absatz pressen. Wenn der Fließtext verbunden bleibt und Überschriften und Listen getrennt bleiben, lässt sich das Ergebnis besser weiterverwenden.
iSomor stellt Originalinhalt und Ergebnis nebeneinander, damit du die Veränderungen sehen kannst. Nach der Prüfung kannst du zu deinen Notizen, Auszügen oder Gesprächen zurückkehren und dich wieder auf die Passage konzentrieren, die du eigentlich verwenden wolltest.