Digitalizar em batch e remover páginas em branco
Publicado por Raimundo Alves Portela (última atualização em 26/09/2011)
[ Hits: 8.466 ]
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
Atualizando páginas automaticamente com Lynx
Script p/ instalar o modem pctel onboard
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - APAGANDO MSG ANTIGAS DA MBOX - TODOS OS USUARIOS
Facilitando algumas tarefas no CentOS 7
Nenhum comentário foi encontrado.
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
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Excluir banco de dados no xampp (1)
phpmyadmin não abre no xampp (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta