* fix: make OCR portable and reliable * fix: harden OCR installation portability * fix: pin OCR partials across downloads * fix: make OCR execution reliably asynchronous * fix: harden OCR portability and docs routes * fix: preserve decoder and docs safeguards
4.7 KiB
description, i18n_output_hash, i18n_source_hash, i18n_provenance
| description | i18n_output_hash | i18n_source_hash | i18n_provenance |
|---|---|---|---|
| Estrai testo dai PDF scansionati localmente con Tesseract integrato o il runtime RapidOCR opzionale ad alta precisione. | cae7ce183801 | a19ba25a1ca8 | human |
OCR PDF
Estrai il testo dai documenti PDF scansionati pagina per pagina senza inviare PDF a un servizio esterno. Il livello fast integrato utilizza Tesseract. I livelli opzionali balanced e best utilizzano RapidOCR con modelli PP-OCR ONNX bloccati.
::: info Compatibilità OCR per il coreano
OCR veloce supporta auto, en, de, es, fr, zh e ja, ma non il coreano (ko). Il coreano richiede il pacchetto OCR accurato e balanced o best. Il pacchetto funziona nei container Linux amd64 e arm64 ufficiali, inclusi gli host NVIDIA, dove l’OCR resta sulla CPU. I sistemi non supportati ricevono un errore di compatibilità esplicito e non passano mai silenziosamente a fast. Il coreano con fast o con l’alias legacy tesseract viene rifiutato prima dell’accodamento con FEATURE_INCOMPATIBLE e fast-korean-unsupported.
:::
API Endpoint
POST /api/v1/tools/pdf/ocr-pdf
Accetta dati di form multipart con un file PDF e un campo JSON opzionale settings.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| file | file | SÌ | - | File PDF (multiparte), fino a 512 MiB codificati; si applica ancora un limite di caricamento da parte dell'operatore inferiore |
| quality | string | NO | Dinamico | Livello di qualità OCR: fast, balanced o best |
| language | string | No | "auto" |
Lingua del documento: auto, en, de, fr, es, zh, ja, ko |
| pages | string | No | "all" |
Selezione delle pagine, es. "all", "1-3", "1,3,5" |
| enhance | boolean | NO | Dipendente dal livello | Migliora il contrasto locale prima del riconoscimento. Fast lo applica direttamente; Bilanciato e Migliore mantengono la variante solo quando il punteggio calibrato migliora il risultato. Il valore predefinito è true per best e false per fast/balanced |
| engine | string | NO | - | Alias di compatibilità deprecato. Utilizzare invece quality. tesseract è mappato su fast; il valore paddleocr legacy viene mappato su balanced ma non carica PaddlePaddle |
Quando quality e engine sono omessi, SnapOtter sceglie il livello migliore disponibile nell’ordine best, balanced, fast. Per il coreano non sceglie mai fast: usa best, poi balanced, oppure restituisce l’errore di installazione o compatibilità del runtime accurato.
Example Request
curl -X POST http://localhost:1349/api/v1/tools/pdf/ocr-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@scanned.pdf" \
-F 'settings={"quality": "best", "language": "en", "pages": "1-5", "enhance": true}'
Example Response
Restituisce 202 Accepted. Monitora l'avanzamento tramite SSE su /api/v1/jobs/{jobId}/progress.
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"async": true
}
Notes
- Formato di input accettato:
.pdf. fastè integrato e aggiunge circa 25 MiB all'immagine ufficiale.balancedebestrichiedono il pacchetto OCR accurato opzionale (circa 208-234 MiB da scaricare e 409-488 MiB installati, a seconda dell'obiettivo).- Il pacchetto accurato supporta Linux amd64 e arm64 e utilizza ONNX Runtime su CPU, inclusi gli host NVIDIA.
- Un livello richiesto esplicitamente non viene mai declassato silenziosamente. Se
balancedobestnon è disponibile, API restituisce501conFEATURE_NOT_INSTALLEDoFEATURE_INCOMPATIBLE. - Le pagine PDF vengono rasterizzate ad alta risoluzione prima di OCR.
bestesegue i modelli PP-OCRv6 medi ad alta precisione e valuta le varianti di orientamento e miglioramento, migliorando il riconoscimento a scapito della velocità. - L'impostazione della lingua
autoconsente il riconoscimento attraverso il set di script supportato; un suggerimento esplicito può migliorare i risultati per una lingua di documento conosciuta. - Puoi selezionare pagine specifiche usando intervalli (
"1-3"), elenchi separati da virgole ("1,3,5"), o"all"per ogni pagina. - Una richiesta può elaborare un massimo di 50 pagine. I dati scratch rasterizzati sono limitati a 512 MiB e la risposta aggregata UTF-8 OCR è limitata a 1.000.000 di byte; i lavori con limite eccessivo falliscono anziché restituire testo parziale.
- Per i PDF che contengono già testo selezionabile, considera l'uso dello strumento più veloce PDF in testo.