Livello OCR sul PDF
Il livello OCR trasforma un PDF scansionato — di fatto una foto — in un documento in cui puoi cercare, selezionare e copiare il testo. L'aspetto della pagina resta identico: sotto l'immagine viene aggiunto un testo invisibile e ricercabile. Utile per contratti, F24 e circolari arrivati come scansione.
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.
Perché una scansione non si può cercare
Quando fotografi o scansioni un documento, il risultato è un'immagine: i caratteri che vedi non sono testo, sono pixel. Per questo Ctrl+F non trova niente e non puoi copiare una riga. Il livello OCR legge l'immagine, riconosce le parole e le deposita come testo trasparente sopra la pagina. Da fuori non cambia nulla; dentro, il PDF diventa cercabile, indicizzabile e accessibile a chi usa un lettore di schermo.
Come si aggiunge il livello di testo
Carica il PDF scansionato e il KIT lo elabora pagina per pagina. Il file che scarichi ha lo stesso layout dell'originale, ma ora ci puoi cercare dentro, selezionare frasi e copiarle. Non tocchiamo la grafica né la qualità dell'immagine: aggiungiamo solo lo strato di testo mancante. Puoi usarlo dalla pagina web oppure via API se devi processare molti documenti in fila, per esempio un archivio di vecchie fatture.
L'italiano, gli accenti e i moduli
Il riconoscimento gestisce l'italiano con le accentate (è, à, però, città) e le lettere maiuscole accentate. Su moduli fitti, timbri e scansioni storte la precisione cala: una pagina pulita a 300 DPI dà sempre risultati migliori di una foto fatta al volo con il telefono in penombra. Se una parola resta ambigua, il testo sotto potrebbe non coincidere al 100%: conviene sempre una rilettura sui documenti importanti.
Casi d'uso
Archiviare i contratti in modo cercabile
Lo Studio Commercialista Bianchi di Bologna riceve i contratti dei clienti come scansione. Con il livello OCR li rende tutti ricercabili, così ritrovare una clausola in un archivio di centinaia di pagine diventa questione di secondi.
F24 e cartelle scansionate
Un F24 arrivato come immagine non lascia copiare gli importi. Aggiungi il livello di testo e potrai selezionare codice tributo e cifre invece di ribatterli a mano nel foglio del commercialista.
Rendere accessibile un documento
Una circolare interna scansionata non è leggibile da chi usa uno screen reader. Con il testo OCR sotto l'immagine, il documento diventa accessibile senza cambiarne l'aspetto per gli altri.
Domande frequenti
L'aspetto del documento cambia dopo l'OCR?
No. La pagina resta identica: aggiungiamo un testo trasparente sotto l'immagine. Tu vedi lo stesso documento di prima, ma ora ci puoi cercare e selezionare dentro.
Riconosce bene l'italiano con gli accenti?
Sì, gestisce accenti e maiuscole accentate. La precisione dipende dalla qualità della scansione: un documento nitido a 300 DPI dà risultati molto più affidabili di una foto scura o storta.
Quanto costa?
Si paga a consumo: $0.042 a documento più $0.0025 a pagina, prezzo pubblicato. Niente abbonamento e niente costi nascosti; paghi solo quello che elabori.
Dove finisce il file che carico?
Il PDF viene elaborato sui nostri server e poi eliminato: non lo conserviamo e non lo usiamo per altro. Non serve registrarsi né lasciare una carta di credito per provarlo.
Posso già usarlo?
Lo strumento è in fase di attivazione: il prezzo è pubblicato e a breve potrai eseguirlo dalla pagina o via API. Se ti serve subito per un lavoro, scrivici e lo gestiamo a mano.
C'è un limite di dimensione?
Il singolo file può arrivare a 25 MB e 200 pagine. Per archivi più grandi conviene spezzarli o passare dall'API, che elabora un documento dopo l'altro.
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/ocr-layer \
-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/ocr-layer", {
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/ocr-layer",
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/ocr-layer", 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/ocr-layer", 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.ocr_layer",
"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. |