Sávio Andres

Banner postagem: Projeto: Scanned Document Organizer

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.