Python para Automação: Como Juntar Vários PDFs Rapidamente sem Ferramentas Online

 

Python para Automação: Como Juntar Vários PDFs Rapidamente sem Ferramentas Online

Consolidar múltiplos documentos PDF em um único arquivo é uma necessidade frequente no processamento de relatórios, faturas e documentações técnicas. Este script em Python utiliza a biblioteca pypdf para percorrer um diretório, ler todos os PDFs existentes e unificá-los em uma sequência ordenada. Essa automação elimina a dependência de ferramentas online de terceiros, garantindo maior privacidade e rapidez no fluxo de trabalho.

Python
import os
from pypdf import PdfWriter

def mesclar_pdfs(pasta_origem: str, arquivo_saida: str) -> None:
    """Combina todos os arquivos .pdf de uma pasta em um único arquivo PDF."""
    if not os.path.exists(pasta_origem):
        print(f"Erro: O diretório '{pasta_origem}' não existe.")
        return

    # Instancia o gravador de PDF
    merger = PdfWriter()

    # Filtra e ordena os arquivos .pdf na pasta
    arquivos_pdf = sorted([
        f for f in os.listdir(pasta_origem) 
        if f.lower().endswith('.pdf')
    ])

    if not arquivos_pdf:
        print("Nenhum arquivo PDF encontrado no diretório.")
        return

    # Adiciona cada arquivo PDF à sequência de fusão
    for arquivo in arquivos_pdf:
        caminho_completo = os.path.join(pasta_origem, arquivo)
        merger.append(caminho_completo)
        print(f"Adicionado: {arquivo}")

    # Salva o arquivo final consolidado
    with open(arquivo_saida, "wb") as f_out:
        merger.write(f_out)
        
    merger.close()
    print(f"\nSucesso! PDF final gerado em: '{arquivo_saida}'")

# --- Exemplo de uso prático ---
if __name__ == "__main__":
    pasta_com_pdfs = "./meus_documentos"
    pdf_resultado = "relatorio_final_consolidado.pdf"

    # Nota: Instale a biblioteca necessária antes de executar:
    # pip install pypdf

    mesclar_pdfs(pasta_com_pdfs, pdf_resultado)

Pontos-chave

  • pypdf vs PyPDF2: O pacote pypdf é a evolução oficial e mantida da antiga PyPDF2 (que foi descontinuada e unificada sob o nome pypdf). Prefira sempre pip install pypdf.

  • PdfWriter.append(): Método responsável por anexar todas as páginas de um arquivo PDF inteiro na sequência da mesclagem de forma eficiente.

  • Ordenação com sorted(): Garante que os arquivos sejam mesclados na ordem alfabética dos nomes. Para controlar a ordem exata das páginas, renomeie os arquivos com numeração (ex: 01_capa.pdf, 02_indice.pdf).

  • Modo de Escrita Binária ("wb"): Como arquivos PDF são dados binários, o arquivo de saída precisa ser aberto estritamente no modo de gravação binária (wb) no open().

  • Gerenciamento de Memória: O método merger.close() libera os handles dos arquivos lidos, prevenindo vazamento de recursos no sistema.

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Python para Computação Quântica: Introdução com Qiskit

C# e Banco de Dados: Como Conectar e Realizar Operações com SQL Server