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
pypdfvsPyPDF2: O pacotepypdfé a evolução oficial e mantida da antigaPyPDF2(que foi descontinuada e unificada sob o nomepypdf). Prefira semprepip 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) noopen(). - Gerenciamento de Memória: O método
merger.close()libera os handles dos arquivos lidos, prevenindo vazamento de recursos no sistema.

Comentários
Postar um comentário