Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Python PDF Text auslesen

Inception_ - 28
Profi (offline)

Dabei seit 05.2009
520 Beiträge

Geschrieben am: 12.11.2019 um 22:11 Uhr
Zuletzt editiert am: 12.11.2019 um 22:20 Uhr

Hi zusammen,

heute habe ich den Abend damit verbracht, Python zu installieren und mit PyPDF2 Text einer PDF auszulesen. Mein eigener Ansatz mittels Python Buch hat nicht funktioniert, also habe ich jegliche Skripte probiert, die online zu finden waren. Aber ich erhalte immer daselbe Bild. Wenn ich den konvertierten Text durch pdfPage.extractText() mit print in der Konsole ausgeben möchte, werden nur Blanks gedruckt. Ich arbeite gerade unter Windows 7 und führe den Code mit

C:/.../pfad_zu_python/python.exe C:/.../pfad_zu_code/code.py

in der Eingabeaufforderung (cmd) aus.

'''
Created on Aug 10, 2018
@author: zhaosong
This example tell you how to extract text content from a pdf file.
'''

import PyPDF2
import textract

# This function will extract and return the pdf file text content.
def extractPdfText(filePath=''):

# Open the pdf file in read binary mode.
fileObject = open(filePath, 'rb')

# Create a pdf reader .
pdfFileReader = PyPDF2.PdfFileReader(fileObject)

# Get total pdf page number.
totalPageNumber = pdfFileReader.numPages

# Print pdf total page number.
#print('This pdf file contains totally ' + str(totalPageNumber) + ' pages.')

currentPageNumber = 0
text = ''

# Loop in all the pdf pages.
while(currentPageNumber < totalPageNumber ):

# Get the specified pdf page object.
pdfPage = pdfFileReader.getPage(currentPageNumber)

# Get pdf page text.
text = text + pdfPage.extractText()

# Process next page.
currentPageNumber += 1

if(text == ''):
# If can not extract text then use ocr lib to extract the scanned pdf file.
text = textract.process(filePath, method='tesseract', encoding='utf-8')

return text

pdfFilePath = "C:/Users/TestUser/Desktop/test.pdf"
pdfText = extractPdfText(pdfFilePath)
print(pdfText)

Science, 128√e980 .. :*

_BlackLight_ - 25
Halbprofi (offline)

Dabei seit 07.2015
373 Beiträge
Geschrieben am: 21.11.2019 um 17:50 Uhr

Ich geh mal davon aus, dass du geeignete Pfade (nicht den aus dem Beispiel) angegeben und eine korrekte Einrückung hast ;-)

Hast du dir mal die Variablenwerte an den verschiedenen Stellen ausgeben lassen, um herauszufinden, ob die Seitenzahl richtig ermittelt wird und ob es jetzt mit tesseract oder PyPDF2 arbeitet?

Wie komplex ist dein PDF?

"Sie haben kein Recht auf Ihre Meinung. Sie haben ein Recht auf Ihre fundierte Meinung." H. Ellison

_BlackLight_ - 25
Halbprofi (offline)

Dabei seit 07.2015
373 Beiträge
Geschrieben am: 21.11.2019 um 17:51 Uhr

Und noch ne Idee:
Tesseract hat UTF-8 als Parameter. Kann deine Ausgabe damit umgehen?
K A. Wie das bei Windows ist...

"Sie haben kein Recht auf Ihre Meinung. Sie haben ein Recht auf Ihre fundierte Meinung." H. Ellison

weylen
Experte (offline)

Dabei seit 10.2008
1968 Beiträge
Geschrieben am: 14.12.2019 um 19:38 Uhr

Ich hab Deinen Code interessehalber mal unter Linux ausgeführt und erhalte zumindest einen Output. Natürlich vollkommen unformatiert und nur teilweise richtig, aber es sind Worte zu erkennen.

Falls das Problem noch aktuell ist, könntest Du wie hier bereits vorgeschlagen mal schauen ob er die Seiten überhaupt richtig durch läuft. Ich kenne die verwendeten Pakete nicht so wirklich aber ich könnte mir vorstellen, dass er blank Output wirft, wenn er die PDF nicht findet oder so. Ich mag nicht unterstellen, dass du vergessen hast, die test.pdf dort zu platzieren, aber vllt geht mit dem Mount was schief.

Das sieht alles so aus als wäre das nur zu Demonstrationszwecken. Arbeiten mit PDF in Programm ist meistens ein ziemlicher Krampf. Was hast Du denn letztendlich vor? :-D

Dummheit schützt nicht vor Verantwortung.

  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2020 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -