คุณสามารถใช้แพ็คเกจ PDFMiner เพื่อแปลง PDF เป็นข้อความได้
ตัวอย่าง
คุณสามารถใช้ด้วยวิธีต่อไปนี้:
import sys
from cStringIO import StringIO
from pdfminer.pdfpage importPDFPage
from pdfminer.pdfinterp importPDFResourceManager, PDFPageInterpreter
from pdfminer.layout importLAParams
from pdfminer.converter importXMLConverter, HTMLConverter, TextConverter
def pdfparser(data):
fp = file(data, 'rb')
resource_manager = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(resource_manager,retstr, codec=codec, laparams=laparams)
interpreter =PDFPageInterpreter(resource_manager, device)
# Process each page contained in thedocument.
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
data = retstr.getvalue()
print data
pdfparser('filename.pdf') ใช้ไฟล์ pdf และแยกข้อความจากหน้าทีละหน้าโดยใช้ฟังก์ชัน process_page จากคลาส PDFPageInterpreter
มีทางเลือกอื่นสำหรับ PDFMiner ที่มี API ที่ง่ายกว่ามากในการแยกข้อความ pyPDF ทำงานได้ดี (สมมติว่าคุณกำลังทำงานกับ PDF ที่มีรูปแบบถูกต้อง) หากต้องการข้อความ (เว้นวรรค) ให้ทำดังนี้:
import pyPdf
pdf = pyPdf.PdfFileReader(open('filename.pdf',"rb"))
for page in pdf.pages:
print page.extractText()