Inhalte aus PDF lesen und weiter verarbeiten
Verfasst: Sonntag 26. September 2021, 15:57
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?
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?