Создание PDF файлов в Python
Aspose.PDF for Python via .NET — это API для работы с PDF, позволяющее разработчикам создавать, загружать, изменять и конвертировать PDF‑файлы напрямую из Python для приложений .NET, используя всего несколько строк кода.
Используйте эти примеры, когда вам нужно создать новые PDF-файлы с нуля или преобразовать вывод OCR в поисковые PDF-документы на Python.
Создание простого PDF-файла
Чтобы создать PDF с помощью Python via .NET и Aspose.PDF, вы можете выполнить следующие шаги:
- Создайте объект Document класс
- Добавьте Page объект к pages коллекция объекта Document
- Добавьте TextFragment в paragraphs коллекция страницы
- Сохраните полученный 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 к полученному файлу, чтобы он стал поисковым.
Ниже приведён полный код для выполнения этого требования:
- Загрузите PDF с помощью ‘ap.Document’.
- Настройте разрешение рендеринга.
- Используйте ‘PngDevice.process’ для преобразования выбранной страницы PDF в изображение.
- Выполните OCR на полученном изображении.
- Создайте новый PDF из вывода OCR.
- Сохраните поисковый 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)