Ritagliare pagine PDF e calcolare le nuove dimensioni
Pianifichi il ritaglio di un PDF prima di modificare il documento. Fornisca la larghezza e l’altezza originali di ogni pagina insieme a un riquadro misurato in punti PDF: il calcolatore restituirà le dimensioni risultanti per ciascuna pagina.
Esegui gratis nel browser
Verifica inoltre che ogni rettangolo rimanga entro la pagina di origine, così da individuare una geometria non valida prima che raggiunga una libreria PDF, un flusso di stampa o un processo documentale. Il calcolo è deterministico e gestisce pagine di formati diversi nella stessa richiesta.
Descriva pagine e riquadri in punti PDF
Le pagine PDF si misurano in punti, con 72 punti per pollice. Per ogni pagina indichi la larghezza e l’altezza originali, quindi descriva il rettangolo tramite crop_x, crop_y, crop_width e crop_height. La coordinata x parte dal bordo sinistro e la coordinata y dal bordo inferiore, secondo il sistema convenzionale dei PDF. La larghezza e l’altezza del riquadro rappresentano l’area che resterà visibile, non margini da sottrarre. Per esempio, una pagina Letter statunitense misura normalmente 612 per 792 punti. Un riquadro che inizia in 36, 54 e misura 540 per 684 rientra nella pagina e produce un risultato di 540 per 684 punti. Elenchi le pagine nell’ordine del documento. La risposta assegna i numeri secondo tale ordine, semplificando il collegamento della geometria calcolata a un rapporto di analisi o a un’elaborazione successiva. Nella stessa richiesta possono convivere pagine verticali, orizzontali e di formato personalizzato.
Comprenda i controlli dei limiti
Ogni dimensione originale e ogni componente del riquadro deve essere un numero finito. Larghezza e altezza della pagina e del ritaglio devono essere maggiori di zero; le coordinate di origine possono essere zero, ma non negative. Il calcolatore controlla il bordo destro sommando crop_x e crop_width e confrontando il risultato con la larghezza originale. Per il bordo superiore applica lo stesso criterio a crop_y, crop_height e altezza originale. Se uno dei bordi oltrepassa la pagina sorgente, la richiesta termina con un errore di input non valido che identifica la pagina. È invece consentito toccare esattamente un bordo esterno: il rettangolo può terminare sulla larghezza o sull’altezza originale senza superarla. Il controllo è importante perché un rettangolo può avere dimensioni plausibili ma risultare comunque spostato fuori pagina a causa della sua origine. Tutte le pagine vengono verificate e un solo record non valido impedisce di restituire un insieme parziale e poco affidabile.
Utilizzi le dimensioni nel flusso PDF
Il risultato riporta per ogni pagina il formato originale, l’origine del ritaglio e la nuova larghezza e altezza. Non riscrive né carica un PDF: calcola e convalida la geometria che un editor o una libreria potrà applicare in seguito. Questa separazione è utile per visualizzare in anteprima le modifiche, verificare impostazioni inserite dagli utenti, stimare l’impaginazione finale o normalizzare le istruzioni prima di avviare un’elaborazione documentale costosa. Per convertire i valori in pollici li divida per 72; mantenere i punti durante il lavoro evita arrotondamenti inutili. Se più pagine condividono formato e regola, ripeta i valori per ogni pagina affinché l’output resti allineato esplicitamente all’ordine del documento. Prima di applicare il ritaglio, controlli se la libreria richiede x, y, larghezza e altezza oppure sinistra, basso, destra e alto. Nel secondo caso, destra equivale a crop_x più new_width e alto a crop_y più new_height. L’API costa $0.002 per richiesta.
Casi d'uso
Convalidare le impostazioni in anticipo
Rifiuti subito un’elaborazione quando un rettangolo richiesto oltrepassa la pagina sorgente.
Prevedere un PDF con formati misti
Calcoli le dimensioni finali di pagine verticali, orizzontali e personalizzate in una risposta ordinata.
Preparare una libreria PDF
Trasformi misure verificate in input affidabili per una fase separata di modifica del documento.
Domande frequenti
Questa funzionalità modifica il file PDF?
No. Convalida la geometria e calcola le dimensioni risultanti; un altro strumento PDF può applicare i valori.
Quali unità devo utilizzare?
Utilizzi punti PDF per dimensioni originali, origini e ritaglio. Un pollice corrisponde a 72 punti.
Dove si trova l’origine del riquadro?
crop_x si misura dal bordo sinistro e crop_y dal bordo inferiore della pagina originale.
Il riquadro può toccare il bordo?
Sì. Può terminare esattamente sulla larghezza o sull’altezza originale, ma non può superarla.
Una richiesta può contenere formati diversi?
Sì. Ogni pagina ha dimensioni e riquadro propri, pertanto sono ammessi formati misti.
Quanto costa?
L’API costa $0.002 per richiesta; lo stesso calcolo deterministico è gratuito nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
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)Esempio di richiesta
{
"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
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.crop_pages",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 25 |
max_pages | 200 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |