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
pyPdf, extractText, Coding
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?Sirius3 hat geschrieben: wie wurden die pdf-Dateien erzeugt?
Bei pdf ist das Encoding nicht unbedingt angegeben.
Funktioniert das Kopieren aus Acrobat?
MfG Kle
@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.
@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?
zwei verschiedene Dinge.
Kannst Du ein Beispiel-PDF posten?
ascii() habe ich nicht gefunden aber ord():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.
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
@Kle: Da würde ich an Deiner Stelle mal schauen ob das Projekt aktiv entwickelt wird und einen Bugtracker hat.