Juntar vinte contratos em um só arquivo, separar as páginas de um relatório por cliente, tirar o texto de dezenas de notas: tarefas assim são lentas à mão e simples em Python. Basta uma biblioteca e alguns comandos.
O guia assume que você já tem o Python instalado e sabe rodar um script. Se não, comece por Python para iniciantes. Para quem só precisa de uma tarefa avulsa, os métodos sem código em como juntar e dividir PDF podem ser mais rápidos.
Preparação: instalar a biblioteca
Instale a pypdf no terminal com pip install pypdf. Use de preferência um ambiente virtual (explicado em ambiente virtual no Python). Ela lê, manipula e grava PDFs sem depender de programas externos.
Os dois objetos que você mais usa são:
- PdfReader: abre um arquivo e dá acesso às páginas;
- PdfWriter: monta um novo arquivo, página por página.
A lógica é sempre a mesma: ler um ou mais PDFs, escolher páginas e gravar um novo arquivo. O original não é alterado.
Juntar vários PDFs em um só
O processo, em palavras:
- crie um PdfWriter vazio;
- para cada arquivo da lista, abra com PdfReader;
- adicione cada página do arquivo ao writer;
- grave o resultado com write em um arquivo novo.
Nas versões atuais, o próprio PdfWriter tem o método append, que junta um arquivo inteiro de uma vez. Tutoriais antigos usam o objeto PdfMerger, que foi descontinuado. Como os nomes mudaram entre versões da biblioteca, confira a documentação da versão que instalou.
Um detalhe útil: se os nomes dos arquivos começam com números (01, 02, 03), use a função sorted na lista para manter a ordem.
Dividir um PDF
Dividir é o caminho inverso. Você abre o PDF original e cria novos writers com as páginas desejadas.
- Uma página por arquivo: percorra as páginas e grave cada uma.
- Intervalo específico: selecione, por exemplo, da página 3 à 7.
- Remover páginas: copie todas, menos as indesejadas.
Lembre que a contagem de páginas em Python começa no zero. A primeira página é a posição 0, a segunda é a 1, e assim por diante. Esse é o erro mais comum de quem começa, e vale conferir no resultado se as páginas corretas saíram.
Girar e reorganizar páginas
Páginas escaneadas de lado são frequentes. A pypdf permite girar uma página em múltiplos de 90 graus e reorganizar a ordem antes de gravar. Para quem gerencia muitos documentos, vale combinar essas funções num único script que corrige a rotação, remove páginas em branco e junta tudo.
Extrair texto de PDF
Para ler o conteúdo, percorra as páginas e chame extract_text em cada uma. O resultado é uma string que você pode salvar em arquivo, procurar palavras ou enviar a outra ferramenta.
Usos práticos:
- procurar um termo em dezenas de documentos;
- extrair números de nota ou datas com expressões simples;
- alimentar um resumo feito por IA (veja como resumir PDF com IA).
Limitações importantes:
- Layout: colunas e tabelas podem sair misturadas. Para tabelas, a biblioteca pdfplumber costuma dar resultados melhores.
- Caracteres estranhos: algumas fontes embutidas geram acentos errados.
- Formatação perdida: negrito, cores e posição não vêm junto.
PDF escaneado: quando precisa de OCR
Se extract_text devolve vazio ou lixo, provavelmente o PDF é uma foto das páginas. Não há texto a extrair. Nesse caso é preciso aplicar OCR (reconhecimento óptico de caracteres), que transforma a imagem em texto. Existem programas e bibliotecas gratuitas para isso, e o conceito está explicado em OCR: transformar imagem em texto. Depois do OCR, o PDF passa a ter texto e a extração funciona.
Boas práticas ao automatizar PDFs
- Trabalhe com cópias e grave os resultados em outra pasta.
- Trate erros: arquivos corrompidos ou protegidos por senha derrubam o script. Use um bloco de tentativa e erro para pular o arquivo problemático e registrar o nome dele.
- Nomeie com critério: inclua data ou cliente no nome de saída.
- Cuide dos dados: contratos, notas e documentos pessoais não devem ser enviados a serviços online sem saber como eles tratam o conteúdo. Rodar localmente é uma vantagem do Python.
- Teste em poucos arquivos antes de processar centenas.
Exemplos de tarefas que valem a automação
Para dar ideias de uso real, veja situações em que um script com pypdf economiza horas:
- Escritório: juntar contrato, anexos e comprovantes de cada cliente em um único arquivo, com o nome do cliente.
- Escola ou curso: separar o PDF de uma turma inteira em um arquivo por aluno.
- Financeiro: extrair o texto de dezenas de boletos ou extratos para procurar valores e datas.
- Estudos: retirar páginas em branco ou capas de apostilas escaneadas.
- Arquivo pessoal: padronizar o nome de documentos digitalizados, como ano, tipo e descrição.
Em todos os casos, comece com uma cópia dos arquivos e confira o resultado de alguns exemplos antes de processar a pasta inteira.
Erros que costumam aparecer
- Arquivo protegido por senha: a leitura falha até que você informe a senha, caso o arquivo seja seu.
- Página sem texto: quase sempre é imagem escaneada, e aí só o OCR resolve.
- Nome de arquivo com acento ou espaço: use caminhos completos e confira a codificação ao gravar.
- PDF corrompido: o script precisa pular o arquivo e registrar o nome dele, em vez de parar tudo.
Próximo passo
Anote uma tarefa de PDF que você repete e escreva os passos manuais. Cada passo vira uma etapa do script. Quando estiver funcionando, dá para agendar para rodar sozinho (veja agendar tarefas no computador) ou juntar com outras automações do dia a dia em scripts Python úteis para o dia a dia.