본문 바로가기
data science/python

(python) PDF 내의 텍스트 추출하기

by 꼰대코더 2023. 12. 3.

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)