PyPDF2: Processamento de PDF em Python

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Arquivos PDF em Python: Guia Completo da Biblioteca PyPDF2

O PDF é um dos formatos mais populares para documentos eletrônicos. No entanto, manipulá-lo — como unir, dividir, criptografar ou extrair texto — exige ferramentas confiáveis. Em Python, uma das bibliotecas mais populares e robustas para trabalhar com PDF é a PyPDF2.

A PyPDF2 permite que o desenvolvedor leia, edite e crie arquivos PDF, além de obter metadados, gerenciar páginas, adicionar proteção e até mesmo inserir marcas d'água. É uma ferramenta poderosa tanto para automatizar fluxos de documentos quanto para integrar com outros serviços.

O que é PyPDF2

PyPDF2 é uma biblioteca Python para manipulação de arquivos PDF, desenvolvida como uma versão aprimorada da biblioteca original PyPDF. Ela oferece uma API de alto nível para ler, escrever e modificar documentos PDF sem a necessidade de entender a estrutura interna do formato PDF.

Principais recursos da biblioteca

  • Leitura e extração de texto de arquivos PDF
  • União de vários documentos PDF
  • Divisão de PDF em páginas individuais
  • Adição de marcas d'água e sobreposição de páginas
  • Criptografia e descriptografia de arquivos PDF
  • Trabalho com metadados de documentos
  • Rotação e redimensionamento de páginas
  • Gerenciamento de marcadores e sumário

Instalação do PyPDF2

A instalação da biblioteca é feita via pip:

pip install PyPDF2

Para um funcionamento mais estável, recomenda-se também instalar dependências adicionais:

pip install PyPDF2[crypto]

Principais classes e componentes

PdfReader

A classe PdfReader é usada para ler arquivos PDF. Ela fornece acesso às páginas, metadados e outras informações do documento.

PdfWriter

A classe PdfWriter é utilizada para criar novos arquivos PDF ou modificar os existentes. Permite adicionar páginas, aplicar criptografia e alterar metadados.

PdfMerger

A classe PdfMerger é especializada em unir vários arquivos PDF em um único documento, com a possibilidade de ajustar a ordem das páginas.

Operações básicas com PDF

Lendo arquivos PDF

from PyPDF2 import PdfReader

# Carregando o arquivo PDF
reader = PdfReader("exemplo.pdf")

# Obtendo o número de páginas
print(f"Número de páginas: {len(reader.pages)}")

# Extraindo texto da primeira página
primeira_pagina = reader.pages[0]
texto = primeira_pagina.extract_text()
print(texto)

Extraindo texto de todas as páginas

from PyPDF2 import PdfReader

reader = PdfReader("exemplo.pdf")
texto_completo = ""

for num_pagina, pagina in enumerate(reader.pages):
    texto = pagina.extract_text()
    texto_completo += f"--- Página {num_pagina + 1} ---\n{texto}\n\n"

print(texto_completo)

Verificando informações do documento

from PyPDF2 import PdfReader

reader = PdfReader("exemplo.pdf")

# Verificando se o arquivo está criptografado
if reader.is_encrypted:
    print("Arquivo criptografado")
else:
    print("Arquivo não criptografado")

# Obtendo as dimensões da primeira página
pagina = reader.pages[0]
print(f"Tamanho da página: {pagina.mediabox}")
print(f"Rotação: {pagina.rotation} graus")

Unindo arquivos PDF

União simples

from PyPDF2 import PdfMerger

merger = PdfMerger()

# Adicionando arquivos
merger.append("arquivo1.pdf")
merger.append("arquivo2.pdf")
merger.append("arquivo3.pdf")

# Salvando o resultado
merger.write("documento_unido.pdf")
merger.close()

União com seleção de intervalo de páginas

from PyPDF2 import PdfMerger

merger = PdfMerger()                    

Recommendations