Digitalizar em batch e remover páginas em branco
Publicado por Raimundo Alves Portela (última atualização em 26/09/2011)
[ Hits: 8.505 ]
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
Instalar última versão do Java automaticamente em "todas as plataformas"
Instalador .tar.bz2 com menu gráfico Zenity
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
Seria referente ao Kali Linux (4)
Como mudsr a resolução da tela de login no KDE? (2)
Como ordenar datas corretamente usando o Calc? (3)