Digitalizar em batch e remover páginas em branco
Publicado por Raimundo Alves Portela (última atualização em 26/09/2011)
[ Hits: 8.493 ]
Homepage: http://portelanet.com
Script desenvolvido para automatizar a digitalização de documentos em batch (lote).
Permite que o usuário de um scanner com tal funcionalidade coloque os documentos no scanner e faça a digitalização e não precisa se preocupar em ver as páginas que tem conteúdo nas duas faces da página, pois o script já conta com uma rotina que remove os arquivos gerados em branco.
Testado em scanner Fujitsu e HP, coloquei o Kodak na lista, se tiverem problemas com alguns desses basta contactar-me informando o erro que podemos encontrar a solução.
Serve para tal utilidade e para o aprendizado.
#!/bin/bash # digitalizador.sh # Desenvolvido por: Raimundo Portela - rai3mb@gmail.com # Script desenvolvido para digitalizar documentos e fazer a # exclusão automática de páginas em branco (scanner que fazem várias páginas em batch). # Para usar: # ./digitalizador.sh [nome_do_arquivo] [ -z "$1" ] && echo "Sintaxe de uso: ./digitalizador.sh [nome_do_arquivo]" && exit export ARQUIVO="$1" export MARCA="DESCONHECIDO" func_menuMarca(){ echo "Qual a marca do seu scanner? 1 - hp 2 - fujitsu 3 - kodak Informe o número correspondente: " read OP case "$OP" in 1) MARCA="hp";; 2) MARCA="fuji";; 3) MARCA="kodak";; *) echo "Entrada inválida"; func_menuMarca ;; esac } func_menuMarca # localiza o dispositivo conectado echo "Configurando o scanner da marca $MARCA" export DISPOSITIVO=$(scanimage -L | egrep -o "$MARCA.*" | cut -d\' -f 1) func_deletaPagBranca() { local TEMPO="1" for i in $(ls -1 "$ARQUIVO"*.tif) do echo "Verificando imagem $i" # usa o tesseract para fazer OCR na imagem # quando houver conteúdo vai demorar mais de 1 segundo para terminar # quando não houver conteúdo o resultado é quase instantâneo tesseract "$i" /tmp/img_texto -l por & PID=$!; sleep $TEMPO; kill $PID 2>/dev/null if [ $? -eq 1 ]; then # significa que o killall deu erro porque o processo tesseract já havia terminado antes do sleep rm "$i" fi done } # trabalha no diretório temporário cd /tmp func_scan(){ #faz a digitalização echo "Iniciando a digitalização de $ARQUIVO" scanimage --device-name ${DISPOSITIVO:-DESCONHECIDO} --format=tiff --source "ADF Duplex" \ --batch-start="$CONF_BATCHSTART" --batch="$ARQUIVO%02d.tif" --batch-increment=1 [ "$?" -ne 0 ] && echo "Erro na digitalização" && exit 1 } export CONF_BATCHSTART="1" while : do func_scan echo "1 - Continuar digitalizando o documento $ARQUIVO" echo "2 - Finalizar" read OP case "$OP" in 1) CONF_BATCHSTART=$(ls -1 *.tif | wc -l) continue ;; 2) func_deletaPagBranca echo "agrupa paginas em tif multipagnado" tiffcp "$ARQUIVO"*.tif "$ARQUIVO"ok.tif [ $? -eq 1 ] echo "Erro de conversão" && rm "$ARQUIVO"ok.tif && exit 1 mv "$ARQUIVO"ok.tif "$OLDPWD" rm *.tif break;; *) echo "Entrada inválida" && continue ;; esac done
Substituir strings em arquivos ascII
Limpar o lixo das caixas de e-mail dos usuários que usam Maildir...
Script em Bash para gerenciar as novas versões do Java e permitir escolher a versão pa
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (14)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)