Projeto: Scanned Document Organizer
Software desenvolvido para automatizar a organização dos documentos escaneados para GED
O software em questão está disponível para download em: Releases Scanned-Document-Organizer.
O grande objetivo do meu estágio foi desenvolver um sistema de Gerenciamento Eletrônico de Documentos, GED, para a gestão dos documentos pessoais dos funcionários públicos da SEFAZ/SE. Para isso, os documentos impressos são digitalizados, e depois eles precisavam ser organizados de forma padronizada e tipificada para no fim alimentar o servidor de arquivo e banco de dados com as informações.
Desenvolvi esse projeto com o objetivo de automatizar o processo de organização e tipificação dos documentos digitalizados. Dei o nome de Scanned Document Organizer, e esse software ainda é utilizado para organização dos documentos.
Organização
Ao escanear as páginas, cada documento é separado por uma folha de papel preta, dessa forma, o programa detecta a folha preta e limita a organização àquele documento.
O software recebe como entrada, as páginas dos documentos em formato de imagem, incluindo as páginas em branco (fundo das folhas) e pretas. E devolve as páginas separadas em documentos, organizadas em diretórios.
Ao final, o diretório dos arquivos digitalizados fica organizado com os documentos separados em diretórios nomeados com a data, protocolo e ou comunicação interna, que são numerações inclusas nos documentos. E em cada diretório fica suas páginas no formato de imagem, nomeadas com a tipificação do documento, junto com uma numeração timestamp para ordenação.
Recursos
Esse vídeo mostra o programa em uso:
As funcionalidades foram surgindo no decorrer da utilização, dentre as funções, posso introduzir, a opção de conversão de páginas PDF para JPG, acrescentada para suprir uma necessidade que surgiu.
Além dessa função, o software apresenta recursos como:
- Auto detecção da data, protocolo e tipo de documento
- Navegação entre as páginas
- Feedback do total de páginas do documento e número da página atual
- Link para o diretório e link para visualizar a página no programa padrão do SO
- Zoom nas páginas
- Tipos de documentos organizados de forma a facilitar a escolha
- Classificação de Portarias por número das páginas
- Formatação inteligente da data, protocolo e da comunicação interna
- Visualização rápida, frente e verso da folha preta
- Atalhos do teclado para agilizar o trabalho
- Opção de ver o texto extraído
- Rotação da imagem
- Opção de enviar todo o restante das páginas para o diretório Arquivos
- Botão para catar folha branca, usado caso o detector não identifique
Construção
O projeto foi construído na linguagem de programação Java, mais especificamente JavaFX. Confesso que optei por essa plataforma por questão visual e por facilidade no desenvolvimento da GUI.
Com isso, pude focar na parte funcional, uma delas é o detector de preto e branco, assim foi possível identificar as páginas que são brancas e separa-las em um diretório específico, assim como as folhas pretas que servem para limitar os documentos.
Como é mostrado no vídeo, quando um documento é organizado, o próximo documento muitas vezes surge com informações previamente preenchidas em seu respectivo lugar, isso acontece porquê as primeiras páginas de cada documento são reduzidas e enviadas para o tess4j, biblioteca Tesseract OCR para Java, ao passar pelo Tesseract, ele retorna o texto extraído daquela página, assim, por meio de expressão regular são detectadas e selecionadas as informações relevantes, como: data, protocolo e tipo de documento.
Mas não é apenas capturar data, protocolo ou tipo de documento, a exemplo da data, existe várias datas em uma única página, inclusive datas com meses escritos por extenso e isso foi pensado para obter a melhor data, de mesma forma, o algoritmo foi desenvolvido para obter a melhor informação possível.
Para agilizar o processo de extração de texto e seleção de conteúdo relevante, esse processo é realizado em uma outra thread, como se fosse em segundo plano, ficando imperceptível para o usuário final.
A junção dessa tecnologia em pró da automatização ficou interessante de ver. O código fonte desse projeto está no repositório: Scanned-Document-Organizer.