Ефективно манипулирайте и извличайте информация от PDF документи с помощта на Python
Ето топ 6 Python пакета за работа с PDF файлове. Тези пакети предлагат цялостна поддръжка за различни PDF операции, включително извличане на текст и изображения, както и манипулиране на PDF файлове.
- PyPDF2
- PdfMiner
- Табула
- PDFQuery
- PyMyPDF
- Pytesseract
PyPDF2
pip install PyPDF2
PyPDF2 е най-популярната библиотека за анализиране на PDF файлове в Python.
Използваме обект PdfReader
, който ни позволява достъп до съдържанието на PDF файла.
Можем да извлечем метаданните на файла:
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
pip install pdfminer
pip install pdfminer.six
PDFMiner е друга широко използвана библиотека за анализиране на PDF файлове.
from pdfminer.high_level import extract_text from pdfminer.layout import LAParams text = extract_text(path, laparams=LAParams()) print(text)
Табула
pip install tabula-py
Tabula предоставя прост интерфейс за извличане натаблични данниот PDF файлове в Pandas DataFrames.
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
pip install pdfquery
PDFQuery е библиотека, изградена върху lxml и pdfminer.six, която ви позволява да извличате информация от PDF документи с помощта на XPath изрази.
from pdfquery import PDFQuery pdf = PDFQuery(path) pdf.load() for element in pdf.tree.iter(): print(element.text)
PyMuPDF
pip install pymupdf
PyMuPDF предоставя широк набор от функции за анализиране и манипулиране на PDF документи, включително извличане на текст и изображения.
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 е библиотека на Python, която служи като обвивка за Tesseract OCR (Optical Character Recognition) машина на Google. OCR технологията позволява извличането на текст от изображения или сканирани документи. Pytesseract предоставя лесен за използване интерфейс за използване на Tesseract OCR в Python.
Първо инсталирайте двигателя.
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)
Прочетете още
Източници
https://pypdf2.readthedocs.io/en/latest/index.html
https://pdfminersix.readthedocs.io/en/latest/tutorial/install.html
https://tabula-py.readthedocs.io/en/latest/
https://pypi.org/project/pdfquery/#quick-start
https://pymupdf.readthedocs.io/en/latest/index.html