ocr

ocr

OCR de PDFs — extrai texto de PDFs nativos ou escaneados.

Modo nuvem (default)

Faz upload dos PDFs, dispara o OCR no escritório (PyMuPDF+Tesseract ou PaddleOCR), espera concluir e baixa o resultado (.zip) na pasta saida.

Modo local (local=True)

Roda PyMuPDF + pytesseract direto na máquina via labdados_core.ocr — mesmo pipeline que o serviço no escritório usa, sem chance de divergir em deskew, fallback BW ou descoberta do binário do Tesseract.

Precisa do extra pip install labdados[ocr] e do binário do Tesseract instalado no OS.

Functions

Name Description
ocr Extrai texto de PDFs.

ocr

ocr.ocr(
    arquivos,
    *,
    saida=None,
    api_key=None,
    modelo='pymupdf-tesseract',
    formato='txt',
    idiomas='por+eng',
    dpi=200,
    deskew=False,
    local=False,
    text=False,
    client=None,
    progress=True,
)

Extrai texto de PDFs.

Parameters

Name Type Description Default
arquivos PathLike | list[PathLike] Pode ser um arquivo único, uma lista de arquivos ou uma pasta. No caso da pasta, varre recursivamente todos os .pdf. required
saida PathLike | None Diretório onde o resultado é salvo. Default: ./resultados_labdados/. No modo nuvem, baixa o .zip retornado pelo serviço; no modo local, escreve um arquivo de texto por PDF processado. None
api_key str | None Chave de API (apenas para modo nuvem). Peça uma no portal, em /consultoria/api-key. None
modelo str "pymupdf-tesseract" (default — leve, CPU) ou "paddleocr" (mais preciso em layouts complexos, GPU). PaddleOCR só está disponível no modo nuvem. 'pymupdf-tesseract'
formato OUTPUT_FORMAT Formato do texto extraído: "txt" (default) ou "md". 'txt'
idiomas str Códigos ISO 639-2 separados por + (padrão Tesseract). Ex.: "por+eng", "por+spa", "chi_sim+eng". 'por+eng'
dpi int Resolução de renderização das páginas. 150/200/300. 200
deskew bool Endireita páginas tortas antes do OCR. Útil em scans tortos. False
local bool Se True, processa no próprio computador (exige pip install labdados[ocr] e Tesseract instalado no OS). False
text bool Se True, devolve o texto reconhecido como str em vez do caminho da pasta. Os arquivos continuam sendo gravados em saida. Com vários PDFs, os textos vêm concatenados na ordem de entrada, separados por linha em branco. False
client Client | None Reaproveita um :class:labdados.Client existente. Quando passado, o api_key daqui é ignorado. None
progress bool Mostra spinner no stderr enquanto processa. True

Returns

Name Type Description
Path | str Caminho do diretório de saída, ou o texto reconhecido quando text=True.

Examples

Modo nuvem, pasta inteira:

>>> import labdados
>>> labdados.ocr(arquivos="meus_pdfs/", api_key="sk_lab_...", saida="resultados/")

Modo local:

>>> labdados.ocr(arquivos=["a.pdf", "b.pdf"], local=True)