text = sio.getvalue ();Вернуть текст, не распознаваемый в цикле For - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь прочитать определенное слово из файла 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

Теперь печатьнет ничего. (пробел)

...