Converter PDF para Editável PDF Usando OCR
PDF4me Converter PDF para Editável PDF usando OCR é um REST ponto final que realiza a digitalização PDFs Pesquisável e editável. POST a Base64 PDF para /api/v2/ConvertOcrPdf, escolha Rascunho ou Alta qualidade, e o OCR O mecanismo insere uma camada de texto real no documento. A resposta retorna o documento finalizado. PDF como Base64 JSON, pronto para decodificar e salvar.
Utiliza uma imagem ou um scanner. PDF e retorna o mesmo documento com o texto reconhecido e selecionável. qualityType alterna entre uma passagem única rápida (Rascunho, 1 API reconhecimento por arquivo e por página (Alto, 2 API chamadas por página), enquanto ocrWhenNeeded pula pages que já são pesquisáveis. O resultado chega como um Base64 docContent campo em um JSON resposta, ou por meio de um Location enquete URL em 202.
Autenticando seu API Solicitar
Todo PDF4me REST A chamada deve incluir o seu API chave no Authorization Defina o cabeçalho como autenticação básica. Obtenha ou altere sua chave no painel do desenvolvedor.
Ponto final
/api/v2/ConverterOcrPdfhttps://api.pdf4me.com/api/v2/ConvertOcrPdfFatos importantes que você não deve perder
ocrWhenNeeded e outputFormat são as CORDAS "verdadeiro" / "falso", enquanto isAsync e mergeAllSheets são JSON booleanos. Isso reflete os exemplos de código oficiais; confundi-los é uma causa comum de erros 400.docName mais docContent, o acabado PDF como um Base64 string. Decodificar docContent Antes de salvar, não grave o corpo da resposta no disco tal como está.ocrWhenNeeded: "verdadeiro" já pesquisável pages são ignorados em vez de serem reprocessados.HTTP configurar
Método: POST
URL: https://api.pdf4me.com/api/v2/ConvertOcrPdf
Tipo de conteúdo: aplicativo/json
Authorization: Básico <seu PDF4me API chave>
Enviar isAsync: verdadeiro no corpo. 200 retornos JSON com o Base64 docContent. 202 retorna um Location cabeçalho com uma enquete URL; GET que URL com o mesmo Authorization cabeçalho até que retorne 200 com o JSON resultado.
Como se faz uma digitalização? PDF pesquisável?
Um digitalizado PDF são apenas fotos de pagesNada pode ser selecionado e nada corresponde a uma pesquisa de texto. OCR (reconhecimento óptico de caracteres, veja o visão geral de como OCR funcionaO programa lê cada imagem da página e insere as palavras reconhecidas no arquivo como uma camada de texto real. Após a conversão, o documento se comporta como um documento digital nativo. PDFA pesquisa, a cópia e os leitores de tela funcionam perfeitamente e o sistema está pronto para etapas subsequentes, como: PDF/A arquivamento ou localizar e substituir.
| Draft vs High | Rascunho | Alto |
|---|---|---|
| Ideal para | Normal PDFs que em sua maioria possuem uma camada de texto | Documentos digitalizados ou baseados em imagens |
| Custo | 1 API chamada por arquivo | 2 API chamadas por página |
| Reconhecimento | Passagem de luz | Completo por página OCR |
| Combine com | ocrWhenNeeded: "true" para ignorar a pesquisa pages | language quando o texto retorna ilegível |
API campos corporais
| Parâmetro | Obrigatório | Tipo | O que faz | Exemplo |
|---|---|---|---|---|
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 |
Exemplos de cargas úteis
Modo alto. Documento digitalizado com OCR
{
"docContent": "JVBERi0xLjcKJcfsj6IKNSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZw...",
"docName": "scanned-contract.pdf",
"qualityType": "High",
"ocrWhenNeeded": "true",
"language": "English",
"outputFormat": "true",
"isAsync": true
}
Modo rascunho. Documento misto, ignorar pesquisa. pages
{
"docContent": "JVBERi0xLjcKJcfsj6IKNSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZw...",
"docName": "mixed-report.pdf",
"qualityType": "Draft",
"ocrWhenNeeded": "true",
"outputFormat": "true",
"isAsync": true
}
Dicas de coleta do carteiro
exemplo de curl
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']))"
O que significa o API retornar?
JSON, não bytes brutos do arquivo. Decodifique o docContent campo para obter o acabado PDF.
| Campo | Tipo | O que contém |
|---|---|---|
| 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. |
Exemplos de código
Implementações funcionais de ponta a ponta, cada uma com um exemplo digitalizado. PDF e a carga útil exata desta página: