data science/python
(python) PDF 내의 텍스트 추출하기
꼰대코더
2023. 12. 3. 02:35
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)