Como Converter TXT para PDF com Python: Tutorial Completo e Profissional

Crie PDFs profissionais a partir de arquivos de texto simples com Python!

Imagem: ChatGPT

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

  1. 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!
  2. 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
  3. 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-8

    Nota: 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. 🖤

Veja também: