2 Library หลักสำหรับ Extract Text จาก PDF
1. PDFMiner (Powerful, Complex)
import sys
from io import StringIO
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.layout import LAParams
from pdfminer.converter import TextConverter
def pdfparser(data):
fp = open(data, 'rb')
resource_manager = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
device = TextConverter(resource_manager, retstr, codec='utf-8', laparams=laparams)
interpreter = PDFPageInterpreter(resource_manager, device)
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
print(retstr.getvalue())
pdfparser('filename.pdf')
2. PyPDF2 / pypdf (Simple, สำหรับ PDF มาตรฐาน)
import pypdf # หรือ PyPDF2
pdf = pypdf.PdfReader(open('filename.pdf', 'rb'))
for page in pdf.pages:
print(page.extract_text())
เปรียบเทียบ
| Feature | PDFMiner | PyPDF/pypdf |
|---|---|---|
| Layout Analysis | ดีมาก (Position, Font) | Basic |
| API Complexity | High | Low |
| Unicode Support | ดี | ดี (pypdf 3+) |
| Maintenance | Active (pdfminer.six) | Active (pypdf) |
แนะนำ: ใช้pypdf(v3+) สำหรับ Extract Text ธรรมดา,pdfplumberสำหรับ Table/Layout ซับซ้อน