PDF내의 텍스트를 추출하는 Python 용 pdfminer.six 를 소개한다.
인스톨 (python 3.8 이상)
pip install pdfminer.six
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
import re
# PDF 화일 오픈
pdfname = "./sample.pdf"
fp = open(pdfname, 'rb')
# 리소스 매니저 인스턴스 생성
rsrcmgr = PDFResourceManager()
# 출력용 StringIO 인스턴스 생성
outfp = StringIO()
# 파라미터 인스턴스 생성
laparams = LAParams()
# 혹시 세로쓰기 형식의 PDF라면
# laparams.detect_vertical = True
device = TextConverter(rsrcmgr, outfp, codec='utf-8', laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
# 전체 페이지 maxpages=0, 만약 5페이지까지라면 maxpages=5
for page in PDFPage.get_pages(fp, pagenos=None, maxpages=0, password=None,caching=True, check_extractable=True):
interpreter.process_page(page)
# 전체 텍스트를 취득
ret = outfp.getvalue()
fp.close()
device.close()
outfp.close()
# 문자열중에 개행(\r\n) tab(\t) 또는 스페이스를 없앰
ret = re.sub(r"\s| ",'',ret)
'data science > python' 카테고리의 다른 글
numpy 조건에 맞는 값들만 뽑아내기 (0) | 2024.01.07 |
---|---|
list ( [ , ], [ , ] ... ) 최대, 최소값 구하기 (0) | 2024.01.07 |
2중 in 을 사용하여 리스트 만들기 (0) | 2024.01.06 |
(python) logging (1) | 2023.12.20 |
(python) text 를 길이 단위로 분리 (0) | 2023.12.06 |