Skip to main content

OCR híbrido: Tesseract + PdfReader com paralelismo automático para PDFs grandes.

Project description

📄 pdfsmartocr

pdfsmartocr é uma biblioteca Python para OCR híbrido e performático de PDFs grandes, especialmente pensada para processos judiciais, inquéritos, laudos e documentos extensos.

Ela combina:

🔍 Tesseract OCR (para páginas escaneadas)

📄 PdfReader (PyPDF2) para texto nativo

⚡ Paralelismo automático (multiprocessing)

🎯 Seleção precisa de páginas para OCR

✨ Principais recursos

OCR paralelo com Tesseract

Leitura nativa com PdfReader

Processamento eficiente de PDFs grandes

Seleção de páginas por:

número (5)

lista ([1, 3, 10])

intervalos ("1-5, 9, 12-14")

Numeração de páginas 1-based (padrão) ou 0-based

Ideal para documentos jurídicos

📦 Instalação pip install pdfsmartocr

Dependências de sistema (obrigatórias)

O pdfsmartocr depende de ferramentas externas:

🔹 Tesseract OCR

Windows: https://github.com/UB-Mannheim/tesseract/wiki

Linux: sudo apt install tesseract-ocr

macOS: brew install tesseract

Após instalar, configure o caminho no seu código:

import pytesseract pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

🔹 Poppler (necessário para pdf2image)

Windows: https://github.com/oschwartz10612/poppler-windows

Linux: sudo apt install poppler-utils

macOS: brew install poppler

🚀 Uso básico (modo híbrido automático)

Executa OCR nas primeiras páginas e leitura nativa nas demais:

from pdfsmartocr import ocr_pdf

texto, tempo = ocr_pdf( "arquivo.pdf", max_ocr_pages=70 )

print(f"Tempo: {tempo:.2f}s")

🎯 OCR apenas em páginas específicas

Ideal quando você já sabe quais páginas são escaneadas.

from pdfsmartocr import ocr_pdf_paginas

texto, tempo = ocr_pdf_paginas( "arquivo.pdf", paginas_ocr="1-5, 9, 12-14" )

Exemplos válidos de paginas_ocr paginas_ocr=5 # uma página paginas_ocr=[1, 3, 10] # lista paginas_ocr="1-5, 9, 12-14" # intervalos

Por padrão, as páginas são 1-based (a primeira página é 1).

📄 OCR + leitura do restante via PdfReader texto, tempo = ocr_pdf_paginas( "processo.pdf", paginas_ocr="1-3", ler_restante_pdfreader=True )

⚙️ Parâmetros principais Parâmetro Descrição paginas_ocr Página(s) a serem processadas com OCR dpi Resolução das imagens (padrão: 200) lang Idioma do OCR (ex: "por") n_processos Nº de processos paralelos one_based Numeração 1-based ou 0-based ler_restante_pdfreader Ler páginas restantes com PdfReader 🏛️ Casos de uso típicos

Processos judiciais digitalizados

Inquéritos policiais

Laudos periciais

PDFs híbridos (parte texto, parte imagem)

Extração de texto para NLP, RAG e IA jurídica

⚠️ Observações importantes

O caminho do Tesseract deve ser configurado pelo usuário

PDFs 100% digitais não precisam de OCR

OCR é computacionalmente caro → selecione páginas sempre que possível

📜 Licença

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pdfsmartocr-0.1.4.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pdfsmartocr-0.1.4-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file pdfsmartocr-0.1.4.tar.gz.

File metadata

  • Download URL: pdfsmartocr-0.1.4.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for pdfsmartocr-0.1.4.tar.gz
Algorithm Hash digest
SHA256 2c5ec516e34348594728867fafb3913f971f6fb1d3dc74ed74e14a56e2c04343
MD5 6db2432dccbbfdc2a2a78119e33f3a94
BLAKE2b-256 51fce27b83d8c6a793c8637b0a11ed550b3e793e317684cd45d2da125d1a3274

See more details on using hashes here.

File details

Details for the file pdfsmartocr-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: pdfsmartocr-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for pdfsmartocr-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c51f86fe61bd8d964fb47255c79ed2f8f1031a1b807ed11400081aebbc1f2636
MD5 854cb9033cc444a16a13583a3bc06275
BLAKE2b-256 5c36425874e1d0e116fa99a26cb6734ee2884fce1a79fa401b18fbb6f0742fb5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page