Como criar arquivos PDF com Python via FPDF

Tempo de leitura: 13 minutos

Gerar documentos de forma automática é uma habilidade valiosa para qualquer pessoa que trabalha com tecnologia. Criar arquivos PDF com Python permite que você transforme dados em relatórios profissionais de forma rápida. O PDF, ou Portable Document Format, é o padrão mundial para compartilhamento de arquivos. Ele mantém a formatação original em qualquer dispositivo, seja no celular ou no computador.

Para realizar essa tarefa, utilizamos uma biblioteca chamada FPDF. Essa ferramenta é leve, gratuita e muito simples de aprender. Ela funciona como uma caneta digital. Você dá ordens para o Python, e ele desenha o texto, as imagens e as tabelas na folha virtual. Diferente de editores manuais como o Word, aqui você usa código para posicionar cada elemento.

Imagine que você precisa criar cem certificados para um curso. Fazer isso manualmente levaria horas e causaria muitos erros. Com o FPDF, você escreve um pequeno roteiro e o computador gera todos os arquivos em segundos. Essa eficiência é o que torna o aprendizado de como criar arquivos PDF com Python via FPDF tão importante para iniciantes.

Preparando seu computador para criar arquivos PDF

Antes de começar a escrever o código, você precisa preparar o seu ambiente de trabalho. O primeiro passo é ter o Python instalado na sua máquina. Se você ainda não sabe como fazer isso, confira nosso guia sobre como instalar Python de forma simples. Com o Python pronto, o próximo passo é instalar a biblioteca FPDF.

Você deve abrir o seu terminal ou prompt de comando. Nele, digite o seguinte comando: pip install fpdf. Esse comando faz o download automático da ferramenta para o seu sistema. É um processo rápido que depende apenas da sua conexão com a internet. Lembre-se que você pode usar diversas melhores IDEs para Python para escrever seus scripts, como o VS Code ou o PyCharm.

Após a instalação, verifique se tudo está funcionando. Crie um arquivo novo chamado “teste.py”. Tente importar a biblioteca com o comando from fpdf import FPDF. Se nenhum erro aparecer, você está pronto para criar seu primeiro documento. A biblioteca FPDF é famosa por sua estabilidade e por não exigir muitas outras dependências externas.

Criando seu primeiro documento PDF básico

Vamos criar o seu primeiro documento agora mesmo. O processo básico envolve três passos: criar o objeto do PDF, adicionar uma página e escrever o conteúdo. Veja o exemplo de como o código se parece na prática. Você começa chamando a classe FPDF para criar uma “folha em branco” no sistema.

Destaque: O comando add_page() é essencial. Sem ele, o Python tenta escrever em um espaço que não existe. Em seguida, você define a fonte usando set_font(). Você pode escolher fontes clássicas como Arial ou Helvetica. O tamanho do texto também é definido aqui, geralmente usando pontos, como o tamanho 12 ou 14.

Para escrever o texto, usamos a função cell(). Pense nessa função como uma caixa retangular onde o texto fica guardado. Você define a largura e a altura dessa caixa. Se você definir a largura como zero, a caixa ocupará toda a largura da página. Por fim, o comando output(“meu_arquivo.pdf”) salva tudo o que você fez em um arquivo real no seu computador.

Entendendo o sistema de coordenadas do FPDF

Para posicionar elementos com precisão, você precisa entender como o FPDF enxerga a página. Imagine que a folha é um gráfico com eixos X e Y. O ponto zero (0,0) fica no canto superior esquerdo da folha. Conforme você aumenta o valor de X, o cursor se move para a direita. Conforme aumenta o valor de Y, ele desce na página.

A unidade de medida padrão do FPDF são milímetros (mm). Isso facilita muito se você quiser imprimir o documento depois. Se você quiser colocar um título exatamente no meio de uma folha A4, precisa saber que ela tem 210mm de largura. Dominar o posicionamento é o segredo para criar layouts bonitos e organizados.

Você pode usar a função set_xy(x, y) para pular para qualquer parte do documento. Isso é útil quando você quer colocar um selo no rodapé ou uma logo no cabeçalho. Pratique movendo pequenos blocos de texto pela tela. Quanto mais você treina, mais intuitivo fica o processo de automatizar relatórios complexos.

Adicionando imagens e elementos visuais

Um bom PDF não vive apenas de texto. Adicionar imagens torna o documento muito mais profissional. O FPDF suporta formatos comuns como JPG e PNG. Para inserir uma imagem, usamos o comando image(). Você precisa informar o caminho do arquivo e, se desejar, o tamanho que ela deve ter na página.

Um ponto importante sobre as imagens é a resolução. Se você usar uma foto muito pequena e esticá-la no código, ela ficará borrada. Tente sempre usar imagens com boa qualidade para manter o padrão do seu trabalho. Você também pode desenhar formas geométricas simples, como linhas e retângulos, para separar seções do texto.

As cores também podem ser alteradas. O FPDF usa o sistema RGB (Vermelho, Verde e Azul). Cada cor recebe um valor de 0 a 255. Por exemplo, para escrever em azul, você usaria comandos que definem a cor do texto antes de criar a célula. Combinar cores e imagens ajuda a destacar informações importantes em seus processos de automação.

Formatando textos com estilos diferentes

A formatação correta ajuda na leitura do documento. Você pode aplicar negrito, itálico e sublinhado facilmente. Ao usar o comando set_font, você adiciona uma letra no final para indicar o estilo. O “B” serve para negrito (Bold), o “I” para itálico e o “U” para sublinhado. Deixar o campo vazio mantém o texto no estilo normal.

Alinhamento também é fundamental. Dentro da função cell(), existe um parâmetro chamado align. Você pode usar ‘L’ para esquerda, ‘C’ para centralizado e ‘R’ para direita. Isso garante que seus títulos fiquem no centro e seus números fiquem alinhados conforme a necessidade financeira ou técnica do relatório.

Para textos longos que precisam quebrar a linha automaticamente, usamos a função multi_cell(). Diferente da célula comum, ela entende que o texto deve continuar na linha de baixo quando chegar na margem. Isso é perfeito para descrições de produtos ou parágrafos informativos longos. Veja a comparação abaixo para entender melhor:

FunçãoUso PrincipalQuebra de Linha
cell()Títulos e campos curtosManual (\n)
multi_cell()Parágrafos e blocos de textoAutomática

Como criar tabelas organizadas manualmente

Tabelas são ótimas para exibir dados de listas ou planilhas. No FPDF básico, não existe um botão “criar tabela” como no Word. Você constrói a tabela desenhando várias células uma ao lado da outra. Cada célula representa uma coluna. Depois de terminar uma linha, você usa a função ln() para pular para a linha seguinte.

Mantenha a largura das colunas fixa para que tudo fique alinhado. Se a primeira coluna tem 40mm, todas as células abaixo dela também devem ter 40mm. Você pode adicionar bordas usando o número 1 no parâmetro de borda da função de célula. Se usar o número 0, o texto aparece sem as linhas ao redor.

Para tornar a tabela legível, destaque o cabeçalho. Você pode mudar a cor do fundo da célula com set_fill_color() e usar o texto em negrito. Essa técnica é muito usada por quem exporta dados de bancos de dados como o SQLite diretamente para relatórios físicos em PDF.

Criando cabeçalhos e rodapés automáticos

Arquivos profissionais costumam ter o nome da empresa no topo e o número da página embaixo. Repetir isso manualmente em cada página seria cansativo. Felizmente, o FPDF permite criar um modelo que se repete sozinho. Para isso, criamos uma nova classe que “herda” as funções do FPDF original.

Dentro dessa classe, definimos duas funções especiais: header() e footer(). Tudo o que você escrever dentro do header aparecerá no topo de todas as páginas. Já o que estiver no footer ficará na base. Você pode até incluir o número da página automaticamente usando o comando page_no().

Essa funcionalidade economiza tempo e evita esquecimentos. É muito útil para contratos longos ou manuais de instrução. Ao aprender sobre Python orientado a objetos, você entenderá melhor como essas classes funcionam e como customizá-las para cada projeto específico.

Trabalhando com fontes customizadas e unicode

Muitas vezes, as fontes padrão não são suficientes para o design que você deseja. Além disso, o Python pode ter dificuldades com acentos e símbolos brasileiros se não for configurado corretamente. Para usar fontes baixadas da internet (formato TTF), você deve usar o comando add_font() antes de aplicar o estilo.

É importante garantir que o arquivo da fonte esteja na mesma pasta do seu script. Ao trabalhar com acentos (como “á”, “ç”, “õ”), certifique-se de que seu editor de código está salvando o arquivo no formato UTF-8. Se o PDF mostrar caracteres estranhos, tente converter o texto usando o comando encode(‘latin-1’, ‘replace’).decode(‘latin-1’) no Python.

Embora pareça um detalhe técnico, a correção de caracteres é vital para a clareza. Um relatório com erros ortográficos causados pelo sistema perde toda a credibilidade. Sempre teste a geração do arquivo após adicionar textos com muitos acentos ou emojis especiais para conferir o resultado visual final no leitor de PDF.

Automatizando a inserção de dados externos

O verdadeiro poder do Python aparece quando mesclamos o FPDF com fontes de dados reais. Você pode ler informações de arquivos CSV ou planilhas do Excel e transformá-las em PDFs. Basta usar um loop para percorrer as linhas de dados e criar uma nova página ou linha de tabela para cada item encontrado.

Imagine uma escola que precisa gerar boletins para 500 alunos. O script lê um arquivo com as notas, substitui o nome do aluno em um modelo pré-definido e gera um arquivo único para cada pessoa. Isso reduz o trabalho de dias para apenas alguns segundos de processamento do computador.

Você também pode integrar essa criação com o envio automático de mensagens. Por exemplo, após gerar o boleto em PDF, o sistema pode usar um bot para Telegram para enviar o arquivo diretamente ao cliente. Essa integração entre diferentes ferramentas é o que define um desenvolvedor moderno e produtivo.

Dicas avançadas de organização e performance

Quando o seu projeto de PDF cresce, o código pode ficar bagunçado. A melhor prática é separar a lógica de criação do documento da lógica de busca de dados. Use funções em Python para organizar cada parte do PDF. Tenha uma função específica para criar o cabeçalho, outra para o corpo do texto e uma para a conclusão.

Se você estiver gerando milhares de arquivos de uma vez, pode notar que o processo demora. Embora o Python seja eficiente, o acesso ao disco rígido pode ser um gargalo. Tente otimizar as imagens antes de inseri-las. Imagens muito pesadas aumentam drasticamente o tamanho final do arquivo PDF e dificultam o envio por e-mail ou WhatsApp.

Mantenha sempre uma margem de segurança nas bordas. A maioria das impressoras não consegue imprimir até o limite extremo do papel. Deixar uma margem de pelo menos 10mm em todos os lados garante que nenhuma informação importante seja cortada na hora da impressão física. A organização visual é tão importante quanto a qualidade do código.

Conclusão: Comece a criar seus próprios documentos

Aprendemos que criar arquivos PDF com Python via FPDF é uma tarefa acessível para todos. Desde a instalação da biblioteca até a automação de relatórios complexos, as possibilidades são infinitas. Você começou entendendo os conceitos básicos e avançou para a criação de tabelas e cabeçalhos automáticos.

O próximo passo é colocar a mão na massa. Tente criar um currículo simples ou uma lista de compras formatada. Experimente mudar as cores, testar novas fontes e inserir gráficos gerados pelo Matplotlib dentro do seu PDF. A prática constante é o que levará você ao domínio total da ferramenta.

A automação de documentos poupa tempo e reduz erros humanos. Seja para uso pessoal ou profissional, saber gerar PDFs com código é um diferencial competitivo no mercado. Continue explorando a documentação oficial e nossos outros tutoriais para expandir ainda mais seus conhecimentos em programação e produtividade.

Perguntas Frequentes (FAQ)

1. O que é o FPDF no Python?
É uma biblioteca leve que permite criar documentos PDF através de comandos de programação de forma simples.

2. O FPDF é gratuito para uso comercial?
Sim, a biblioteca FPDF é de código aberto e pode ser usada livremente em projetos pessoais ou de empresas.

3. Como instalo o FPDF?
Você deve usar o comando “pip install fpdf” no seu terminal para baixar e configurar a biblioteca.

4. Posso colocar imagens no meu PDF?
Sim, basta usar a função image() e informar o caminho do arquivo JPG ou PNG no seu computador.

5. Como faço para escrever textos com acentos?
Salve seu script em UTF-8 e, se necessário, use a função de encode/decode para tratar os caracteres especiais.

6. Posso mudar a cor do texto?
Sim, use a função set_text_color(r, g, b) informando os valores das cores para mudar o tom das letras.

7. Dá para criar mais de uma página no mesmo arquivo?
Sim, utilize o comando add_page() sempre que quiser iniciar uma nova folha em branco no documento.

8. Como insiro números de página automaticamente?
Você define um rodapé na classe do PDF e usa a função page_no() para exibir o número atual.

9. O FPDF funciona em aparelhos celulares?
O Python pode rodar em celulares, mas a biblioteca é projetada principalmente para ambientes de computador e servidores.

10. Qual a diferença entre cell() e multi_cell()?
A função cell() cria uma linha única, enquanto a multi_cell() quebra o texto automaticamente em várias linhas.

11. Posso criar links clicáveis dentro do PDF?
Sim, você pode adicionar links externos em células para direcionar o usuário para sites ou outros arquivos.

12. É possível criar tabelas complexas?
Sim, embora seja feito manualmente unindo várias células, você consegue criar tabelas organizadas e detalhadas.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Fundamentos
    Foto do Leandro Hirt

    Decoradores em Python: O que são e como usar

    O que são Decoradores em Python? Os decoradores em Python são ferramentas poderosas. Eles permitem que você altere o comportamento

    Ler mais

    Tempo de leitura: 11 minutos
    04/02/2026
    Logotipo do Python em tamanho grande centralizado acima do texto 'Args e Kwargs', em um design minimalista com fundo colorido sólido
    Fundamentos
    Foto do Leandro Hirt

    Args e Kwargs em Python: Guia Completo

    Você já se deparou com funções que aceitam um número variável de argumentos? Ou já viu aqueles estranhos *args e

    Ler mais

    Tempo de leitura: 11 minutos
    19/01/2026
    Ilustração minimalista do logotipo da linguagem de programação Python ao lado do texto REGEX em fundo neutro
    Fundamentos
    Foto do Leandro Hirt

    Regex Python: Tudo Sobre Expressões Regulares

    Se você já tentou encontrar padrões específicos em textos, validar formatos de email ou extrair informações de documentos, provavelmente já

    Ler mais

    Tempo de leitura: 12 minutos
    05/01/2026
    Logo do Python, texto TXT e ícone de bloco de notas representando arquivos de texto
    Fundamentos
    Foto do Leandro Hirt

    Como Ler Arquivos TXT no Python

    Trabalhar com arquivos de texto é uma das tarefas mais comuns na programação. Aprender como ler arquivo TXT no Python

    Ler mais

    Tempo de leitura: 14 minutos
    24/12/2025
    Comparação visual entre Python 2 e Python 3 com ícones minimalistas
    Fundamentos
    Foto do Leandro Hirt

    Python 2 vs Python 3: Principais Diferenças

    Se você está começando a estudar Python ou já trabalha com a linguagem, provavelmente já se deparou com uma dúvida

    Ler mais

    Tempo de leitura: 20 minutos
    22/12/2025
    Pessoa pensando com um monitor desfocado ao fundo
    Fundamentos
    Foto do Leandro Hirt

    Tipos de Dados em Python: int, float, str, list e dict

    Aprenda tudo sobre os principais tipos de dados em Python: int, float, str, list e dict. Guia completo com exemplos

    Ler mais

    Tempo de leitura: 14 minutos
    21/12/2025