1. Продукты
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Python

Aspose.PDF FOSS для Python

Открытая библиотека Python для создания, чтения, редактирования, рендеринга и валидации PDF-документов — лицензирована по лицензии MIT без расходов на выполнение.

Aspose.PDF FOSS — Open Source Python PDF-библиотека

Aspose.PDF FOSS for Python — это библиотека с открытым исходным кодом для создания, чтения, редактирования, рендеринга и проверки PDF-документов. Создана для Python 3.11 и новее, поставляется с информацией о типах и интегрируется в любой проект Python (см. раздел установки ниже). Проект в настоящее время находится в альфа-версии, поэтому API и покрытие функций продолжают развиваться до первого стабильного релиза.

Класс Document является центральной точкой входа, предоставляя pages, form, outlines, и tagged_content для структурного редактирования, а также операции encrypt, decrypt, merge, optimize и flatten. Текст добавляется с помощью Page.add_text() и извлекается или ищется с помощью PdfExtractor и TextFragmentAbsorber, включая замену по фразам и регулярных выражений. Страницы рендерятся в растровые изображения PNG или TIFF через Page.render() и Page.save_as_image(). Интерактивные поля AcroForm создаются и заполняются через Form и Field, а документы могут быть проверены или конвертированы для соответствия PDF/A и PDF/UA с помощью Document.validate_pdfa(), Document.convert_to_pdfa(), и Document.auto_tag().

Aspose.PDF FOSS for Python выпущен под лицензией MIT без каких-либо плат за время выполнения или ограничений по использованию. Основной пакет зависит только от cryptography и asn1crypto, с дополнительными опциями для поддержки изображений на основе Pillow, декодирования WOFF2 на основе Brotli и сложной типографики на основе HarfBuzz. Для корпоративных функций и поддержки см. Aspose.PDF for Python — Enterprise Product

Операции с документом и страницами

  • Создавайте, загружайте, сохраняйте и объединяйте PDF-файлы через Document
  • Управляйте страницами с помощью изменяемой PageCollection, доступной как document.pages
  • Добавляйте позиционированный текст Standard-14 или встроенный Unicode-текст с Page.add_text()
  • Размещайте необработанные, JPEG или PNG изображения на страницах с Page.add_image()
  • Рисуйте векторные формы с Page.draw_rectangle() и Page.draw_line()

Практические сценарии

  • Генерировать счета, сертификаты и отчёты программно
  • Пакетно создавать документы из общего шаблона
  • Собирать многостраничные отчёты из сгенерированных разделов
  • Создавать PDF полностью в памяти внутри веб-сервиса

Извлечение текста и поиск

  • Извлекать весь текст страниц с помощью PdfExtractor и get_text()
  • Перебрать текст постранично с помощью has_next_page_text() и get_next_page_text()
  • Искать точные фразы и regex-шаблоны с помощью TextFragmentAbsorber
  • Заменять найденный текст с помощью Document.replace_text()
  • Замаскировать найденный текст с помощью Document.redact_text(), при необходимости добавляя полосу-оверлей

Практические сценарии

  • Создавать полнотекстовые поисковые индексы по архивам документов
  • Замаскировать персонально идентифицируемую информацию перед обменом
  • Найти и заменить стандартный текст в шаблонных контрактах
  • Аудировать входящие документы на наличие чувствительных терминов

Отображение страницы в изображения

  • Отрендерить страницу в независимый от зависимостей RGB-растр с помощью Page.render()
  • Сохранить отрендеренный результат как PNG или TIFF через Page.save_as_image()
  • Выполнять пакетный рендеринг целых документов с помощью Document.save_page_as_image()
  • Управлять разрешением с помощью параметра dpi и качеством краёв с помощью antialias
  • Прочитать сырые пиксельные данные из возвращённого RasterizedPage

Практические сценарии

  • Создавать миниатюры страниц для библиотеки управления документами
  • Создавать готовые к печати TIFF-доказательства из готовых макетов
  • Создавать галереи предварительного просмотра страниц для просмотрщика документов
  • Конвертировать устаревшие PDF-архивы в форматы просмотра на основе изображений

Формы и интерактивные поля

  • Читать и перебрать поля AcroForm через Document.form
  • Создавать текстовые поля с помощью Form.add_text_field()
  • Создавать флажки и группы переключателей с помощью Form.add_checkbox() и Form.add_radio_group()
  • Создавать списковые и комбинированные поля с помощью Form.add_list_box() и Form.add_combo_box()
  • Устанавливать значения по имени поля через Field.value, а затем уплощать документ с помощью Document.flatten()

Практические сценарии

  • Автоматизировать заполнение форм счетов и контрактов
  • Предзаполнять шаблоны приложений перед распространением
  • Архивировать заполненные формы как недоступные для редактирования PDF с статическим содержимым
  • Извлекать отправленные значения полей для последующей обработки

Безопасность, шифрование и подписи

  • Шифровать документы с помощью Document.encrypt() используя пользовательские и владельческие пароли
  • Изменять или очищать пароли с помощью Document.change_passwords() и Document.decrypt()
  • Проверять встроенные цифровые подписи с помощью PdfSignature.validate()
  • Ограничивать недоверенный ввод с помощью настраиваемого PdfLoadLimits
  • Просматривать подписанта, уровень доверия и статус отзыва через ValidationResult

Практические сценарии

  • Защитите конфиденциальные отчёты паролями для каждого получателя
  • Проверьте подписанные контракты перед архивированием
  • Укрепите конвейер загрузки PDF от вредоносных загрузок
  • Применяйте ограничения на печать и копирование к распределяемым файлам

Соответствие PDF/A и PDF/UA

  • Выполнить эвристическую проверку PDF/A с помощью Document.validate_pdfa()
  • Преобразовать документы в PDF/A с помощью Document.convert_to_pdfa()
  • Выполнить эвристическую проверку доступности PDF/UA с помощью Document.validate_pdfua()
  • Автоматически пометить существующее содержимое страниц в дерево структуры с помощью Document.auto_tag()
  • Просматривать и редактировать дерево тегов через Document.tagged_content

Практические сценарии

  • Подготовьте исходящие документы для долгосрочного цифрового архивирования
  • Проверяйте входящие PDF-файлы на наличие проблем доступности перед публикацией
  • Создавайте отчёты о соответствии для регулируемых отраслей
  • Устраняйте унаследованные PDF в соответствии со стандартами доступности

Создать PDF и добавить текст

Создайте новый PDF-документ и добавьте позиционированный текст на страницу в несколько строк.

git clone https://github.com/aspose-pdf-foss/Aspose-PDF-FOSS-for-Python.git
cd Aspose-PDF-FOSS-for-Python
pip install -e .
from aspose_pdf import Document
with Document() as document:
    page = document.pages.add()
    page.add_text(
        "Hello from Aspose.PDF FOSS!",
        x=72,
        y=720,
        font_size=18,
    )
    document.save("hello.pdf")

Рендер страницы в изображение

Загрузите существующий PDF и сохраните его первую страницу как растровое изображение с настраиваемым разрешением DPI.

from aspose_pdf import Document
with Document() as document:
    document.load_from("input.pdf")
    document.pages[0].save_as_image("page-1.png", dpi=144)

Извлечь текст из PDF

Привяжите документ и извлеките весь его текст страниц с помощью фасада извлекателя.

from aspose_pdf import PdfExtractor
with PdfExtractor() as extractor:
    extractor.bind_pdf("input.pdf")
    extractor.extract_text()
    print(extractor.get_text())

Объединить PDF-файлы

Объединить несколько PDF-файлов в один выходной документ.

from aspose_pdf import PdfFileEditor
with PdfFileEditor() as editor:
    if not editor.concatenate(["part-1.pdf", "part-2.pdf"], "merged.pdf"):
        raise RuntimeError(editor.last_exception)
  

Ресурсы поддержки и обучения

 Русский