Was ist das (cid: 51) in der Ausgabe von pdf2txt?

9

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:

%Vor%

Und die Ausgabe buttons.xml sieht so aus:

%Vor%

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?

BEARBEITEN

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:

%Vor%

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?

    
Micka 13.05.2013, 13:50
quelle

1 Antwort

0

Um zu verstehen, wie man die cid interpretiert, müssen Sie ein paar Dinge wissen:

  1. 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.

  2. 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

    
Andre 13.03.2018 20:32
quelle

Tags und Links