Converta un intervallo PDF in numeri di pagina
Converta una selezione come 1-3,5,8-10 nell'elenco esatto di pagine richiesto dall'esportazione.
Esegui gratis nel browser
L'analizzatore espande gli intervalli inclusivi, mantiene l'ordine della prima richiesta, elimina i duplicati e verifica ogni risultato rispetto al totale delle pagine. La Sua applicazione ottiene così una convalida prevedibile prima di estrarre, stampare, dividere o esportare un PDF, senza accettare pagine inesistenti né modificare la sequenza indicata.
Scriva un intervallo di pagine inequivocabile
Inserisca singoli numeri di pagina, intervalli inclusivi o una combinazione separata da virgole. Ad esempio, 1-3,5,8-10 rappresenta le pagine 1, 2, 3, 5, 8, 9 e 10. Sono ammessi spazi intorno a virgole e trattini, così il testo copiato da un modulo può restare leggibile. La numerazione inizia da 1, come nei comuni lettori PDF. Ogni elemento deve essere un intero positivo o un intervallo crescente il cui inizio non superi la fine. Elementi vuoti, decimali, parole, numeri negativi e intervalli decrescenti vengono rifiutati anziché interpretati. Indichi separatamente il numero totale di pagine del documento. L'analizzatore usa tale valore come limite rigido, garantendo che la selezione descriva pagine reali del file specifico e non soltanto un'espressione formalmente valida.
Comprenda ordine e rimozione dei duplicati
Il risultato segue l'ordine della prima occorrenza di ogni pagina. Un intervallo viene espanso dall'inizio alla fine e gli elementi successivi proseguono secondo la sequenza richiesta. Se una pagina ricompare in un intervallo sovrapposto o come numero esplicito, la ripetizione viene omessa e resta la prima posizione. Ad esempio, 3-5,1,4,2 produce 3, 4, 5, 1, 2. Questo comportamento è importante per un'esportazione o un riordinamento PDF: l'ordinamento numerico cancellerebbe la sequenza desiderata, mentre i duplicati potrebbero esportare più volte la stessa pagina. La risposta include l'array pages espanso e il relativo count, così Lei può usare l'elenco e mostrare un riepilogo senza ricalcolarlo. Il processo è deterministico e non usa rete, caricamenti, casualità o dati ambientali.
Convalidi prima di esportare o stampare
Usi l'analizzatore subito dopo aver ricevuto l'intervallo e prima di avviare un'operazione PDF più costosa. Ricavi anzitutto il totale delle pagine da metadati affidabili, quindi lo invii insieme alla stringa. Se una pagina o un estremo supera il totale, l'intera richiesta fallisce con un errore di input che identifica la pagina responsabile. Nessun valore viene limitato in silenzio all'ultima pagina, perché ciò potrebbe nascondere errori di battitura e produrre documenti incompleti. La stessa regola vale per zero, interi non sicuri, separatori errati e intervalli invertiti. Un risultato positivo è quindi una selezione esplicita entro i limiti dichiarati. La capacità analizza solo il testo: non apre, ispeziona, modifica né conserva il PDF.
Casi d'uso
Convalidare una finestra di esportazione
Espanda l'intervallo inserito e rifiuti l'operazione se indica una pagina inesistente.
Preparare un'estrazione PDF
Converta la selezione compatta nell'array esplicito richiesto da un servizio di estrazione o divisione.
Normalizzare le selezioni di stampa
Salvi una rappresentazione ordinata e priva di duplicati anche in presenza di sovrapposizioni.
Domande frequenti
Quanto costa?
Ogni richiesta API costa $0.002. La versione browser può essere eseguita localmente senza caricare un PDF.
Gli estremi dell'intervallo sono inclusi?
Sì. Un intervallo come 4-6 viene espanso nelle pagine 4, 5 e 6.
Cosa accade alle pagine duplicate?
Le ripetizioni vengono eliminate, mantenendo la posizione della prima occorrenza.
Il risultato viene ordinato?
No. L'analizzatore conserva l'ordine richiesto ed espande ogni intervallo in senso crescente.
Cosa accade se una pagina supera il documento?
La richiesta fallisce con un errore di input. Le pagine non vengono mai troncate o ignorate.
Questa capacità legge o modifica il mio PDF?
No. Riceve soltanto l'intervallo e il totale delle pagine, quindi restituisce i numeri.
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/export-range-string-parse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"range_string":"1-3,5,8-10","total_pages":10}'const res = await fetch("https://api.kit.forhosting.com/pdf/export-range-string-parse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"range_string": "1-3,5,8-10",
"total_pages": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/export-range-string-parse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"range_string": "1-3,5,8-10",
"total_pages": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/export-range-string-parse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"range_string":"1-3,5,8-10","total_pages":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"range_string":"1-3,5,8-10","total_pages":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/export-range-string-parse", 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
{
"range_string": "1-3,5,8-10",
"total_pages": 10
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.export_range_string_parse",
"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_chars | 10000 |
max_items | 100000 |
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. |