Convertire PDF Modificabile PDF Utilizzando OCR
PDF4me Convertire PDF Modificabile PDF utilizzando OCR è un REST punto finale che viene scansionato PDFs ricercabile e modificabile. POST UN Base64 PDF A /api/v2/ConvertOcrPdf, scegli Bozza o Alta qualità e il OCR Il motore scrive un livello di testo reale nel documento. La risposta restituisce il risultato finale PDF COME Base64 JSON, pronto per essere decodificato e salvato.
Esegue un'immagine basata su una scansione o una scansione PDF e restituisce lo stesso documento con il testo riconosciuto e selezionabile. qualityType passa tra un singolo passaggio veloce (Bozza, 1 API chiamata per file) e riconoscimento per pagina (Alto, 2 API chiamate per pagina), mentre ocrWhenNeeded salti pages che sono già ricercabili. L'output arriva come un Base64 docContent campo in un JSON risposta, o tramite una Location sondaggio URL il 202.
Autenticazione del tuo API Richiesta
Ogni PDF4me REST la chiamata deve includere il tuo API chiave nel Authorization Intestazione come autenticazione di base. Ottieni o ruota la tua chiave dalla dashboard dello sviluppatore.
Punto finale
/api/v2/ConvertOcrPdfhttps://api.pdf4me.com/api/v2/ConvertOcrPdfInformazioni importanti da non perdere
ocrWhenNeeded E outputFormat sono le CORDE "VERO" / "falso", Mentre isAsync E mergeAllSheets Sono JSON valori booleani. Questo rispecchia gli esempi di codice ufficiali; confonderli è una causa comune di errori 400.docName altro docContent, il finito PDF come Base64 stringa. Decodifica docContent Prima di salvare, non scrivere il corpo della risposta su disco così com'è.ocrWhenNeeded: "VERO" così già ricercabile pages vengono saltati invece di essere rielaborati.HTTP impostare
Metodo: POST
URL: https://api.pdf4me.com/api/v2/ConvertOcrPdf
Tipo di contenuto: applicazione/json
Authorization: Base <il tuo PDF4me API chiave>
Inviare isAsync: VERO nel corpo. 200 resi JSON con il Base64 docContent. 202 restituisce un Location intestazione con un sondaggio URL; GET Quello URL con lo stesso Authorization intestazione fino a quando non restituisce 200 con l' JSON risultato.
Come si fa una scansione? PDF ricercabile?
Uno scansionato PDF sono solo immagini di pagesNon è possibile selezionare nulla e non viene trovato alcun risultato nella ricerca testuale. OCR (riconoscimento ottico dei caratteri, vedere il panoramica di come OCR opere) legge l'immagine di ogni pagina e scrive le parole riconosciute nel file come un vero e proprio livello di testo. Dopo la conversione, il documento si comporta come un documento nativo digitale PDF: la ricerca, la copia e i lettori di schermo funzionano tutti ed è pronto per i passaggi successivi come PDF/A archiviazione oppure trova e sostituisci.
| Draft vs Alto | Bozza | Alto |
|---|---|---|
| Ideale per | Normal PDFs che per lo più hanno un livello di testo | Documenti scansionati o basati su immagini |
| Costo | 1 API chiamata per file | 2 API chiamate per pagina |
| Riconoscimento | Passo leggero | Tutto per pagina OCR |
| Abbinare con | ocrWhenNeeded: "true" per saltare la ricerca pages | language quando il testo torna indietro incomprensibile |
API campi corporei
| Parametro | Necessario | Tipo | Cosa fa | Esempio |
|---|---|---|---|---|
docContent | Required | string | Base64-encoded bytes of the source PDF. Strip any data:application/pdf;base64, prefix before posting. | JVBERi0xLjcK... |
docName | Required | string | Source filename including the .pdf extension. Used for the output docName. | scanned-contract.pdf |
qualityType | Required | string | Draft for normal PDFs (1 API call per file). High for scanned documents (2 API calls per page). | High |
ocrWhenNeeded | Required | string | The string "true" skips pages that already have a searchable text layer; "false" forces OCR on every page. | "true" |
outputFormat | Required | string | Output format flag, sent as the string "true" in the official samples. | "true" |
language | Conditional | string | Language of the source text (English, Spanish, French, German, and others). Set only when the recognized output is garbled; otherwise let the engine detect it. | English |
mergeAllSheets | Optional | boolean | JSON boolean carried by the official samples; relevant to sheet-based sources. | true |
isAsync | Optional | boolean | true enables the 202 + Location polling pattern, recommended for large scans. | true |
Esempi di carichi utili
Modalità alta. Documento scansionato con OCR
{
"docContent": "JVBERi0xLjcKJcfsj6IKNSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZw...",
"docName": "scanned-contract.pdf",
"qualityType": "High",
"ocrWhenNeeded": "true",
"language": "English",
"outputFormat": "true",
"isAsync": true
}
Modalità bozza. Documento misto, salta ricercabile pages
{
"docContent": "JVBERi0xLjcKJcfsj6IKNSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZw...",
"docName": "mixed-report.pdf",
"qualityType": "Draft",
"ocrWhenNeeded": "true",
"outputFormat": "true",
"isAsync": true
}
Consigli per la raccolta del postino
esempio di riccio
curl -X POST https://api.pdf4me.com/api/v2/ConvertOcrPdf \
-H "Content-Type: application/json" \
-H "Authorization: Basic YOUR_API_KEY" \
-d '{
"docContent": "'"$(base64 -w 0 scanned-contract.pdf)"'",
"docName": "scanned-contract.pdf",
"qualityType": "High",
"ocrWhenNeeded": "true",
"outputFormat": "true",
"isAsync": true
}' | python -c "import sys, json, base64; open('searchable.pdf','wb').write(base64.b64decode(json.load(sys.stdin)['docContent']))"
Che cosa significa il API ritorno?
JSON, non byte di file grezzi. Decodifica il docContent campo per ottenere il finito PDF.
| Campo | Tipo | Cosa contiene |
|---|---|---|
| docName (HTTP 200) | String | The output PDF filename, derived from the docName you sent. |
| docContent (HTTP 200) | String (Base64) | The searchable, editable PDF encoded as Base64. Decode to bytes and save with a .pdf extension. |
| Location header (HTTP 202) | String (URL) | Poll URL for an async job that is still running. GET it with the same Authorization header; the official samples poll every 10 seconds, up to 20 retries. |
| Poll response (HTTP 200) | JSON | The same docName + docContent JSON, returned once processing completes. |
Esempi di codice
Implementazioni complete funzionanti, ciascuna con un esempio scansionato PDF e il contenuto esatto di questa pagina: