Divida um PDF por intervalo de páginas em um novo arquivo
Divida um PDF por intervalo quando você precisar de uma seção contínua de um documento maior sem enviar, armazenar ou revisar todas as outras páginas.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Forneça o PDF de origem e as páginas inicial e final usando a numeração comum que começa em 1. O resultado será outro PDF com o intervalo inclusivo na ordem original. A fonte permanece inalterada, e um intervalo inválido é rejeitado com clareza em vez de gerar um arquivo parcial ou enganoso.
Escolha um intervalo inclusivo com números previsíveis
Esta ferramenta considera como página 1 a primeira página exibida por um visualizador de PDF comum. Informe uma página inicial e uma página final; os dois limites serão incluídos no novo arquivo. Portanto, solicitar as páginas 4 a 7 produz quatro páginas: 4, 5, 6 e 7. Essa regra simples evita as surpresas da indexação a partir de zero, comum em bibliotecas de programação, e faz uma solicitação automatizada corresponder ao que uma pessoa vê na tela. Antes de dividir, confira se o documento tem uma capa impressa ou páginas introdutórias sem numeração, pois os números impressos podem ser diferentes das posições mostradas no visualizador. A capacidade usa as posições físicas das páginas do PDF, não os números desenhados nelas. O início deve ser menor ou igual ao fim, e ambos os valores devem ser números inteiros positivos. Se qualquer limite ultrapassar o total de páginas do documento de origem, a solicitação retornará um erro de entrada. A ferramenta nunca encurta o intervalo silenciosamente, substitui o limite pela última página nem produz um arquivo incompleto que possa ser confundido com a seção solicitada.
Entenda o que o divisor devolve
Uma solicitação bem-sucedida cria um novo PDF que contém somente as páginas do intervalo contínuo selecionado. A entrada original não é editada, por isso você pode usá-la novamente para outro intervalo ou preservá-la como documento oficial. Junto com o novo PDF, a resposta informa o total de páginas da origem, a quantidade de páginas extraídas e os valores inicial e final aceitos. Esses campos facilitam verificações automáticas: um fluxo pode confirmar que as páginas 12 a 18 geraram sete páginas antes de anexar o resultado a um processo, cadastro de cliente ou e-mail. A operação é determinística e a lógica de divisão não depende de solicitação de rede, escolha aleatória, inferência de modelo ou horário atual. A versão do navegador executa o mesmo algoritmo central do manipulador da API. Esta capacidade se destina intencionalmente a um único intervalo contínuo. Se uma tarefa exigir páginas dispersas, páginas reordenadas ou vários arquivos de saída, use um fluxo de extração, reordenação ou divisão geral preparado para esse outro modelo de seleção.
Crie fluxos documentais seguros com validação
A validação do intervalo é especialmente importante quando os números de página vêm de outro sistema. Um índice pode afirmar que uma fatura ocupa as páginas 31 a 34, enquanto uma digitalização posterior tem apenas 30 páginas porque o envio foi truncado. Gerar as páginas 31 a 34 como resultado vazio ou abreviado esconderia o problema anterior. Este divisor compara os dois limites com o total analisado e rejeita a solicitação quando o intervalo fica fora do documento. Trate esse erro como um sinal para colocar o arquivo em quarentena, atualizar o índice ou solicitar um envio completo. No uso interativo, confira o total no visualizador e tente novamente com limites válidos. Ao usar a API, registre o intervalo solicitado e o total retornado sem registrar o próprio documento, principalmente quando o PDF contiver informações pessoais ou financeiras. A cobrança é simples: cada solicitação de API custa US$ 0,002, enquanto a execução no navegador está disponível localmente. Como o resultado é um arquivo separado, dê a ele um nome descritivo que registre o identificador da origem e o intervalo para auditorias futuras.
Casos de uso
Separe uma seção de contrato
Crie um novo PDF com as páginas do anexo solicitadas por uma pessoa revisora sem compartilhar termos comerciais alheios presentes no contrato completo.
Encaminhe uma fatura de um lote
Use os limites armazenados por uma etapa de indexação para separar a fatura de um fornecedor de uma digitalização mensal combinada e anexá-la ao cadastro correto.
Compartilhe um capítulo de relatório
Extraia um capítulo contínuo de um relatório técnico extenso para entregar a um colega um documento menor e mais focado, mantendo o arquivo principal intacto.
Perguntas frequentes
As páginas inicial e final são incluídas?
Sim. O intervalo é inclusivo; portanto, as páginas 3 a 5 produzem um PDF de três páginas contendo 3, 4 e 5.
O que acontece se o intervalo exceder o total do PDF?
A solicitação falha com um erro de entrada inválida que inclui o total de páginas do documento. Nenhum PDF parcial é devolvido.
A divisão altera o PDF original?
Não. As páginas selecionadas são gravadas em um novo PDF, e o valor de origem nunca é modificado.
Posso solicitar páginas não consecutivas?
Não. Esta capacidade aceita um único intervalo contínuo. Use uma ferramenta de extração quando precisar de páginas separadas ou reordenadas.
Quanto custa?
O preço da API é US$ 0,002 por solicitação. A versão do navegador executa localmente a mesma operação determinística.
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/split-by-range \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf","start_page":1,"end_page":2}'const res = await fetch("https://api.kit.forhosting.com/pdf/split-by-range", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf",
"start_page": 1,
"end_page": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/split-by-range",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf",
"start_page": 1,
"end_page": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/split-by-range", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf","start_page":1,"end_page":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf","start_page":1,"end_page":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/split-by-range", 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
{
"pdf": "https://ejemplo.com/documento.pdf",
"start_page": 1,
"end_page": 2
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.split_by_range",
"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. |