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,
    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
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 Caminho do diretório de saída (criado se preciso).

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)