Gender PDF Файли, Витягувати текст та зображення через безкоштовну бібліотеку Python

Free Python API дозволяє редагувати та рендерувати PDF Файлів; вилучити текст та зображення, редагувати PDF сторінок, об'єднати/спліт та конвертувати PDF з легкістю.

PyMuPDF — це легкий API Python з відкритим кодом, який додає прив’язки та абстракції Python до MuPDF. API невеликий за розміром, але дуже швидкий і підтримує низку популярних форматів документів, включаючи формати PDF, XPS, OpenXPS, CBZ, EPUB і FB2 (електронні книги), а також близько 10 популярних форматів зображень, які також можна відкрити, і обробляються як документи. PyMuPD дуже надійний і відомий своєю високою здатністю рендерингу. Оскільки бібліотека має дуже малу вагу, вона є чудовим вибором для платформ, де ресурси зазвичай обмежені, як-от смартфони.

API PyMuPDF підтримує численні базові та розширені функції для візуалізації та перетворення PDF-документів, наприклад конвертування PDF у PNG, доступ до метаданих і перегляд їх, робота з контурами, рендеринг сторінки у растрове або векторне (SVG) зображення, текст PDF Підтримка пошуку, вилучення тексту зі сторінки PDF, вилучення зображень із PDF, відображення зображення в графічних інтерфейсах користувача, зміна сторінки PDF, створення нових сторінок PDF, видалення непотрібних сторінок PDF, вбудовування даних тощо. PyMuPDF включає підтримку багатьох платформ, таких як Mac, Linux і Windows.

Previous Next

Початок роботи з PyMuPDF

PyMuPDF може бути встановлена за допомогою pip, наступні команди будуть встановлюватися з Python колесо, якщо він доступний для вашої платформи.

Встановлення PyMuPDF через pip

 python -m pip install --upgrade pip
python -m pip install --upgrade pymupdf
 

Клон PyMuPDF через git репозиторію

 git clone https://github.com/pymupdf/PyMuPDF.git 

Також можлива установка вручну; завантажте файли останнього випуску безпосередньо зі сховища GitHub.

Пошук тексту в PDF Файли через Python

PDF було одним із улюблених файлів світу для обміну документами через Інтернет, оскільки він зберігає всі текстові форматування та графіку всередині нього. Але не просто шукати текст у цих файлах у порівнянні з іншими документами. Русский EnglishРусскийУкраїнськаPolskiItalianoEspañol汉语Bahasa Indonesiaहिन्दीPortuguês日本語DeutschFrançaisภาษาไทยελληνικά اللغة العربية Ви можете дізнатися, де існує певна текстова рядок.

Пошук Де на PDF Page Text String Appears через Python

areas = page.search_for("mupdf") 

Видобування тексту та зображень PDF через Python API

Бібліотека PyMuPDF з відкритим вихідним кодом включає кілька важливих функцій для роботи з текстом і зображеннями PDF. Бібліотека надала різні функції для видобування тексту, а також зображень із документів PDF. За замовчуванням він дозволяє витягувати звичайний текст із розривами рядків. Без форматування, без деталей розташування тексту, без зображень. Крім того, він підтримує створення списку текстових блоків, створення списку слів, створення повної візуальної версії сторінки, включаючи будь-які зображення, і багато іншого.

Як витягти текст з PDF по Python API

from operator import itemgetter
from itertools import groupby
import fitz
doc = fitz.open( 'mydocument.pdf' )
pages = [ doc[ i ] for i in range( doc.pageCount ) ]
for page in pages:
  text_words = page.getTextWords()
  # The words should be ordered by y1 and x0
  sorted_words = SortedCollection( key = itemgetter( 3, 0 ) )
  for word in text_words:
    sorted_words.insert( word )
  # At this point you already have an ordered list. If you need to 
  # group the content by lines, use groupby with y1 as a key
  lines = groupby( sorted_words, key = itemgetter( 3 ) )

Приєднуйтесь і розбити PDF документів на Python

Об'єднання різних PDF файлів є дуже корисною функцією, яка дає користувачам можливість мати один PDF, а не мати десятки окремих PDF-х. Русский EnglishРусскийУкраїнськаPolskiItalianoEspañol汉语Bahasa Indonesiaहिन्दीPortuguês日本語DeutschFrançaisภาษาไทยελληνικά اللغة العربية Він також надає користувачам можливість розбити великі PDF документів на менші файли з лише парою рядків коду Python. Також можна вибрати деякі конкретні сторінки PDF документа і створити новий документ з нього.

Створює новий документ з перших і останніх 10 сторінок

doc2 = fitz.open()                 # new empty PDF
doc2.insert_pdf(doc1, to_page = 9)  # first 10 pages
doc2.insert_pdf(doc1, from_page = len(doc1) - 10) # last 10 pages
doc2.save("first-and-last-10.pdf")

Читайте та експортуйте метадані PDF у CSV через Python

Русский EnglishРусскийУкраїнськаPolskiItalianoEspañol汉语Bahasa Indonesiaहिन्दीPortuguês日本語DeutschFrançaisภาษาไทยελληνικά اللغة العربية Він підтримує різні типи метаданих, такі як дата створення, автор, назва, творець додаток, будь-який предмет, метод шифрування, формат файлів і так далі. Також можна експортувати метадані в формат CSV.

 

Експорт PDF Метадані до CSV через Python API

import csv
import fitz
import argparse
parser = argparse.ArgumentParser(description="Enter CSV delimiter [;], CSV filename and documment filename")
parser.add_argument('-d', help='CSV delimiter [;]', default = ';')
parser.add_argument('-x', help='delete XML info [n]', default = 'n')
parser.add_argument('-csv', help='CSV filename')
parser.add_argument('-pdf', help='PDF filename')
args = parser.parse_args()
delim = args.d               # requested CSV delimiter character
assert args.csv, "missing CSV filename"
assert args.pdf, "missing PDF filename"
print "delimiter", args.d
print "xml delete", args.x
print "csv file", args.csv
print "pdf file", args.pdf
print "----------------------------------------"
doc = fitz.open(args.pdf)
oldmeta = doc.metadata
print "old metadata:"
for k,v in oldmeta.items():
    print k, ":",v
with open(args.csv) as tocfile:
    tocreader = csv.reader(tocfile, delimiter = delim)
    for row in tocreader:
        assert len(row) == 2, "each row must contain 2 entries"
        oldmeta[row[0]] = row[1]
print "----------------------------------------"
print "\nnew metadata:"
for k,v in oldmeta.items():
    print k, ":",v
doc.set_metadata(oldmeta)
doc.saveIncr()
 Українська