Juntar e dividir PDFDesenvolvimento e personalização

Um script em Python que junta arquivos PDF em um só ou divide PDFs grandes em partes por páginas ou por regras

Normalmente fica pronto em 15 minutosAjustes incluídosControle de qualidade
Pacotes
Pagamento protegidoDetalhes
  • Os ajustes previstos no pacote são gratuitos.
  • Se você não responder em 3 dias após a entrega, o trabalho é aprovado automaticamente.

O dinheiro fica reservado no pagamento e só é liberado quando você aprova o trabalho.

Um script em Python que junta arquivos PDF em um só ou divide PDFs grandes em partes por páginas ou por regras

Exemplo de resultado

Exemplo do pacote Padrão

Juntando os arquivos mensais de vendas de 9 lojas em um só relatório do Excel

Como ele é executado

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Pasta: sales/2026-10, 9 arquivos encontrados
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 linhas
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 linhas
2026-11-02 09:14:04 WARN  shop-07.csv: 3 linhas sem preço ignoradas (linhas 88, 412, 913)
2026-11-02 09:14:05 INFO  Pronto: 10.412 linhas -> report-2026-10.xlsx (abas "Vendas" e "Totais")

Configurações, não código

Os nomes das colunas de cada loja ficam no settings.ini, então uma loja nova ou uma coluna renomeada é só uma linha ali:

[columns]
date = Data, Data da venda, Dia
product = Produto, Item, Descrição
quantity = Qtd, Quantidade, Unid
price = Preço, Preço unitário

Um trecho do código

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Lê o arquivo de uma loja e dá a ele os nomes de colunas do relatório."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: nenhuma coluna para '{name}' (procuradas: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Arquivos: um arquivo ZIP com merge_sales.py (310 linhas), settings.ini, requirements.txt e um README que explica como instalar o Python, como rodar o script e o que significa cada mensagem do registro. O cliente roda o script no próprio computador.

Cliente: uma pequena rede de 9 papelarias; cada loja envia as vendas do mês em um arquivo CSV ou Excel, com nomes de colunas um pouco diferentes. Tarefa: um script que lê todos os arquivos de uma pasta, deixa as colunas em um só formato e grava um único relatório do Excel com todas as vendas e uma aba de totais por loja.

O cliente e todos os dados são fictícios.

Sobre este serviço

Contratos digitalizados que chegaram um arquivo por página, um extrato de 300 páginas que precisa sair cliente por cliente, um conjunto de documentos que tem de ser enviado como um único PDF: este script em Python faz esse tipo de trabalho com PDF em segundos, em vez de cliques em um editor. Ele junta arquivos na ordem que você definir (por nome, por data ou a partir de uma lista), divide um PDF em páginas avulsas, intervalos fixos ou partes que começam em cada marcador e, no Premium, pode cortar onde uma página tiver uma palavra que você indicar, como Fatura nº. As páginas mantêm a qualidade porque são copiadas, não impressas de novo. Envie o trabalho e um ou dois arquivos de exemplo sem nada confidencial. Você mesmo roda o script no seu computador. Ele não edita textos nem lê digitalizações.

O que está incluído

  • O que você recebeUm arquivo ZIP com o script em Python, um README com instruções passo a passo e, a partir do Padrão, um arquivo de configurações com ordem, intervalos e nomes; o código também aparece na página do pedido.
  • Junta na sua ordemPor nome, data ou uma lista que você passar
  • Divide do seu jeitoPáginas avulsas, intervalos ou marcadores
  • Sem perda de qualidadeAs páginas são copiadas como estão
  • Nomes de arquivo clarosNúmeros, intervalos de páginas ou nomes da sua lista
  • Código legívelCom comentários, fácil de mudar uma regra depois

Como funciona

  1. 1
    TarefaVocê descreve o trabalho e envia um ou dois PDFs de exemplo
  2. 2
    CódigoEscrevemos o script e o guia para rodá-lo
  3. 3
    TesteVocê roda em cópias dos seus arquivos e confere as páginas
  4. 4
    AjustesVocê pede ajustes dentro do seu pacote e envia qualquer mensagem de erro

O que precisamos de você

O que você precisa: quais arquivos juntar e em que ordem, ou como dividir (cada página, a cada N páginas, por intervalos, por marcadores ou por uma palavra na página), e como nomear os resultados. Um ou dois PDFs de exemplo sem nada confidencial, ou o mesmo layout com conteúdo inventado; se a divisão depender de uma palavra, uma página que a mostre. Mais ou menos quantos arquivos e páginas, e o seu sistema: Windows, macOS ou Linux.

Vamos perguntar:

  • Juntar, dividir ou um depois do outro?
  • Como saber onde cada parte começa?
  • Como os arquivos devem ser nomeados?
  • Onde ele vai rodar?

Compare os pacotes

PacotesBásicoJuntar ou dividirR$ 89PadrãoPDF com configuraçõesR$ 184PremiumFerramenta de PDFR$ 373
Prazo1 dia2 dias3 dias
Ajustes123
Códigoaté 150 linhasaté 400 linhasaté 1.000 linhas
Arquivos de código1até 3até 8
Arquivo de configuraçõesNãoSimSim
Mensagens de erro claras e um logNãoSimSim
Opções de execução e guia para rodar de forma agendadaNãoNãoSim
Guia de instalação e execução (README)SimSimSim
LinguagemPythonPythonPython
Fazer pedido BásicoFazer pedido PadrãoFazer pedido Premium

Pagamento protegido

Você paga ao fazer o pedido, mas o dinheiro só é liberado pelo trabalho aprovado.

  • Preço fixoO preço do pacote não muda depois que você paga.
  • O dinheiro fica reservadoAo pagar, o valor fica apenas reservado. Ele só é repassado quando você aprova o trabalho.
  • Verificado antes da entregaCada resultado passa por um controle de qualidade antes de chegar até você, e você o vê na página do pedido antes de aprovar.
  • Ajustes gratuitosPeça ajustes dentro do seu briefing quantas vezes o pacote permitir.
  • Aprovação após 3 diasSe em 3 dias após a entrega você não aprovar o trabalho nem pedir ajustes, ele é aprovado automaticamente. Se você escrever no chat do pedido após a entrega, o pedido fica em espera; depois que respondermos, podemos reiniciar a contagem de 3 dias e avisaremos no chat.
  • Refazer ou reembolso totalSe o resultado não corresponder ao seu briefing e os ajustes não resolverem, ou se o trabalho levar mais que o dobro do prazo, escreva no chat do pedido: refazemos o trabalho ou reembolsamos o pagamento integralmente.
Como funciona →

Perguntas e respostas

Ele divide PDFs digitalizados por uma palavra?

Não: uma digitalização é uma imagem da página, sem texto para buscar. Dividir digitalizações por números de página ou intervalos funciona bem. Dividir por uma palavra exige um PDF com texto de verdade, como um salvo a partir de um programa.

E os PDFs protegidos por senha?

Se você souber a senha, o README mostra como passá-la ao script na hora de rodar; ela nunca é escrita no código. Arquivos sem senha conhecida são ignorados e listados no log.

Ele também comprime os PDFs?

Uma compressão leve da estrutura do arquivo, sim. Deixar digitalizações bem menores exige recomprimir as imagens dentro delas, o que muda a qualidade; peça no briefing, e diremos se cabe no seu pacote.

Vocês vão processar os meus documentos?

Não. Você roda o script no seu computador, então contratos e extratos nunca saem dele. Envie só amostras sem nada confidencial.

Não encontrou a resposta?

Pacotes