Inhalte aus PDF lesen und weiter verarbeiten

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
Maternus
User
Beiträge: 6
Registriert: Mittwoch 22. September 2021, 12:52

Hallo,

ein ungünstiger Zustand erlaubt es mir nur, Informationen aus einem PDF zu lesen.
Diese Pdf enthält Tabellenspalten und entsprechende Zeilen, die ich in einen .xlsx einlesen möchte.
In meinem Codebeispiel verwendet ich als Ziel zunächst eine txt-Datei.

from PyPDF2 import PdfFileReader

file_path = "C:/Users/andre/TEST.pdf"
pdf = PdfFileReader(file_path)
print(pdf)

with open("C:/Users/andre/TEST_TEXT.txt","w",encoding='utf-8') as f:
for page_num in range(pdf.numPages):
print (pdf.numPages)
pageObj = pdf.getPage(page_num)

try:
txt = str(pageObj.extractText())
print(txt)
except:
pass
else:
f.write('Page \n'.format(page_num))
f.write(" ".center(100, "-"))
f.write(txt)
f.close()

Bei einigen PDFs funktioniert es leider aber nicht bei diesen, den ich lesen will.
Es gibt keinen Fehler allerdings ist der Inhalt. Mir kommt es so vor, als würde PyPDF2 diese Format nicht kennen?

Bei diesem PDF muss ich auch das OCR aktivieren um die einzelnen "Zellen" markieren zu können.
Vielleicht forsche ich hier in die falsche Richtung?
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Da stochert man ohne die PDFs natürlich völlig im Dunkeln.
Ich tippe darauf, dass deine PDF, die nicht geht, nur eingebettete Grafiken enthält (zum Beispiel gescannte Seiten) und keinen Text.

Grundsätzlich sind PDFs ein ausgesprochen ungeeignetes Format, um Informationen daraus zu extrahieren
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Erster Schritt wäre, dieses nackte except ersatzlos zu löschen. Wenn Du Fehler sehen willst, solltest Du nicht Fehler ignorieren.
Antworten