Junte arquivos PDF online na ordem que você escolher
Juntar arquivos PDF combina duas ou mais referências em um único documento para download, mantendo exatamente a ordem informada.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
O resultado também mostra o número total de páginas, o que permite que você valide a saída em um fluxo automatizado. A operação é determinística, funciona sem rede nem modelo externo e rejeita solicitações incompletas antes do processamento. Use-a quando documentos produzidos separadamente precisarem virar uma entrega previsível, um item de arquivo, uma apresentação ou um único download para clientes.
Organize cada origem na sequência desejada
Comece reunindo as referências PDF que farão parte do documento final. A posição de cada uma é importante: todas as páginas do primeiro arquivo vêm antes das páginas do segundo, e assim por diante. Isso atende pacotes cuja sequência tem valor, como capa, contrato, anexos e folha de assinaturas. Confira a lista antes de executar, pois a ferramenta não tenta adivinhar a ordem por nome, metadados ou conteúdo. São necessários pelo menos dois arquivos, e cada referência deve conter dados PDF legíveis. Se o seu fluxo montar a lista automaticamente, aplique a regra de negócio onde ela é conhecida, sem depender da listagem de uma pasta, do horário de envio ou da ordem casual de chaves.
Entenda o tratamento das páginas e da saída
O mecanismo lê os objetos de página de cada origem, mantém dimensões e conteúdo e grava um novo PDF com árvore de páginas e tabela de referências próprias. Não há serviço de conversão, aleatoriedade nem data atual; portanto, entradas idênticas na mesma sequência geram a mesma saída. A resposta contém o PDF combinado, a quantidade de arquivos e o total de páginas. O total vem das páginas realmente aceitas, não de uma declaração do cliente. Nesta fase beta, são aceitas páginas independentes sem recursos externos; estruturas que não podem ser preservadas com segurança são recusadas. Isso impede a entrega de um arquivo aparentemente correto, mas sem fontes ou elementos gráficos.
Valide e automatize o documento pronto
Após o sucesso, compare total_page_count com o valor esperado pelo seu processo. Um pacote com contrato de duas páginas, anexo de quatro e assinatura de uma deve informar sete páginas. Essa verificação simples identifica origens ausentes antes de arquivar, enviar ou encaminhar para assinatura. O campo file_count oferece outra conferência para sistemas que sabem quantos componentes deveriam chegar. Como a operação é pura e determinística, você pode repeti-la sem mudar o resultado. A automação pela API custa US$ 0,002 por solicitação. Mantenha os originais até a confirmação do destino, escolha um nome claro para o arquivo final e registre os identificadores na ordem, em vez dos dados completos, quando precisar de auditoria.
Casos de uso
Monte um pacote contratual
Junte contrato, anexos e folha de assinatura na sequência aprovada e confirme o total de páginas do resultado.
Ofereça um único download
Combine carta, fatura e comprovantes para que o cliente baixe um PDF organizado, e não vários anexos.
Prepare uma entrega para arquivo
Una relatórios gerados separadamente em um item de retenção e registre as quantidades finais de arquivos e páginas.
Perguntas frequentes
Quantos arquivos PDF são necessários?
São exigidas pelo menos duas referências PDF. Lista vazia, arquivo único ou valor que não seja lista retorna erro de entrada inválida.
A ordem da lista faz diferença?
Sim. Os arquivos são processados do primeiro ao último, com todas as páginas de cada um antes das páginas do seguinte.
Como o total de páginas é calculado?
O analisador conta as páginas legíveis aceitas de cada origem e informa a soma em total_page_count.
Quanto custa uma união automatizada?
Cada solicitação de API custa US$ 0,002. Não há cobrança adicional por página declarada nesta capacidade.
Estruturas PDF incompatíveis são ignoradas?
Não. O analisador beta rejeita estruturas que não consegue preservar com segurança, evitando uma saída incompleta.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/pdf/merge-files \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"files":["https://ejemplo.com/archivo.bin","https://ejemplo.com/archivo-2.bin"]}'const res = await fetch("https://api.kit.forhosting.com/pdf/merge-files", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"files": [
"https://ejemplo.com/archivo.bin",
"https://ejemplo.com/archivo-2.bin"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/merge-files",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"files": [
"https://ejemplo.com/archivo.bin",
"https://ejemplo.com/archivo-2.bin"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/merge-files", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"files":["https://ejemplo.com/archivo.bin","https://ejemplo.com/archivo-2.bin"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"files":["https://ejemplo.com/archivo.bin","https://ejemplo.com/archivo-2.bin"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/merge-files", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"files": [
"https://ejemplo.com/archivo.bin",
"https://ejemplo.com/archivo-2.bin"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.merge_files",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 25 |
max_pages | 200 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |