pdfkit Python: Gerar PDF a partir de HTML com Python

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é o PDFKit para Python

O PDFKit é uma poderosa biblioteca Python que funciona como um wrapper para a ferramenta wkhtmltopdf, utilizando o motor WebKit para converter documentos HTML em arquivos PDF. Esta biblioteca permite que desenvolvedores criem documentos PDF profissionais preservando layouts complexos, estilos CSS modernos, fontes incorporadas, gráficos SVG e até mesmo JavaScript.

A principal vantagem do PDFKit é que ele permite usar tecnologias web familiares (HTML, CSS) para criar documentos que podem ser convertidos em PDF com alta qualidade de renderização. Isso o torna a ferramenta ideal para gerar relatórios, faturas, ingressos, certificados e outros documentos com conteúdo dinâmico.

Funcionalidades da biblioteca PDFKit

Tecnologias suportadas

  • HTML5 e CSS3 modernos
  • Bootstrap, Tailwind CSS e outros frameworks CSS
  • Gráficos SVG e fontes web
  • Tabelas com formatação complexa
  • Layouts Flexbox e Grid
  • Media queries CSS
  • Suporte básico a JavaScript

Fontes de dados para conversão

O PDFKit suporta conversão a partir de três fontes principais:

  • URLs de páginas web
  • Arquivos HTML locais
  • Strings HTML na memória da aplicação

Instalação e configuração

Instalação da biblioteca Python

pip install pdfkit

Instalação do wkhtmltopdf

Ubuntu/Debian:

sudo apt update
sudo apt install wkhtmltopdf

macOS (via Homebrew):

brew install --cask wkhtmltopdf

Windows: Baixe o instalador do site oficial https://wkhtmltopdf.org/downloads.html. Versões disponíveis para Windows Vista e superiores, tanto 32-bit quanto 64-bit.

CentOS/RHEL/Amazon Linux:

# Para CentOS 7
sudo yum install wkhtmltopdf

# Para versões mais recentes
sudo dnf install wkhtmltopdf

Verificando a instalação

Após a instalação, verifique se o wkhtmltopdf está disponível no sistema:

wkhtmltopdf --version

Se o comando não for encontrado, será necessário configurar o caminho para o executável no código Python.

Métodos e funções principais

Criando PDF a partir de diferentes fontes

import pdfkit

# A partir de uma URL
pdfkit.from_url("https://exemplo.com", "saida.pdf")

# A partir de um arquivo HTML
pdfkit.from_file("template.html", "saida.pdf")

# A partir de uma string HTML
conteudo_html = "<h1>Título</h1><p>Conteúdo do documento</p>"
pdfkit.from_string(conteudo_html, "saida.pdf")

Configurando o caminho do wkhtmltopdf

Se o wkhtmltopdf não estiver na variável de ambiente PATH, você pode especificar o caminho manualmente:

config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
pdfkit.from_string(conteudo_html, "saida.pdf", configuration=config)

Gerando PDF em memória

Para uso em aplicações web e APIs, muitas vezes é necessário obter o PDF como bytes:

# Retorna o PDF como bytes
pdf_bytes = pdfkit.from_string(conteudo_html, False)

# Pode ser enviado via resposta HTTP
from flask import Response
return Response(pdf_bytes, mimetype='application/pdf')

Configurando parâmetros de geração

Opções básicas de formatação

opcoes = {
    'page-size': 'A4',
    'margin-top': '0.75in',
    'margin-right': '0.75in',
    'margin-bottom': '0.75in',
    'margin-left': '0.75in',
    'encoding': "UTF-8",
    'no-outline':                    

Recommendations