Estragga il testo PDF da un intervallo di pagine
Estragga il testo di un intervallo di pagine PDF quando dispone già di un blocco di testo per ciascuna pagina e Le serve soltanto una sezione.
Esegui gratis nel browser
Fornisca i blocchi ordinati, la prima pagina e l'ultima. La capacità verifica l'intervallo numerato da uno rispetto al totale delle pagine, include entrambi gli estremi e unisce il testo scelto in ordine con un indicatore visibile di interruzione. È adatta a rapporti, contratti, manuali e altri documenti lunghi nei quali la fase successiva deve ricevere un estratto mirato invece dell'intero contenuto.
Fornisca il testo ordinato e un intervallo inclusivo
Parta dal testo prodotto per ogni pagina da un estrattore PDF o da un processo OCR. Disponga gli oggetti nello stesso ordine del documento originale, comprese le pagine il cui testo estratto è una stringa vuota. Imposti quindi start_page e end_page con numerazione a partire da uno. Entrambi gli estremi sono inclusi: l'intervallo da 3 a 5 restituisce il terzo, il quarto e il quinto blocco. È importante mantenere le pagine vuote, perché eliminarle sposterebbe tutti i numeri successivi. Ogni pagina deve essere un oggetto con una stringa text; valori mancanti o di altro tipo vengono rifiutati. L'input accetta fino a diecimila blocchi. La capacità non apre né decodifica il file PDF, ma opera sul testo per pagina già estratto, mantenendo la selezione esplicita, prevedibile e verificabile.
Comprenda la convalida e i confini delle pagine
Gli intervalli partono da uno, includono gli estremi e vengono convalidati rigorosamente. L'inizio e la fine devono essere numeri interi non inferiori a uno, e l'inizio non può seguire la fine. Nessun estremo può superare il numero di blocchi forniti. Se un documento ha tre pagine e l'intervallo termina a quattro, la richiesta restituisce un errore di input non valido anziché un risultato parziale. In questo modo emergono incongruenze fra metadati, selezione ed estrazione. Le stringhe scelte vengono unite mediante un indicatore stabile circondato da righe vuote, senza tagliare o interpretare il testo. Un intervallo di una pagina non ha separatore. L'output riporta anche il numero selezionato e ripete gli estremi accettati. Non intervengono rete, casualità, orologio, modelli linguistici o inferenze: input identici producono sempre output identici.
Usi il risultato in flussi documentali mirati
La selezione è particolarmente utile tra una fase di estrazione che conserva le pagine e un destinatario che non deve ricevere l'intero documento. Un flusso contrattuale può isolare gli allegati prima dell'analisi delle clausole, una procedura finanziaria può conservare soltanto il commento gestionale di un rapporto e un servizio di assistenza può indicizzare un capitolo del manuale. Poiché l'input è testo e non un PDF binario, la capacità si combina sia con l'OCR per scansioni sia con l'estrazione normale per file digitali. Conservi l'elenco originale fino alla convalida e registri gli estremi restituiti quando serve tracciabilità. L'indicatore può restare per le citazioni o essere suddiviso in seguito. Lo strumento non riassume, corregge, classifica o normalizza il contenuto: tali trasformazioni spettano a fasi separate, mentre questa operazione rimane deterministica e riproducibile.
Casi d'uso
Isoli una sezione di un rapporto
Selezioni le pagine precise con il commento gestionale prima di inviare il testo all'analisi o al confronto.
Instradi gli allegati contrattuali
Estragga soltanto l'intervallo inclusivo che contiene un allegato e mantenga i confini per la revisione.
Indicizzi un capitolo del manuale
Scelga un capitolo dal testo suddiviso per pagina e invii l'estratto alla ricerca o all'assistenza.
Domande frequenti
Le pagine iniziale e finale sono incluse?
Sì. L'intervallo è inclusivo, quindi dalle pagine 2 a 4 vengono restituiti tre blocchi di testo.
Che cosa accade se l'intervallo supera il documento?
La richiesta restituisce un errore di input non valido se un estremo supera il numero di pagine fornito.
Questa capacità legge un file PDF?
No. Riceve testo ordinato per pagina che è già stato estratto in precedenza da un PDF.
Come vengono separate le pagine selezionate?
Le stringhe adiacenti vengono unite da un indicatore stabile di interruzione circondato da righe vuote.
Quanto costa una richiesta?
Il prezzo dell'API è $0.002 per richiesta. L'esecuzione deterministica nel browser è gratuita nella pagina.
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/text-extract-by-page-range \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages":[{"text":"Cover page"},{"text":"Executive summary\nRevenue increased."},{"text":"Risk analysis\nSupply remains constrained."},{"text":"Appendix"}],"start_page":2,"end_page":3}'const res = await fetch("https://api.kit.forhosting.com/pdf/text-extract-by-page-range", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages": [
{
"text": "Cover page"
},
{
"text": "Executive summary\nRevenue increased."
},
{
"text": "Risk analysis\nSupply remains constrained."
},
{
"text": "Appendix"
}
],
"start_page": 2,
"end_page": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/text-extract-by-page-range",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages": [
{
"text": "Cover page"
},
{
"text": "Executive summary\nRevenue increased."
},
{
"text": "Risk analysis\nSupply remains constrained."
},
{
"text": "Appendix"
}
],
"start_page": 2,
"end_page": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/text-extract-by-page-range", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages":[{"text":"Cover page"},{"text":"Executive summary\\nRevenue increased."},{"text":"Risk analysis\\nSupply remains constrained."},{"text":"Appendix"}],"start_page":2,"end_page":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages":[{"text":"Cover page"},{"text":"Executive summary\nRevenue increased."},{"text":"Risk analysis\nSupply remains constrained."},{"text":"Appendix"}],"start_page":2,"end_page":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/text-extract-by-page-range", 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": [
{
"text": "Cover page"
},
{
"text": "Executive summary\nRevenue increased."
},
{
"text": "Risk analysis\nSupply remains constrained."
},
{
"text": "Appendix"
}
],
"start_page": 2,
"end_page": 3
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.text_extract_by_page_range",
"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. |