Trích xuất thông tin từ tệp PDF qua Thư viện Python miễn phí
API Python miễn phí cho phép các nhà phát triển trích xuất thông tin từ tài liệu PDF và chuyển đổi PDF sang các định dạng khác và Thực hiện phân tích bố cục tự động.
PDFMiner là một thư viện Python mã nguồn mở rất dễ sử dụng để xử lý các tệp PDF mà không có bất kỳ phụ thuộc nào khác. PDFMine.six rẽ nhánh do cộng đồng duy trì của thư viện PDFMiner ban đầu. Thư viện đã cung cấp các tính năng rất mạnh để trích xuất thông tin từ tài liệu PDF. Nó cung cấp một tiện ích lệnh cho những người không phải là lập trình viên và một giao diện API cho những người lập trình. Trình chuyển đổi PDF mạnh mẽ cũng là một phần của thư viện giúp người dùng chuyển đổi tệp PDF sang các định dạng văn bản khác như HTML.
PDFMiner là một thư viện Python thuần túy có thể dễ dàng trích xuất tất cả các văn bản từ tệp PDF được hiển thị theo chương trình. Khả năng tuyệt vời là nó cũng trích xuất các vị trí tương ứng, tên & kích thước phông chữ và hướng viết (ngang hoặc dọc) cho từng đoạn văn bản. Nó hỗ trợ đặc điểm kỹ thuật PDF-1.7 và cung cấp hỗ trợ trích xuất tài liệu PDF được bảo vệ bằng mật khẩu. Thư viện đã bao gồm một số tính năng quan trọng khác, chẳng hạn như phân tích cú pháp, phân tích và chuyển đổi tài liệu PDF, trích xuất nội dung dưới dạng HTML hoặc hOCR, hỗ trợ tập lệnh viết dọc, hỗ trợ mã hóa RC4 và AES, trích xuất mục lục, trích xuất nội dung được gắn thẻ, bố cục tự động phân tích và như vậy.
Bắt đầu với PDFMiner
PDFMiner yêu cầu Python 3.6 trở lên. Bạn có thể cài đặt PDFMiner bằng pip. Vui lòng sử dụng lệnh sau để cài đặt nó.
Cài đặt PDFMiner qua pip
pip install pdfminer
Bạn cũng có thể tải xuống thư viện được chia sẻ đã biên dịch từ kho lưu trữ GitHub và cài đặt nó.
Trích xuất văn bản từ tệp PDF qua Python
Thư viện Pdfminer.six nguồn mở cung cấp cho các nhà phát triển phần mềm khả năng trích xuất văn bản từ tệp PDF chỉ bằng một vài dòng mã Python. Thư viện tập trung vào việc lấy và phân tích dữ liệu văn bản, sau đó trích xuất văn bản từ một trang trực tiếp từ mã nguồn của PDF. Thư viện cũng cho phép các nhà phát triển trích xuất hình ảnh (JPG, JBIG2, Bitmap) từ tệp PDF. Cũng có thể trích xuất Tên phông chữ hoặc kích thước của từng ký tự riêng lẻ. Các ví dụ sau đây cho biết cách trích xuất văn bản từ tệp PDF và in văn bản đó trên màn hình.
Mở & Thao tác Tài liệu PDF qua Python
from pdfminer.high_level import extract_text
# Extract text from a pdf.
text = extract_text('example.pdf')
# Extract iterable of LTPage objects.
pages = extract_pages('example.pdf')
print(text)
Chuyển đổi tệp PDF sang hOCR thông qua API Python
hOCR là một tiêu chuẩn mở về biểu diễn dữ liệu cho văn bản được định dạng thu được từ nhận dạng ký tự quang học (OCR). Các thư viện Pdfminer.six miễn phí cho phép các nhà phát triển phần mềm chuyển đổi các tệp PDF sang định dạng hOCR chỉ bằng một vài dòng mã Python. Thư viện rất dễ xử lý và có thể trích xuất thông tin văn bản rõ ràng từ những tệp PDF có thông tin đó và sử dụng thông tin đó để tạo biểu diễn hOCR cơ bản.
Chuyển đổi tệp PDF thành văn bản qua Python
Thư viện bao gồm một bộ tính năng phong phú và các khả năng cho phép bạn mở rộng ra ngoài quá trình xử lý PDF cơ bản. Thư viện Pdfminer.six mã nguồn mở cho phép các nhà phát triển Python chuyển đổi tài liệu PDF thành văn bản chỉ bằng một vài lệnh đơn giản. Trước tiên, bạn cần cung cấp đường dẫn đến tệp PDF cũng như tệp Văn bản. Nếu tài liệu được bảo vệ bằng mật khẩu, bạn cũng cần cung cấp mật khẩu của nó. Ví dụ mã sau đây có thể được sử dụng để đạt được mục tiêu, nó sẽ chỉ trả về chuỗi ở dạng PDF, với tên tệp của nó, bạn có thể dễ dàng lưu nó vào tệp.
Chuyển đổi tệp PDF sang định dạng văn bản thông qua API Python
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
def convert_pdf_to_txt(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
fp = open(path, 'rb')
interpreter = PDFPageInterpreter(rsrcmgr, device)
password = ""
maxpages = 0
caching = True
pagenos=set()
for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
interpreter.process_page(page)
text = retstr.getvalue()
fp.close()
device.close()
retstr.close()
return text