Como Converter TXT para PDF com Python: Tutorial Completo e Profissional
Crie PDFs profissionais a partir de arquivos de texto simples com Python!
Quer transformar arquivos de texto simples (.txt) em documentos PDF elegantes e prontos para compartilhar? Seja para criar relatórios, currículos ou contratos, este tutorial do Noir Code vai te ensinar, passo a passo, como usar Python e a biblioteca FPDF para converter .txt em .pdf com um código limpo, eficiente e cheio de estilo.
Olá, eu sou o Lukk e vamos mergulhar no lado misteriosamente poderoso da programação?
🚀 Por que Converter TXT para PDF?
O formato PDF é universal, profissional e perfeito para:
- Documentos oficiais: Envie currículos, contratos ou relatórios com uma apresentação impecável.
- Portabilidade: PDFs são visualizados da mesma forma em qualquer dispositivo, sem alterações indesejadas.
- Proteção contra edições: Evite mudanças acidentais que podem ocorrer em arquivos .txt.
- Estética: Transforme textos simples em documentos visualmente atraentes.
Com Python, essa conversão é rápida e altamente personalizável. Vamos começar?
⚙️ Ferramenta Principal: Biblioteca FPDF
A biblioteca FPDF é leve, gratuita e ideal para criar PDFs em Python sem complicações. Com ela, você pode adicionar texto, imagens, fontes personalizadas e muito mais com poucas linhas de código.
✅ Instalação
Abra o terminal (ou prompt de comando) e instale a FPDF:
pip install fpdf
Dica: Use um ambiente virtual para evitar conflitos entre pacotes. Exemplo: python -m venv venv e source venv/bin/activate (Linux/Mac) ou venv\Scripts\activate (Windows).
💻 Mãos à Obra: Código Completo
Aqui está o script para converter um arquivo .txt em PDF. Ele foi revisado e aprimorado para maior clareza e robustez:
from fpdf import FPDF
import os
def txt_to_pdf(txt_file, pdf_file):
# Verifica se o arquivo de entrada existe
if not os.path.isfile(txt_file):
print(f"Erro: Arquivo não encontrado: {txt_file}")
return False
# Cria o objeto PDF
pdf = FPDF()
pdf.set_auto_page_break(auto=True, margin=15)
pdf.add_page()
pdf.set_font("Arial", size=12)
try:
# Lê o arquivo .txt com codificação UTF-8
with open(txt_file, 'r', encoding='utf-8') as file:
for line in file:
line = line.rstrip() # Remove quebras de linha extras
if line == "":
pdf.ln(10) # Espaço para parágrafos vazios
else:
pdf.multi_cell(0, 10, line.encode('latin-1', 'replace').decode('latin-1'))
# Salva o PDF
pdf.output(pdf_file)
print(f"PDF gerado com sucesso: {pdf_file}")
return True
except Exception as e:
print(f"Erro ao gerar PDF: {e}")
return False
# Exemplo de uso
if __name__ == "__main__":
txt_to_pdf("exemplo.txt", "saida.pdf")
🧠 Entendendo o Código
- FPDF(): Inicializa um novo documento PDF.
- set_auto_page_break(auto=True, margin=15): Habilita quebras de página automáticas com uma margem de 15 mm.
- add_page(): Adiciona uma nova página ao PDF.
- set_font("Arial", size=12): Define a fonte Arial com tamanho 12 pontos.
- multi_cell(0, 10, line): Insere o texto com quebras de linha automáticas. O primeiro argumento (0) usa a largura total da página, e 10 define o espaçamento vertical.
- output(pdf_file): Gera e salva o arquivo PDF.
- Codificação: Incluí tratamento de caracteres especiais com encode('latin-1', 'replace') para evitar erros com textos acentuados.
Nota importante:
- Adicionei tratamento de erros com try-except para lidar com falhas (ex.: permissões de escrita).
- Usei rstrip() em vez de strip() para preservar espaços iniciais em linhas.
- Adicionei verificação de existência do arquivo e retorno booleano para facilitar integração.
- Incluí codificação latin-1 para suportar caracteres especiais (como acentos), já que a FPDF tem limitações com UTF-8 nativo.
Dica técnica: A FPDF não suporta UTF-8 diretamente para fontes padrão como Arial. Para textos com muitos caracteres especiais, considere usar fontes TrueType com add_font() (explicado na seção de personalização).
🧪 Como Testar o Script
- Crie um arquivo .txt:
- Crie um arquivo chamado exemplo.txt na mesma pasta do script.
- Adicione um texto simples, como:
Este é um exemplo de conversão de TXT para PDF. Aqui vai um parágrafo curto. Você pode adicionar quantas linhas quiser! Linha com acentuação: Olá, mundo!
- Execute o script:
- Salve o código acima como txt_to_pdf.py.
- No terminal, navegue até a pasta e rode:
python txt_to_pdf.py
- Verifique o resultado:
- Um arquivo saida.pdf será criado na mesma pasta.
- Abra-o com um leitor de PDF (ex.: Adobe Acrobat, navegador) e veja o texto formatado!
Dica: Teste com diferentes conteúdos no .txt, como listas, parágrafos longos ou até poesias, para ver como o PDF se comporta.
🎨 Personalizações para Deixar seu PDF com Estilo
Quer tornar seus PDFs mais profissionais ou criativos? Aqui estão algumas ideias:
- Centralizar ou justificar texto:
pdf.cell(0, 10, line, align='C') # Centralizado pdf.multi_cell(0, 10, line, align='J') # Justificado - Adicionar títulos:
pdf.set_font("Arial", 'B', size=16) # Fonte em negrito pdf.cell(0, 10, "Título do Documento", ln=True, align='C') pdf.set_font("Arial", size=12) # Volta à fonte normal - Mudar cores:
pdf.set_text_color(0, 102, 204) # Cor azul (RGB) pdf.multi_cell(0, 10, line) pdf.set_text_color(0, 0, 0) # Volta ao preto - Suporte a fontes personalizadas (para UTF-8 completo):
pdf.add_font('DejaVu', '', 'DejaVuSans.ttf', uni=True) pdf.set_font('DejaVu', size=12) # Use multi_cell normalmente com texto UTF-8Nota: Baixe uma fonte TrueType (ex.: DejaVuSans) e coloque-a na pasta do projeto.
- Adicionar imagens:
pdf.image('logo.png', x=10, y=10, w=50) # Insere uma imagem no PDF - Marca d’água:
pdf.set_text_color(200, 200, 200) # Cinza claro pdf.set_font("Arial", 'I', size=50) pdf.rotate(45) # Rotaciona o texto pdf.text(50, 100, "CONFIDENCIAL") pdf.rotate(0) # Reseta rotação pdf.set_text_color(0, 0, 0)
- Teste recomendado: Rode o script com um .txt contendo acentos e caracteres especiais (ex.: "çãõé") para garantir que a codificação funciona no seu ambiente.
🕶️ Conclusão: Crie PDFs com Atitude
Com este tutorial, você aprendeu a transformar arquivos .txt em PDFs elegantes usando Python e a biblioteca FPDF. O script é simples, mas poderoso, e pode ser adaptado para criar desde documentos básicos até relatórios personalizados com imagens, fontes e cores.
No Noir Code, nosso objetivo é trazer tutoriais práticos que combinam técnica e estilo. Gostou da dica? Então:
- Compartilhe com amigos que querem automatizar documentos ou aprender Python.
- Comente abaixo com suas ideias ou dúvidas – já pensou em criar um PDF com seu próprio design?
- Explore mais tutoriais no para continuar sua jornada na programação com alma noir.
🖤 Código com atitude. Tecnologia com alma. 🖤