파이썬은 다양한 외부 라이브러리를 가져와서 사용할 수 있는 점이 장점 중 하나입니다. PDF 파일 작업을 할 때에 사용할 수 있는 파이썬 패키지 6가지를 소개합니다.
※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.
- 원문: 6 Python Packages for Working with PDF Files
- URL: https://medium.com/@Evenword/6-python-packages-for-working-with-pdf-files-5854c155ac8f
PyPDF2
PyPDF2는 Python에서 PDF 파일을 구문 분석하는 데 가장 널리 사용되는 라이브러리입니다.
pip install PyPDF2
PDF 내용에 액세스할 수 있는 pdfreader 개체를 사용하며 파일의 메타데이터를 추출할 수 있습니다.
from PyPDF2 import PdfReader
reader = PdfReader(path)
meta = reader.metadata
print("Total Pages: ", len(reader.pages))
# All of the following could be None!
print("Author: ", meta.author)
print("Creator: ", meta.creator)
print("Producer: ", meta.producer)
print("Subject: ", meta.subject)
print("Title: ", meta.title)
모든 페이지에서 콘텐츠를 추출할 수 있습니다.
page = reader.pages[0]
print(page.extract_text())
PDFMiner
PDFMiner는 PDF 파일 구문 분석에 널리 사용되는 라이브러리입니다.
pip install pdfminer pip install pdfminer.six
from pdfminer.high_level import extract_text
from pdfminer.layout import LAParams
text = extract_text(path, laparams=LAParams())
print(text)
Tabula
Tabula는 PDF에서 Pandas DataFrames로 표 형식 데이터를 추출하는 간단한 인터페이스를 제공합니다.
pip install tabula-py
import tabula
tables = tabula.read_pdf(path, pages='all')
for i, table in enumerate(tables, start=1):
print(f"Table {i}:")
print(table)
print("-----------------------")
PDFQuery
PDFQuery는 XPath 표현식을 사용하여 PDF 문서에서 정보를 추출할 수 있는 lxml 및 pdfminer.six 위에 구축된 라이브러리입니다.
pip install pdfquery
from pdfquery import PDFQuery
pdf = PDFQuery(path)
pdf.load()
for element in pdf.tree.iter():
print(element.text)
PyMuPDF
PyMuPDF는 텍스트 및 이미지 추출을 포함하여 PDF 문서를 구문 분석하고 조작하기 위한 광범위한 기능을 제공합니다.
pip install pymupdf
import fitz
doc = fitz.open(path) # open a document
out = open("output.txt", "wb") # create a text output
for page in doc: # iterate the document pages
text = page.get_text().encode("utf8") # get plain text (is in UTF-8)
out.write(text) # write text of page
out.write(bytes((12,))) # write page delimiter (form feed 0x0C)
out.close()
print(text)
Pytesseract
Pytesseract는 Google의 Tesseract OCR(광학 문자 인식) 엔진의 래퍼 역할을 하는 Python 라이브러리입니다. OCR 기술을 사용하면 이미지나 스캔한 문서에서 텍스트를 추출할 수 있습니다. Pytesseract는 Python에서 Tesseract OCR을 활용하기 위한 사용하기 쉬운 인터페이스를 제공합니다.
먼저 엔진을 설치합니다.
brew install tesseract (MacOS)
sudo apt install tesseract-ocr (Ubuntu)
윈도우
패키지를 설치합니다.
pip install pytesseract pip install pdf2image
Pytesseract는 이미지에서 작동하므로 먼저 pdf 파일을 pdf2image패키지를 통해 이미지로 변환해야 합니다.
from pdf2image import convert_from_path
images = convert_from_path(path)
for i, image in enumerate(images):
image.save(f'page_{i + 1}.jpg', 'JPEG')
그런 다음 패키지로 이러한 이미지를 열고 패키지를 PIL사용하여 pytesseract패키지에서 텍스트를 추출합니다.
import pytesseract
from PIL import Image
image = Image.open("page_1.jpg")
text = pytesseract.image_to_string(image)
print(text)
'Python' 카테고리의 다른 글
Python으로 주가 추세 예측하기 (4) | 2024.01.01 |
---|---|
파이썬 람다 함수: 구문 및 애플리케이션 (2) | 2023.12.31 |
파이썬을 처음부터 배우는 방법: 전문가 가이드 (2) | 2023.12.29 |
Python 함수 작성의 15가지 레벨 (36) | 2023.12.28 |
매우 유용한 한 줄짜리 Python 코드 20개 (0) | 2023.12.26 |