Recorte páginas de PDF e calcule as novas dimensões
Planeje o recorte de um PDF antes de alterar o documento. Informe a largura e a altura originais de cada página, juntamente com uma caixa de recorte medida em pontos PDF, e esta calculadora retornará as dimensões resultantes de cada página.
Executar grátis
Ela também verifica se cada retângulo permanece dentro da página de origem, permitindo identificar uma geometria inválida antes que ela chegue a uma biblioteca PDF, um fluxo de impressão ou um processo documental. O cálculo é determinístico e aceita páginas de tamanhos diferentes na mesma solicitação.
Descreva cada página e caixa em pontos PDF
As páginas PDF são medidas em pontos, e 72 pontos correspondem a uma polegada. Para cada página, informe a largura e a altura originais e depois descreva o retângulo com crop_x, crop_y, crop_width e crop_height. A coordenada x começa na borda esquerda, enquanto a coordenada y começa na borda inferior, seguindo o sistema convencional dos arquivos PDF. A largura e a altura da caixa são as dimensões da área que continuará visível, e não margens a serem subtraídas. Por exemplo, uma página Carta dos EUA normalmente mede 612 por 792 pontos. Uma caixa que começa em 36, 54 e mede 540 por 684 cabe nessa página e produz um resultado de 540 por 684 pontos. Liste as páginas na ordem do documento. A resposta atribui números conforme essa ordem, facilitando a associação da geometria calculada a um relatório de inspeção ou a uma tarefa posterior. A mesma solicitação pode conter páginas verticais, horizontais e personalizadas.
Entenda as verificações dos limites
Todas as dimensões originais e todos os componentes da caixa precisam ser números finitos. A largura e a altura da página e do recorte devem ser maiores que zero; as origens podem ser zero, mas não podem ser negativas. A calculadora verifica a borda direita somando crop_x a crop_width e comparando o resultado com a largura original. Para a borda superior, ela aplica a mesma regra a crop_y, crop_height e à altura original. Se qualquer borda ultrapassar a página de origem, a solicitação falhará com um erro de entrada inválida que identifica a página. Encostar exatamente em uma borda externa é válido: o retângulo pode terminar na largura ou na altura da página sem ultrapassá-la. Essas verificações são importantes porque uma caixa pode ter dimensões aparentemente adequadas, mas ainda ficar deslocada para fora por causa de sua origem. Todas as páginas são validadas, e um único registro inválido impede a entrega de um conjunto parcialmente utilizável.
Use as dimensões calculadas no seu fluxo PDF
O resultado informa o tamanho original, a origem do recorte e a nova largura e altura de cada página. Ele não reescreve nem envia um PDF; apenas calcula e valida a geometria que um editor ou uma biblioteca poderá aplicar. Essa separação ajuda você a visualizar alterações, validar configurações fornecidas por usuários, estimar o layout final ou normalizar instruções antes do início de uma tarefa documental mais cara. Para converter os valores em polegadas, divida-os por 72, embora manter pontos evite arredondamentos durante o trabalho com ferramentas PDF. Quando várias páginas tiverem o mesmo tamanho e a mesma regra, repita os valores em cada registro para preservar o alinhamento explícito com a ordem do documento. Antes de aplicar o recorte, confirme se sua biblioteca espera x, y, largura e altura ou as coordenadas esquerda, inferior, direita e superior. No segundo formato, calcule a direita como crop_x mais new_width e o topo como crop_y mais new_height. O preço da API é US$ 0,002 por solicitação.
Casos de uso
Validar configurações antes do processamento
Rejeite antecipadamente uma tarefa quando algum retângulo solicitado ultrapassar sua página de origem.
Visualizar a saída de um PDF misto
Calcule as dimensões finais de páginas verticais, horizontais e personalizadas em uma resposta ordenada.
Preparar a geometria para uma biblioteca PDF
Transforme medidas verificadas de páginas e recortes em entradas confiáveis para uma etapa separada de edição.
Perguntas frequentes
Esta capacidade altera o arquivo PDF?
Não. Ela valida a geometria e calcula as dimensões resultantes; outra ferramenta PDF pode aplicar os valores.
Quais unidades devo usar?
Use pontos PDF nas dimensões originais, nas origens e no tamanho do recorte. Uma polegada contém 72 pontos.
Onde fica a origem da caixa?
crop_x é medido a partir da borda esquerda e crop_y a partir da borda inferior da página original.
A caixa pode encostar no limite da página?
Sim. Ela pode terminar exatamente na largura ou na altura original, mas não pode ultrapassá-las.
Uma solicitação pode conter tamanhos diferentes?
Sim. Cada página contém suas próprias dimensões e caixa, portanto tamanhos mistos são aceitos.
Quanto custa?
A API custa US$ 0,002 por solicitação, e o mesmo cálculo determinístico pode ser executado grátis no navegador.
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/crop-pages \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages":[{"width":612,"height":792,"crop_x":36,"crop_y":54,"crop_width":540,"crop_height":684},{"width":842,"height":595,"crop_x":20,"crop_y":15,"crop_width":800,"crop_height":560}]}'const res = await fetch("https://api.kit.forhosting.com/pdf/crop-pages", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages": [
{
"width": 612,
"height": 792,
"crop_x": 36,
"crop_y": 54,
"crop_width": 540,
"crop_height": 684
},
{
"width": 842,
"height": 595,
"crop_x": 20,
"crop_y": 15,
"crop_width": 800,
"crop_height": 560
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/crop-pages",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages": [
{
"width": 612,
"height": 792,
"crop_x": 36,
"crop_y": 54,
"crop_width": 540,
"crop_height": 684
},
{
"width": 842,
"height": 595,
"crop_x": 20,
"crop_y": 15,
"crop_width": 800,
"crop_height": 560
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/crop-pages", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages":[{"width":612,"height":792,"crop_x":36,"crop_y":54,"crop_width":540,"crop_height":684},{"width":842,"height":595,"crop_x":20,"crop_y":15,"crop_width":800,"crop_height":560}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages":[{"width":612,"height":792,"crop_x":36,"crop_y":54,"crop_width":540,"crop_height":684},{"width":842,"height":595,"crop_x":20,"crop_y":15,"crop_width":800,"crop_height":560}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/crop-pages", 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,
"crop_x": 36,
"crop_y": 54,
"crop_width": 540,
"crop_height": 684
},
{
"width": 842,
"height": 595,
"crop_x": 20,
"crop_y": 15,
"crop_width": 800,
"crop_height": 560
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.crop_pages",
"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. |