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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c5ec516e34348594728867fafb3913f971f6fb1d3dc74ed74e14a56e2c04343
|
|
| MD5 |
6db2432dccbbfdc2a2a78119e33f3a94
|
|
| BLAKE2b-256 |
51fce27b83d8c6a793c8637b0a11ed550b3e793e317684cd45d2da125d1a3274
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c51f86fe61bd8d964fb47255c79ed2f8f1031a1b807ed11400081aebbc1f2636
|
|
| MD5 |
854cb9033cc444a16a13583a3bc06275
|
|
| BLAKE2b-256 |
5c36425874e1d0e116fa99a26cb6734ee2884fce1a79fa401b18fbb6f0742fb5
|