Dividi un PDF per segnalibri
Dividere un PDF per segnalibri usa la struttura già presente nel documento — l'indice, i bookmark — per tagliarlo in tanti file, uno per ogni voce. Invece di indicare a mano gli intervalli di pagina, lasci che siano i segnalibri a decidere dove finisce ogni capitolo. Ideale per dossier e raccolte scansionate insieme.
Esegui online
Esegui questo sui nostri server con il tuo account. Gli strumenti gratuiti girano nel tuo browser; questo viene addebitato sul tuo saldo KIT al prezzo indicato sopra.
A cosa servono i segnalibri
Molti PDF hanno un pannello dei segnalibri (bookmark): è l'indice cliccabile che salta al capitolo giusto. Questo strumento sfrutta quella mappa. Se un documento ha dieci segnalibri di primo livello, ottieni dieci PDF separati, ciascuno con il nome della sua sezione. È il modo più rapido per scomporre un fascicolo lungo senza sapere a memoria a che pagina inizia ogni parte.
Come si divide un documento
Carica il PDF e il KIT legge i suoi segnalibri, poi ritaglia un file per ognuno. Ti restituisce l'insieme dei documenti pronti, con nomi presi dalle voci dell'indice. Serve dalla pagina web per un fascicolo singolo, oppure via API se ne processi tanti con la stessa struttura. Se il PDF non ha segnalibri, non c'è nulla da cui tagliare: in quel caso conviene la divisione per intervalli di pagina, un altro strumento del KIT.
Quando è la scelta giusta
È perfetto quando qualcuno ti passa più documenti uniti in un solo PDF ben indicizzato: verbali di più sedute, contratti raccolti, capitoli di un manuale. In pochi secondi torni ad avere i singoli pezzi. Se invece devi estrarre solo due pagine precise, o dividere ogni N pagine, ti servono gli strumenti di estrazione o di split classico, non questo.
Casi d'uso
Un fascicolo di più contratti
Lo Studio Commercialista Bianchi riceve un PDF unico con dieci contratti, ciascuno con il suo segnalibro. Con un clic ottiene dieci file separati, uno per cliente, pronti da archiviare nella cartella giusta.
Verbali uniti in un solo file
Un'associazione conserva i verbali dell'anno in un unico PDF con l'indice per data. Dividendo per segnalibri ricava un file per ogni seduta, senza cercare a mano dove inizia ciascuna.
Manuale in capitoli
Un manuale tecnico con l'indice cliccabile viene spezzato nei suoi capitoli, così ogni reparto scarica solo la parte che gli serve.
Domande frequenti
E se il PDF non ha segnalibri?
Allora non c'è nulla su cui basare il taglio: questo strumento usa proprio i bookmark. In quel caso conviene dividere per intervalli di pagina o ogni N pagine, funzioni che trovi tra gli altri strumenti del KIT.
I file separati mantengono i nomi delle sezioni?
Sì: ogni file prende il nome dalla voce del segnalibro corrispondente, così li riconosci a colpo d'occhio senza rinominarli uno per uno.
Funziona solo con i segnalibri di primo livello?
La divisione parte dai segnalibri principali. Se il documento ha una gerarchia profonda, ogni voce di primo livello diventa un file; le sotto-voci restano dentro il rispettivo file.
Quanto costa?
$0.002 a documento, a consumo. Nessun abbonamento e nessun costo nascosto: paghi solo i file che dividi.
Il documento resta privato?
Il PDF viene elaborato e poi eliminato dai server; non lo conserviamo. Non serve creare un account per usarlo.
Posso usarlo dal telefono?
Sì, funziona dal browser del telefono senza installare nulla. Carichi il fascicolo e scarichi i pezzi già divisi.
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/split-by-bookmark \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/split-by-bookmark", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/split-by-bookmark",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/split-by-bookmark", 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"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/split-by-bookmark", 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
{
"pdf": "https://ejemplo.com/documento.pdf"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.split_by_bookmark",
"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. |
413 | input_too_large | Il file o il testo inviato supera il limite di questo strumento. |