RabbitPDF é uma biblioteca Python para criar, compor, visualizar, manipular e aplicar OCR em arquivos PDF.
Versão atual: 0.3.0.
- Criar PDFs simples a partir de texto, linhas ou imagens.
- Compor documentos ricos com cabeçalho, rodapé, tabelas, imagens, marca d'água, numeração de páginas e estilos de texto.
- Renderizar templates JSON com variáveis, tabelas repetíveis e preview web local.
- Extrair PDFs existentes para JSON-base de template.
- Ajustar fonte, tamanho, entrelinha, margens independentes, espaçamentos, bordas e padding de tabelas.
- Juntar, extrair, dividir, criptografar, descriptografar e marcar PDFs existentes.
- Abrir PDFs no visualizador local ou em uma página HTML simples.
- Executar OCR em PDFs digitalizados com dependências opcionais.
- Usar por API Python ou pela CLI
rabbitpdf.
pip install RabbitPDFPara OCR:
pip install "RabbitPDF[ocr]"O OCR também exige o binário do Tesseract instalado no sistema.
from rabbitpdf import PDFCreator, PDFViewer
PDFCreator(title="Exemplo").create_from_text(
"Olá, RabbitPDF!",
"hello.pdf",
)
PDFViewer("hello.pdf").open()Para abrir em um viewer web local:
PDFViewer("hello.pdf").web()
PDFViewer("hello.pdf").web(5522)Em templates, o preview pode ficar junto da criacao:
from rabbitpdf import PDFViewer, render_template_file
created = render_template_file("template.json", "dados.json", "saida.pdf")
PDFViewer.web(created)from reportlab.lib.units import cm
from rabbitpdf import DocumentTheme, RabbitDocument, TableOptions, TextStyle
(
RabbitDocument(
title="Relatório",
page_size="A4",
left_margin=2.5 * cm,
right_margin=2.5 * cm,
top_margin=2.0 * cm,
bottom_margin=2.0 * cm,
theme=DocumentTheme(font_size=11, leading=14),
)
.add_paragraph("RELATÓRIO", bold=True, underline=True, align="center")
.add_spacer(16)
.add_table(
[
["Item", "Valor"],
["Subtotal", "R$ 100,00"],
["Total", "R$ 100,00"],
],
options=TableOptions(
repeat_header=True,
padding=6,
cell_style=TextStyle(font_size=10, leading=12, space_after=0),
),
)
.build("relatorio.pdf")
)Criar PDF com texto:
rabbitpdf create hello.pdf --text "Olá, RabbitPDF"Criar PDF a partir de imagens:
rabbitpdf create album.pdf --images pagina-1.png pagina-2.jpgJuntar PDFs:
rabbitpdf merge final.pdf capa.pdf conteudo.pdf anexos.pdfRenderizar template com dados:
rabbitpdf template render examples/live_preview_template.json examples/live_preview_data.json invoice.pdfAbrir preview web do template:
rabbitpdf template preview examples/live_preview_template.json examples/live_preview_data.jsonExtrair um PDF para JSON-base de template:
rabbitpdf template extract entrada.pdf template-extraido.jsonAbrir PDF pronto em viewer web local:
rabbitpdf view invoice.pdf --web
rabbitpdf view invoice.pdf --web --port 5522Extrair páginas:
rabbitpdf extract relatorio.pdf resumo.pdf --pages "1,3-5,-1"Adicionar marca d'água:
rabbitpdf watermark entrada.pdf saida.pdf --text "CONFIDENCIAL"Se o executável não estiver no PATH, use:
python -m rabbitpdf --helpOs exemplos ficam em examples e geram arquivos em
examples/output/.
- ex01_quick_start.py: PDF simples a partir de texto.
- ex02_image_album.py: PDF a partir de imagens.
- ex03_rich_document.py: documento com cabeçalho, rodapé, marca d'água e placeholder.
- ex04_table_report.py: relatório com tabela.
- ex05_key_value_document.py: documento chave/valor.
- ex06_invoice_template.py: invoice com template e variáveis.
- ex07_parecer_documental.py: parecer documental com template.
- ex08_pdf_operations.py: merge, watermark, extração e split.
- ex09_security.py: criptografia e descriptografia.
- ex10_live_preview.py: preview web vivo.
- ex11_cloudflare_invoice.py: fatura estilo Cloudflare com paginacao automatica.
Execute qualquer exemplo com:
python examples/ex01_quick_start.py