Skip to content

Repository files navigation

# OCRmyPDF - Processador Automático de OCR para PDFs Sistema automatizado para processamento de OCR em arquivos PDF usando monitoramento de pastas. ## 📋 Características - ✅ Monitoramento automático de pastas com **watchdog** - ✅ Processamento com **OCRmyPDF** (motor principal - usa Tesseract) - ✅ Logs estruturados com rotação - ✅ Tratamento de erros robusto - ✅ Organização automática de arquivos (processed/failed) - ✅ Suporte a múltiplos idiomas - ✅ Processamento em lote automático ## 🚀 Instalação ### Pré-requisitos 1. **Python 3.8+** 2. **Tesseract OCR** (obrigatório) 3. **Ghostscript** (recomendado para alguns tipos de PDF) #### Instalar Tesseract OCR **Windows:** - Baixe: https://github.com/UB-Mannheim/tesseract/wiki - Instale e marque "Add to PATH" - Selecione idiomas: Portuguese e English - Consulte `INSTALAR_TESSERACT.md` para instruções detalhadas **Verificar instalação:** ```powershell tesseract --version ``` #### Instalar Ghostscript **Windows:** - Baixe: https://www.ghostscript.com/download/gsdnld.html - Instale e marque "Add to PATH" - Consulte `INSTALAR_GHOSTSCRIPT.md` para instruções detalhadas ### Instalar Dependências Python ```bash python -m pip install -r requirements.txt ``` **Nota no Windows:** Use `python -m pip` em vez de `pip` diretamente. ## 📁 Estrutura de Pastas O sistema cria automaticamente as seguintes pastas: ``` OCRmyPDF/ ├── input/ # Coloque seus PDFs aqui ├── output/ # PDFs processados com OCR ├── processed/ # PDFs originais após processamento ├── failed/ # PDFs que falharam no processamento └── logs/ # Arquivos de log ``` ## 🎯 Uso ### Modo Monitoramento (Recomendado) **Windows - Forma mais fácil:** 1. **Duplo clique em:** `INICIAR_WATCHDOG.bat` 2. O sistema iniciará automaticamente e ficará monitorando a pasta `input/` 3. **Mantenha a janela aberta** (ou minimize, mas não feche) **Ou via linha de comando:** ```bash python ocr_watcher.py ``` **Verificar se está rodando:** ```powershell .\status_watchdog.ps1 ``` **Monitorar em tempo real:** ```powershell .\monitorar_tempo_real.ps1 ``` O sistema ficará monitorando a pasta `input/` e processará automaticamente qualquer PDF que for adicionado. **Importante:** - ⚠️ O watchdog **DEVE estar rodando** para detectar arquivos automaticamente - Arquivos que já estavam na pasta serão processados quando o watchdog iniciar - Novos arquivos colocados na pasta serão detectados em menos de 1 segundo - Veja `COMANDOS.md` para lista completa de comandos ### Processamento Manual Para processar um arquivo específico, use o script: ```bash python processar_arquivo.py ``` Ou via código Python: ```python from ocr_processor import OCRProcessor from pathlib import Path processor = OCRProcessor() file_path = Path('input/meu_arquivo.pdf') processor.process_file(file_path) ``` ## ⚙️ Configuração ### Configurador Visual de Pastas (NOVO!) Para adicionar/remover pastas de forma fácil, use o **configurador visual**: **Windows - Forma mais fácil:** 1. **Duplo clique em:** `configurar_pastas.bat` 2. Uma janela gráfica abrirá 3. Clique em "Adicionar Pasta" para adicionar novas pastas 4. Clique em "Salvar Configuração" para aplicar 5. Reinicie o watchdog para usar as novas pastas ### Múltiplas Pastas de Input/Output O sistema suporta monitorar **múltiplas pastas simultaneamente**: - Cada pasta de input tem sua própria pasta de output - Pastas `processed/`, `failed/` e `logs/` são compartilhadas **Como adicionar pastas:** 1. **Usando o script interativo** (recomendado): ```bash configurar_pastas.bat ``` Ou: ```bash python configurar_pastas.py ``` 2. **Editando manualmente `config.py`**: ```python INPUT_OUTPUT_PAIRS = [ { 'input': BASE_DIR / 'input', 'output': BASE_DIR / 'output', }, { 'input': BASE_DIR / 'input2', 'output': BASE_DIR / 'output2', }, { 'input': Path('C:/Outra/Pasta/Input'), 'output': Path('C:/Outra/Pasta/Output'), }, ] ``` 3. **Reinicie o watchdog** após adicionar pastas ### Configuração Manual Edite o arquivo `config.py` para personalizar: - **Pastas**: Caminhos de input/output/processed/failed/logs - **OCR**: Idioma, otimização, correções - **Monitoramento**: Padrões de arquivo, recursividade - **Logs**: Nível de log, tamanho máximo, rotação ### Exemplo de Configuração ```python # Idioma do OCR (inglês - ajuste conforme idiomas instalados no Tesseract) OCR_CONFIG['ocrmypdf_language'] = 'eng' # ou 'por+eng' se tiver português instalado # Timeout por arquivo (segundos) OCR_CONFIG['timeout_seconds'] = 600 # 10 minutos # Tamanho máximo de arquivo (bytes) FILE_CONFIG['max_file_size'] = 100 * 1024 * 1024 # 100MB # Sufixo para arquivos processados FILE_CONFIG['output_suffix'] = '_ocr' ``` ## 📊 Logs Os logs são salvos em `logs/ocr_processor.log` com rotação automática: - Máximo de 10MB por arquivo - Mantém 5 backups - Formato: data, nível, mensagem ## 🔧 Troubleshooting ### Problema com DLLs bloqueadas (Windows AppLocker) Se você encontrar erros como: ``` ImportError: DLL load failed while importing _imaging ``` **Solução:** O sistema usa OCRmyPDF via subprocess para contornar este problema. Se persistir: 1. Configure exceção na política de segurança (requer admin) 2. Ou use apenas Tesseract direto (já configurado como fallback) ### Tesseract não encontrado **Windows:** - Verifique se o Tesseract está instalado: `tesseract --version` - Se não funcionar, adicione ao PATH manualmente: - Caminho padrão: `C:\Program Files\Tesseract-OCR` - Adicione `C:\Program Files\Tesseract-OCR` ao PATH do sistema - Reinicie o terminal após adicionar ao PATH ### Ghostscript não encontrado **Windows:** - Verifique se o Ghostscript está instalado - Alguns PDFs podem ser processados sem Ghostscript, mas outros requerem - Consulte `INSTALAR_GHOSTSCRIPT.md` para instruções ### "pip não é reconhecido" No Windows, use: ```bash python -m pip install -r requirements.txt ``` ### Erro de permissão Verifique se as pastas têm permissão de escrita. ### Arquivo muito grande Ajuste `FILE_CONFIG['max_file_size']` em `config.py`. ### Timeout Aumente `OCR_CONFIG['timeout_seconds']` para arquivos grandes ou complexos. ### Idioma português não encontrado Se você instalou o Tesseract sem o pacote de idioma português: - Reinstale o Tesseract e selecione "Portuguese" durante a instalação - Ou baixe manualmente de: https://github.com/tesseract-ocr/tessdata - Coloque o arquivo `.traineddata` em: `C:\Program Files\Tesseract-OCR\tessdata` ## 📝 Notas - O sistema processa arquivos sequencialmente por padrão - Arquivos duplicados são ignorados automaticamente - PDFs já com texto são processados normalmente (force-ocr) - Arquivos em uso ou com erro são movidos para `failed/` - O arquivo original é preservado em `processed/` após processamento bem-sucedido - O PDF processado é salvo em `output/` com sufixo `_ocr` ## 🔄 Fluxo de Processamento 1. **Detecção**: Watchdog detecta novo PDF em `input/` 2. **Validação**: Verifica tamanho, formato, permissões 3. **Processamento**: OCRmyPDF aplica OCR usando Tesseract 4. **Otimização**: PDF é otimizado e linearizado 5. **Organização**: Move original para `processed/` ou `failed/` 6. **Saída**: Salva PDF com OCR em `output/` com sufixo `_ocr` ### Vantagens do OCRmyPDF - ✅ **Integração completa** - Processa PDF diretamente, sem conversão manual - ✅ **Mantém layout original** - Preserva formatação e imagens - ✅ **PDF pesquisável** - Adiciona camada de texto pesquisável - ✅ **Otimização automática** - Reduz tamanho do arquivo quando possível - ✅ **Suporte a múltiplos idiomas** - Configurável via Tesseract - ✅ **Robusto e maduro** - Ferramenta amplamente testada e estável ## 📄 Licença Este projeto é de código aberto. ## 🤝 Contribuindo Sugestões e melhorias são bem-vindas! # ocr

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages