Criar arquivos PDF em Python

Aspose.PDF for Python via .NET é uma API de manipulação de PDF que permite que os desenvolvedores criem, carreguem, modifiquem e convertam arquivos PDF diretamente do Python para aplicações .NET com apenas algumas linhas de código.

Use estes exemplos quando precisar gerar novos arquivos PDF do zero ou converter a saída de OCR em documentos PDF pesquisáveis em Python.

Como Criar um Arquivo PDF Simples

Para criar um PDF usando Python via .NET com Aspose.PDF, você pode seguir estas etapas:

  1. Crie um objeto da classe Document
  2. Adicione um objeto Page à coleção pages do objeto Document
  3. Adicione um TextFragment à coleção paragraphs da página 1.º Guarde o documento PDF resultante
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)

Como criar um documento PDF pesquisável

Aspose.PDF for Python via .NET permite criar e manipular documentos PDF existentes. Ao adicionar elementos de Texto a um arquivo PDF, o PDF resultante é pesquisável. No entanto, ao converter uma imagem contendo texto para um arquivo PDF, o conteúdo do PDF resultante não é pesquisável. Como solução alternativa, podemos aplicar OCR ao arquivo resultante para que ele se torne pesquisável.

O seguinte é o código completo para atender a este requisito:

  1. Carregar o PDF usando ‘ap.Document’.
  2. Configurar a resolução de renderização.
  3. Usar ‘PngDevice.process’ para converter a página PDF selecionada em uma imagem.
  4. Executar OCR na imagem gerada.
  5. Criar um novo PDF a partir da saída de OCR.
  6. Salvar o PDF pesquisável.
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)

Tópicos relacionados ao Document