Я пытаюсь прочитать определенное слово из файла PDF, я использовал PDFMiner для преобразования PDF в текст (строка за строкой) и использовал цикл for, чтобы найти слово.
Когда я печатаю «текст», я получаю желаемый контент PDF построчно.
Но я использовал тот же «текст», чтобы прочитать в цикле «For», чтобы найти нужное слово, мой цикл «For» не распознает «текст».
Кроме приведенного ниже кода, я такжепопытался создать файл Test.txt ('PDF_PlaceHolder.txt') и прочитать его, который также не распознается в цикле For *
file = open("PDF_PlaceHolder.txt", "w")
file.write(PDFtext)
fname ='PDF_PlaceHolder.txt'
fh = open(fname)
for line in fh:
line = line.rstrip()
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter#process_pdf
from pdfminer.pdfpage import PDFPage
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
# from cStringIO import StringIO
# from io import BytestIO
from io import StringIO
Tax_Co = list()
Tax_Au = list()
line = list()
def pdf_to_text(pdfname):
# PDFMiner boilerplate
rsrcmgr = PDFResourceManager()
sio = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, sio, codec=codec, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
# Extract text
fp = open(pdfname, 'rb')
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
fp.close()
# Get text from StringIO
text = sio.getvalue()
# Cleanup
device.close()
sio.close()
return text
# Local PDF File reading
pdfname ='Summary 5.pdf'
# Passing to function
PDFtext = pdf_to_text(pdfname)
fh = PDFtext
#Reading the line by line to find the content and next index word
for line in fh:
line = line.rstrip()
# if line.startswith('From' ):
if line.startswith('Tax Company Name:'):
Tax_Company = line.split()
print ("Tax Company Name:", Tax_Company[3])
if line.startswith('Tax Authority:'):
Tax_Aut = line.split()
print ("Tax Authority:", Tax_Aut[2])
Ожидаемый результат:
Tax Company : XY
Tax Authority : XZ
Теперь печатьнет ничего. (пробел)