Criação de Apps

Python para PDFs: juntar, dividir e extrair texto com poucas linhas

Resposta rápida

Com a biblioteca pypdf, o Python consegue juntar vários PDFs em um, dividir páginas, girar e extrair o texto de arquivos que têm texto selecionável. Para PDFs escaneados, que são apenas imagens, é preciso aplicar OCR antes, porque não há texto para extrair.

Neste artigo
  1. Preparação: instalar a biblioteca
  2. Juntar vários PDFs em um só
  3. Dividir um PDF
  4. Girar e reorganizar páginas
  5. Extrair texto de PDF
  6. PDF escaneado: quando precisa de OCR
  7. Boas práticas ao automatizar PDFs
  8. Exemplos de tarefas que valem a automação
  9. Erros que costumam aparecer
  10. Próximo passo

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:

  1. crie um PdfWriter vazio;
  2. para cada arquivo da lista, abra com PdfReader;
  3. adicione cada página do arquivo ao writer;
  4. 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.

  • Python
  • PDF
  • Automação

Perguntas frequentes

Qual biblioteca Python usar para PDF?

A pypdf é uma escolha comum e simples para juntar, dividir e extrair texto. Há outras, como a pdfplumber, mais focada em extrair tabelas e posição do texto, e a reportlab, usada para criar PDFs do zero.

Por que o texto extraído do PDF sai bagunçado?

PDF é um formato feito para exibir páginas, não para guardar texto corrido. Colunas, cabeçalhos e tabelas podem sair fora de ordem. Em geral é preciso limpar o resultado ou usar uma biblioteca que leia a posição dos elementos.

Dá para tirar a senha de um PDF protegido?

Se você tem a senha e o arquivo é seu, a biblioteca consegue abri-lo informando a senha. Quebrar senha de arquivo de outras pessoas é o tipo de uso que este guia não cobre e que pode ser ilegal.

Leia também

Criação de Apps

8 scripts em Python úteis para o dia a dia que iniciantes fazem

Oito ideias de pequenos scripts que economizam tempo e servem de treino para quem está aprendendo.

· 5 min de leitura
Criação de Apps

Ambiente virtual no Python: venv e pip para não bagunçar seus projetos

Como isolar cada projeto Python com seus próprios pacotes e evitar conflitos de versão.

· 5 min de leitura
Produtividade

Como juntar e dividir PDF de graça, no computador e no celular

Una vários PDFs em um só ou separe só as páginas que você precisa, sem pagar e sem instalar programas pesados.

· 5 min de leitura
Produtividade

OCR: como transformar imagem ou PDF escaneado em texto

Copie o texto de uma foto ou de um PDF escaneado sem digitar tudo de novo.

· 5 min de leitura

Deixe seu comentário