Contar páginas em PDF
Obtenha o total de páginas e o tamanho da primeira a partir das medidas que o seu leitor de PDF já extraiu: três páginas, a primeira com 612 × 792 pontos. Cada página é conferida antes, então uma lista quebrada nunca passa como contagem válida. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Obtenha um total confiável de páginas e as dimensões da primeira com base em metadados já produzidos por um leitor de PDF. Forneça um descritor ordenado para cada página, com largura e altura medidas em pontos PDF. A capacidade valida todos os descritores, conta as entradas e retorna a largura e a altura da primeira página com a unidade indicada explicitamente. Ela é útil quando um fluxo já analisou um PDF e precisa de um resumo pequeno e previsível antes de encaminhar, exibir, verificar ou armazenar o documento.
Prepare os descritores das páginas
Forneça um array pages na mesma ordem das páginas do PDF. Cada entrada deve ser um objeto com os campos width e height, ambos expressos em pontos PDF. Um ponto corresponde a um septuagésimo segundo de uma polegada e é a unidade de coordenadas convencional exposta pelas bibliotecas de PDF.
Medidas decimais são aceitas, pois as caixas de corte e de mídia nem sempre usam números inteiros. Use o tamanho efetivo informado pelo seu analisador e mantenha o tratamento da rotação consistente em todo o array. A capacidade não abre os bytes do PDF, não deduz dimensões nem escolhe entre caixas de página concorrentes; ela resume os descritores fornecidos por você.
Inclua todas as páginas, mesmo quando as posteriores tiverem outra orientação ou tamanho, pois a quantidade de descritores se torna o total informado. A primeira entrada é considerada a primeira página. Um array vazio é rejeitado porque não permite indicar um total útil nem o tamanho inicial.
Interprete a contagem e o tamanho inicial
A precisão numérica original é preservada: a capacidade não arredonda, redimensiona, normaliza a orientação nem converte para polegadas ou milímetros. Somente as dimensões da primeira página são retornadas, mesmo que o documento misture posteriormente Carta, A4, paisagem, retrato ou tamanhos personalizados. Ainda assim, todos os descritores são validados antes da produção do resultado.
Isso evita que uma contagem baseada em uma lista parcialmente inválida pareça confiável enquanto oculta uma saída incompleta do analisador. A operação não mantém estado e sempre entrega o mesmo resultado para a mesma entrada.
Valide os metadados antes de encaminhar o PDF
Use o resumo como uma verificação compacta entre a análise do PDF e uma ação posterior. Um serviço de recebimento pode recusar arquivos acima de um limite de páginas, escolher um layout de visualização conforme a orientação inicial ou anexar a contagem e as dimensões a um registro de índice. Um fluxo de impressão pode comparar o tamanho da primeira página com um modelo esperado antes de encaminhar o arquivo original.
A validação é rigorosa: pages deve ser um array não vazio, cada entrada deve ser um objeto e cada width e height deve ser um número finito positivo. Zero, valores negativos, campos ausentes, strings, infinitos e valores NaN geram erros, em vez de medidas corrigidas silenciosamente. As solicitações também são limitadas a cem mil descritores.
Não há solicitação de rede, upload, decodificação do PDF nem armazenamento persistente.
Casos de uso
Aplique limites de páginas
Conte descritores validados antes de aceitar um PDF em um fluxo com requisitos mínimos ou máximos de páginas.
Escolha a orientação da visualização
Compare a largura e a altura iniciais para selecionar um contêiner em retrato, paisagem ou formato quadrado.
Armazene metadados compactos do PDF
Adicione o total e as dimensões iniciais a um índice de pesquisa, registro de ativo ou histórico de processamento.
Perguntas frequentes
Esta capacidade lê o próprio arquivo PDF?
Não. Ela recebe descritores ordenados que um leitor ou analisador de PDF já produziu.
Qual unidade width e height devem usar?
Forneça ambas as medidas em pontos PDF. A resposta identifica a unidade como pt.
Ela informa o tamanho de todas as páginas?
Não. Ela valida todos os descritores, informa o total e retorna somente as dimensões da primeira entrada.
Para que serve saber o total e o tamanho da primeira página?
Para conferir o documento antes da próxima etapa: recusar arquivos acima de um limite de páginas, escolher uma prévia em retrato ou paisagem pela primeira página ou confirmar que ela bate com o papel que um modelo de impressão espera.
Por que minha lista de páginas foi recusada?
Cada página precisa de largura e altura maiores que zero. Uma lista vazia, uma medida faltando, um zero ou um valor negativo interrompem a contagem, para que uma lista incompleta nunca gere um total que só parece certo.
Ferramentas relacionadas
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/page-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages":[{"width":612,"height":792},{"width":612,"height":792},{"width":792,"height":612}]}'const res = await fetch("https://api.kit.forhosting.com/pdf/page-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages": [
{
"width": 612,
"height": 792
},
{
"width": 612,
"height": 792
},
{
"width": 792,
"height": 612
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/page-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages": [
{
"width": 612,
"height": 792
},
{
"width": 612,
"height": 792
},
{
"width": 792,
"height": 612
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/page-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages":[{"width":612,"height":792},{"width":612,"height":792},{"width":792,"height":612}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages":[{"width":612,"height":792},{"width":612,"height":792},{"width":792,"height":612}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/page-count", 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
{
"pages": [
{
"width": 612,
"height": 792
},
{
"width": 612,
"height": 792
},
{
"width": 792,
"height": 612
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.page_count",
"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_pages | 100000 |
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. |
Notas técnicas
Interprete a contagem e o tamanho inicial
A resposta contém dois campos de nível superior. page_count é a quantidade de entradas validadas no array pages. first_page contém width e height copiados do primeiro descritor, além de unit definido como pt, para que o sistema seguinte não precise adivinhar a unidade. Portanto, a ordem do array é a única regra que determina as dimensões exibidas em first_page.
Valide os metadados antes de encaminhar o PDF
Para verificações interativas, execute a operação no navegador; para fluxos automatizados, a API custa US$ 0,002 por solicitação e retorna a mesma estrutura JSON determinística.
Perguntas técnicas
As páginas podem ter tamanhos ou orientações diferentes?
Sim. Os descritores posteriores podem variar; o tamanho do array define o total e o primeiro determina first_page.
O que acontece quando o array pages está vazio?
A solicitação falha com um erro invalid_input porque não existe uma primeira página para descrever.