Digitalizar em batch e remover páginas em branco
Publicado por Raimundo Alves Portela (última atualização em 26/09/2011)
[ Hits: 8.811 ]
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
Front-end para administração do Samba
Script p/ instalar o modem pctel onboard
Script para autenticar usuario ip fixo speedy
Gera estatísticas de tráfego de pacotes nas interfaces de um servidor linux via SNMPv3.
Claro 3g Sony Ericsson md300 script conexao
Nenhum comentário foi encontrado.
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Script de montagem de chroot automatica
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (14)
Instalação do cosmic no archlinux (1)
De volta para o futuro - ou melhor, para o presente (parte 2) (2)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (7)









