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:
- Crie um objeto da classe Document
- Adicione um objeto Page à coleção pages do objeto Document
- 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:
- Carregar o PDF usando ‘ap.Document’.
- Configurar a resolução de renderização.
- Usar ‘PngDevice.process’ para converter a página PDF selecionada em uma imagem.
- Executar OCR na imagem gerada.
- Criar um novo PDF a partir da saída de OCR.
- 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)