Создание PDF файлов в Python

Aspose.PDF for Python via .NET — это API для работы с PDF, позволяющее разработчикам создавать, загружать, изменять и конвертировать PDF‑файлы напрямую из Python для приложений .NET, используя всего несколько строк кода.

Используйте эти примеры, когда вам нужно создать новые PDF-файлы с нуля или преобразовать вывод OCR в поисковые PDF-документы на Python.

Создание простого PDF-файла

Чтобы создать PDF с помощью Python via .NET и Aspose.PDF, вы можете выполнить следующие шаги:

  1. Создайте объект Document класс
  2. Добавьте Page объект к pages коллекция объекта Document
  3. Добавьте TextFragment в paragraphs коллекция страницы
  4. Сохраните полученный PDF документ
import sys
from os import path
import aspose.pdf as ap

def create_new_document(output_pdf):
    """Create a simple PDF with a single “Hello World!” page."""
    document = ap.Document()
    page = document.pages.add()
    page.paragraphs.add(ap.text.TextFragment("Hello World!"))
    document.save(output_pdf)

Создание поискового PDF‑документа

Aspose.PDF for Python via .NET позволяет создавать и изменять существующие PDF‑документы. При добавлении текстовых элементов в PDF‑файл полученный PDF становится поисковым. Однако при преобразовании изображения, содержащего текст, в PDF‑файл содержимое получаемого PDF не является поисковым. В качестве обходного решения мы можем применить OCR к полученному файлу, чтобы он стал поисковым.

Ниже приведён полный код для выполнения этого требования:

  1. Загрузите PDF с помощью ‘ap.Document’.
  2. Настройте разрешение рендеринга.
  3. Используйте ‘PngDevice.process’ для преобразования выбранной страницы PDF в изображение.
  4. Выполните OCR на полученном изображении.
  5. Создайте новый PDF из вывода OCR.
  6. Сохраните поисковый PDF.
import aspose.pdf as ap
import io

# Requires: pip install pytesseract
# Also ensure the Tesseract OCR engine is installed and available on your system PATH.
import pytesseract
from pathlib import Path


# Path to the source PDF
input_pdf_path = "input.pdf"
# Path for the temporary image
temp_image_path = "temp_image.png"
# Path for the searchable PDF
output_pdf_path = "output_searchable.pdf"
page_number = 1
image_stream = io.FileIO(temp_image_path, "w")
try:
    document = ap.Document(input_pdf_path)
    resolution = ap.devices.Resolution(300)
    png_device = ap.devices.PngDevice(resolution)
    png_device.process(document.pages[page_number], image_stream)
    image_stream.close()
    pdf = pytesseract.image_to_pdf_or_hocr(temp_image_path, extension="pdf")
    document = ap.Document(io.BytesIO(pdf))
    document.save(output_pdf_path)
finally:
    image_file = Path(temp_image_path)
    image_file.unlink(missing_ok=True)

Связанные темы документа