pyPdf, extractText, Coding

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Kle
User
Beiträge: 8
Registriert: Freitag 19. August 2011, 08:14

Liebes Forum

Nach dem Lesen eine PDF-Datei mit pyPdf, page1 = input1.getPage(i).extractText(),
habe ich in page1 zwar den Text, die Umlaute sind aber falsch.
Beispielsweise wird das "ü" als "Dagger" ( = utf8 e280a0) ausgegeben.
Wie kann ich das hinbiegen?

TIA Kle
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Ich habs gerade ausprobiert, bei mir funktionierts(unter Python 2.7.3@Windows7 ein \xfc).
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Sirius3
User
Beiträge: 17753
Registriert: Sonntag 21. Oktober 2012, 17:20

Hallo Kle,
wie wurden die pdf-Dateien erzeugt?
Bei pdf ist das Encoding nicht unbedingt angegeben.
Funktioniert das Kopieren aus Acrobat?

Grüße
Sirius
Benutzeravatar
Kle
User
Beiträge: 8
Registriert: Freitag 19. August 2011, 08:14

Sirius3 hat geschrieben: wie wurden die pdf-Dateien erzeugt?
Bei pdf ist das Encoding nicht unbedingt angegeben.
Funktioniert das Kopieren aus Acrobat?
Die Dateien kommen aus den unterschiedlichsten Quellen, vom Encoding weiß ich nichts und einen Einfluß darauf habe ich auch nicht. Wenn ich sie mit dem Acrobat Reader lese, dann steht z.B. "Ansatz geplant für 2014", ebenso nach eine "Save as", aber nach dem "extractText()" heißt es " Ansatz geplant f†r 2014". Könnte es damit zu tun haben, daß ich PY.3.2 einsetze?

MfG Kle
BlackJack

@Kle: Was bekommst Du denn *genau* bei `extractText()`. Das was Du zeigst wird ja auch noch mal irgendwo interpretiert bevor es Dir am Bildschirm angezeigt wird. Also was für einen Datentyp hat das Ergebnis der Methode und stehen da für Werte drin? Wende darauf mal jeweils die `type()` und die `ascii()`-Funktion an und zeig was dabei heraus kommt.
Sirius3
User
Beiträge: 17753
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kle: schön dass Acrobat das richtig darstellen kann, aber was passiert, wenn Du versuchst, den Text als Text in einen anderen Editor zu kopieren? Das Aussehen eines Zeichens und wie es intern interpretiert wird, sind nämlich
zwei verschiedene Dinge.
Kannst Du ein Beispiel-PDF posten?
Benutzeravatar
Kle
User
Beiträge: 8
Registriert: Freitag 19. August 2011, 08:14

BlackJack hat geschrieben:@Kle: Was bekommst Du denn *genau* bei `extractText()`. Das was Du zeigst wird ja auch noch mal irgendwo interpretiert bevor es Dir am Bildschirm angezeigt wird. Also was für einen Datentyp hat das Ergebnis der Methode und stehen da für Werte drin? Wende darauf mal jeweils die `type()` und die `ascii()`-Funktion an und zeig was dabei heraus kommt.
ascii() habe ich nicht gefunden aber ord():

from pyPdf import PdfFileReader
file1 = open("H:\\Verfahren\\test02.pdf", "rb")
input1 = PdfFileReader(file1)
page1 = input1.getPage(1).extractText()
print (type(page1), page1[1065:1068], ord(page1[1065:1066]), \
ord(page1[1066:1067]), ord(page1[1067:1068]))

liefert: <class 'str'> f†r 102 8224 114

MfG Kle
BlackJack

@Kle: Da würde ich an Deiner Stelle mal schauen ob das Projekt aktiv entwickelt wird und einen Bugtracker hat.
Antworten