Digitalizar em batch e remover páginas em branco
Publicado por Raimundo Alves Portela (última atualização em 26/09/2011)
[ Hits: 8.888 ]
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
Criação de servidores de arquivos simples com Samba
Editor de configurações para Tint2
Instalação do Cisco Packettracer 7.2 no Debian 10
Agenda desenvolvida em Shell Script
Nenhum comentário foi encontrado.
Porque Gentoo semi-binário atualmente (desabafo)
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Instalando SVP4 e MPV (VapourSynth) no Gentoo
Migração do KDE Plasma para Cinnamon no Gentoo (com systemd) + Tema Colloid
Como desativar a economia de energia no Gentoo (Systemd, Wi-Fi, USB e SSH)
Instalador não reconhece SSD Sata. (15)
como deixo uma inferface grafica abrir automaticamente (5)









