반응형
Python에서 PDFMiner를 사용하여 PDF 파일에서 텍스트 추출?
Python 버전 2.7
Python과 함께 PDFMiner를 사용하여 PDF 파일에서 텍스트를 추출하는 방법에 대한 문서 또는 예제를 찾고 있습니다.
PDFMiner가 API를 업데이트하고 내가 모든 관련 예제에 오래된 코드가 포함되어있는 것입니다 (클래스와 메소드가 변경됨). PDF에서 더 쉽게 추출하는 작업을 수행하는 라이브러리는 이전 PDFMiner 구문을 사용하여 파일을 어떻게 해야할지 모르겠습니다.
그대로, 나는 그것을 알아낼 수 있는지 확인하기 위해 소스 코드를보고 있습니다.
다음은 현재 버전의 PDFMiner를 사용하여 PDF 파일에서 텍스트를 추출하는 작업 예입니다 (2016 년 9 월).
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO
def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos=set()
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue()
fp.close()
device.close()
retstr.close()
return text
PDFMiner의 구조가 최근 변경된 PDF 파일에서 텍스트를 추출하는 데 사용할 수 있습니다.
편집 : 2018 년 6 월 7 일 현재 작동합니다. Python 버전 3.x에서 확인 됨
편집 :이 솔루션은 2019 년 10 월 3 일에 Python 3.7에서 작동합니다. 저는 pdfminer.six
2018 년 11 월에 출시 된 Python 라이브러리를 사용했습니다 .
DuckPuncher의 훌륭한 답변, Python3의 경우 pdfminer2를 설치하고 다음을 수행하십시오.
import io
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = io.StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos = set()
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages,
password=password,
caching=caching,
check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue()
fp.close()
device.close()
retstr.close()
return text
반응형
'ProgramingTip' 카테고리의 다른 글
Dapper.Net에서 일대 다 쿼리를 어떻게 작성합니까? (0) | 2020.10.31 |
---|---|
HierarchyViewer가 Samsung Galaxy TAB 7.0에서 작동하지 않는 이유는 무엇입니까? (0) | 2020.10.31 |
어디에서 URL을 어떻게 정규화 할 수 있습니까? (0) | 2020.10.31 |
NSURL을 사용하여 파일 존재 테스트 (0) | 2020.10.31 |
Windows 용 그래픽 HTTP 클라이언트 (0) | 2020.10.31 |