Como Unificar Vários Arquivos PDF em Um Só com Python (PyPDF)

Como Unificar Vários Arquivos PDF em Um Só com Python (PyPDF)

Mesclar múltiplos relatórios, boletos ou documentos PDF em um único arquivo consolidado é uma tarefa frequente na automação de rotinas de TI. Com a biblioteca pypdf, é possível iterar sobre uma lista de arquivos e unificá-los de forma eficiente sem carregar o conteúdo inteiro na memória de uma só vez.

Python

from pypdf import PdfMerger

def mesclar_pdfs(lista_arquivos: list[str], caminho_saida: str) -> None:
    """
    Combina uma lista de arquivos PDF em um unico arquivo consolidado.
    """
    merger = PdfMerger()

    try:
        # Adiciona cada arquivo da lista ao objeto de fusao
        for pdf in lista_arquivos:
            merger.append(pdf)
        
        # Escreve o documento final mesclado no disco
        merger.write(caminho_saida)
        print(f"[SUCESSO] PDF final gerado em: {caminho_saida}")
        
    except FileNotFoundError as e:
        print(f"[ERRO] Arquivo nao encontrado: {e}")
    finally:
        # Garante a liberacao de ponteiros de arquivos abertos
        merger.close()

# Exemplo de uso pratico
if __name__ == "__main__":
    arquivos_entrada = ["capa.pdf", "relatorio_parte1.pdf", "anexo.pdf"]
    arquivo_resultado = "documento_completo.pdf"

    mesclar_pdfs(arquivos_entrada, arquivo_resultado)

Pontos-chave

  • Instalação e Migração: Utilize pip install pypdf. A biblioteca antiga PyPDF2 foi descontinuada e incorporada de volta à marca oficial pypdf (versões 3.x e superiores).
  • Método append(): Insere todo o conteúdo do arquivo fornecido ao final da fila de páginas. Se precisar mesclar trechos específicos ou definir uma posição intermediária, utilize o método merger.merge(position, pdf_path).
  • Gerenciamento de Recursos: Sempre invoque o método merger.close() após o salvamento para evitar o bloqueio de Handles de arquivo no sistema operacional (ou utilize o contexto com with PdfMerger() as merger:).
  • Tratamento de Criptografia: Caso algum arquivo PDF esteja protegido por senha, o método merger.append() lançará uma exceção FileNotDecryptedError. É necessário descriptografar o arquivo via PdfReader.decrypt() antes da união.

Thales de Oliveira Gomes

Thales de Oliveira Gomes é gestor de Tecnologia da Informação, especialista em infraestrutura de redes, computação em nuvem e operações de TI hospitalar, com mais de 18 anos de experiência na área. Graduado em Gestão de TI e pós-graduado em Engenharia de Redes e Telecomunicações, Cloud Computing, Redes de Computadores e Gestão Hospitalar, construiu uma trajetória sólida liderando projetos de alta complexidade, como a implementação e migração para nuvem de sistemas ERP de grande porte. Sua atuação no setor o levou a ser indicado ao prêmio IT Leaders Brasil na categoria Rising Leaders. Além da carreira corporativa e da paixão por tecnologia, Thales é autor independente com mais de 70 obras publicadas sobre redes, segurança da informação, Linux e física, além de criador de conteúdo no blog Vetor Tech e na plataforma CiberDicas. No universo das artes e do entretenimento, atua como produtor de música eletrônica sob o projeto Yknex, cria ilustrações digitais e compartilha walkthroughs de games no YouTube.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *