Also versuche ich den Text aus einer PDF-Datei zu extrahieren, ich brauche seine Position, Breite, Höhe, Schriftart.
Ich habe viele versucht, aber die nützlichste und vollständigste Lösung scheint PDFMiner zu sein, und in in diesem Fall, genauer pdf2txt.py .
Ich habe das Dokument und die Beispiele verfolgt und versucht, den Text Learn More
aus meinem PDF mit diesem Befehl zu extrahieren:
Und die Ausgabe buttons.xml
sieht so aus:
Das erste Zeichen sollte ein L sein und 51 (cid:51)
scheint keinem der Zeichen zu entsprechen, die ich in meinem Satz habe, in Bezug auf ascii table und der utf-8 Tisch
Wie der Titel sagt, frage ich mich, was es ist und wie man diese (cid:51)...
benutzt?
Also habe ich festgestellt, dass das Programm schreiben (cid:% d), anstatt das echte Zeichen zu erhalten, weil er nicht erkennt, dass es eine Unicode-Zeichenfolge ist.
Es ruft zuerst diese Funktion auf, um das Zeichen zu schreiben:
%Vor% Aber das assert
scheitert und löst das Ereignis PDFUnicodeNotDefined
aus, das abgefangen wird und ruft:
Und so beende ich mit einer Datei, die all diese Dateien enthält (cid:% d).
Ich bin ziemlich neu bei Python und versuche, einen Weg zu finden, diese Zeichen zu erkennen, sollte es ein Nein sein? Hat jemand eine Idee?
Um zu verstehen, wie man die cid interpretiert, müssen Sie ein paar Dinge wissen:
Die Registrierungs-Bestell-Ergänzung (ROS) Information für die fragliche Schriftart. Es ist normalerweise etwas wie "Adobe-Japan1-5" und ist eine Informationseigenschaft, die in der Schriftart gespeichert ist. Der ROS bestimmt, wie die CIDs interpretiert werden sollen.
Bewaffnet mit den ROS-Informationen, wählen Sie eine kompatible CMap und dekodieren Sie diese. Sie finden CMap-Dateien für die Adobe-definierten ROSes unter Ссылка
Weitere Informationen zu CID und CMaps direkt von den Erfindern finden Sie unter Ссылка
Überprüfen Sie die CID-Schriftartcodes in äquivalente ASCII-Zeichen für weitere Informationen
Tags und Links python xml pdf-parsing