2
파이썬 3.5를 사용하고 있으며 pdf 파일에서 줄 단위로 텍스트를 읽고 싶습니다. pdfminer3k
을 사용하려고했지만 올바른 구문을 가져 오지 못했습니다. 올바르게 사용하는 방법?pdfminer3k를 사용하여 pdf 파일을 읽는 방법?
파이썬 3.5를 사용하고 있으며 pdf 파일에서 줄 단위로 텍스트를 읽고 싶습니다. pdfminer3k
을 사용하려고했지만 올바른 구문을 가져 오지 못했습니다. 올바르게 사용하는 방법?pdfminer3k를 사용하여 pdf 파일을 읽는 방법?
파이썬 3.4를 사용하고 있지만 파이썬 3.5와 같은 방식으로 작동합니다.
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine
parser = PDFParser(file_content)
doc = PDFDocument()
parser.set_document(doc)
doc.set_parser(parser)
doc.initialize('')
rsrcmgr = PDFResourceManager()
laparams = LAParams()
#I changed the following 2 parameters to get rid of white spaces inside words:
laparams.char_margin = 1.0
laparams.word_margin = 1.0
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
extracted_text = ''
# Process each page contained in the document.
for page in doc.get_pages():
interpreter.process_page(page)
layout = device.get_result()
for lt_obj in layout:
if isinstance(lt_obj, LTTextBox) or isinstance(lt_obj, LTTextLine):
extracted_text += string
with open('convertedFile.txt',"wb") as txt_file:
txt_file.write(extracted_text.encode("utf-8"))
내가 수정 한 리사의 코드를 다음과 같습니다 은 내가 사용하는 것입니다. 이제 작동합니다!
fp = open(path, 'rb')
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine
parser = PDFParser(fp)
doc = PDFDocument()
parser.set_document(doc)
doc.set_parser(parser)
doc.initialize('')
rsrcmgr = PDFResourceManager()
laparams = LAParams()
laparams.char_margin = 1.0
laparams.word_margin = 1.0
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
extracted_text = ''
for page in doc.get_pages():
interpreter.process_page(page)
layout = device.get_result()
for lt_obj in layout:
if isinstance(lt_obj, LTTextBox) or isinstance(lt_obj, LTTextLine):
extracted_text += lt_obj.get_text()
코드와 Lise 's의 차이점에 대한 설명을 추가 할 수 있습니까? – jhhoff02
'extracted_text + = string'이 'extracted_text + = lt_obj.get_text()'로 변경되었습니다. – Matphy