Digitalizar em batch e remover páginas em branco
Publicado por Raimundo Alves Portela (última atualização em 26/09/2011)
[ Hits: 8.807 ]
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
Converter Wav para MP3 usando Lame e PPSS para multi processamento via shell script - Asterisk
Acesso remoto via SSH sem senha
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como impedir exclusão de arquivos por outros usuários no (Linux)
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Formas seguras de instalar Debian Sid (1)
Alguém executou um rm e quase mata a Pixar! (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (5)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (4)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









