파이썬 pdf 파일 텍스트 추출하기
오늘은 python pdfquery, pdfreader 패키지로 pdf 파일을 읽어 텍스트를 추출하는 방법을 알아보도록 하겠습니다.
저는 식품안전나라에서 다운로드 받은 아래 ‘1-11_엽산.pdf’ 파일의 텍스트를 추출해보려고 합니다.
1. pdfquery로 pdf 텍스트 추출하기
from pdfquery import PDFQuery
pdf_file_path = './data/1-11_엽산.pdf'
pdf = PDFQuery(pdf_file_path)
pdf.load()
text_elements = pdf.pq("LTTextLineHorizontal")
text = [t.text for t in text_elements]
text = '\n'.join(text)
print(text)
위의 코드를 통해서 1-11_엽산.pdf 파일을 읽어올 수 있어요. 읽어 온 text를 출력해보면 아래와 같은 결과를 얻을 수 있습니다.
잘 읽어온 것 처럼 보이지만 사실 몇몇 텍스트들이 빠진 걸 알 수 있어요. ‘2) 규격‘, ‘3) 제품의 요건‘ 등 몇몇 부분이 아예 누락된 것을 볼 수 있습니다. 이를 해결하기 위해 pdfquery 대신 pdfreader를 사용하여 파일을 읽어보겠습니다.
2. pypdf로 pdf 파일 읽기
from pypdf import PdfReader
pdf_file_path = './data/1-11_엽산.pdf'
pdf_file = open(pdf_file_path, 'rb')
pdf_reader = PdfReader(pdf_file)
#페이지 수
page_num = len(pdf_reader.pages)
#text 추출
text = ''
for pn in range(page_num):
page = pdf_reader.pages[pn]
text += page.extract_text()
print(text)
아래 이미지는 위의 코드를 사용하여 읽어온 text 입니다.
누락없이 모든 텍스트들이 잘 읽어지는 것을 확인할 수 있어요. 감사합니다🙂