Crear archivos PDF en Python

Aspose.PDF for Python via .NET es una API de manipulación de PDF que permite a los desarrolladores crear, cargar, modificar y convertir archivos PDF directamente desde Python para aplicaciones .NET con solo unas pocas líneas de código.

Utiliza estos ejemplos cuando necesites generar nuevos archivos PDF desde cero o convertir la salida de OCR en documentos PDF buscables en Python.

Cómo crear un archivo PDF simple

Para crear un PDF usando Python vía .NET con Aspose.PDF, puedes seguir estos pasos:

  1. Crear un objeto de Documento clase
  2. Añadir un Página objeto al páginas colección del objeto Document
  3. Agregar TextFragment a párrafos colección de la página
  4. Guardar el 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)

Cómo crear un documento PDF buscable

Aspose.PDF for Python via .NET permite crear y manipular documentos PDF existentes. Al agregar elementos de texto a un archivo PDF, el PDF resultante es buscable. Sin embargo, al convertir una imagen que contiene texto a un archivo PDF, el contenido del PDF resultante no es buscable. Como solución alternativa, podemos aplicar OCR al archivo resultante para que se vuelva buscable.

El siguiente es el código completo para cumplir con este requisito:

  1. Cargue el PDF usando ‘ap.Document’.
  2. Configurar la resolución de renderizado.
  3. Usar ‘PngDevice.process’ para convertir la página PDF seleccionada en una imagen.
  4. Ejecutar OCR en la imagen generada.
  5. Crear un nuevo PDF a partir de la salida de OCR.
  6. Guardar el PDF buscable.
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)

Temas de documentos relacionados