LINUX.ORG.RU

Посоветуйте программу для удобного сканирования документов


0

2

Здравствуйте!

Посоветуйте что-то типа аналога программы IDM Scan под Windows, чтобы умела сама задавать имена файлов и сканировать с предустановками одной кнопкой и делать экспорт в многостраничный TIFF. И желательно встроенный поиск. Нужно для МФУ HP.

#!/bin/bash

set -u
set -e

nstart=1
nstep=1
nmax=1000
zeros=0
format='auto'
dpi=300
mode='Black and White - Line Art'
threshold=170
extra=''
script=$(basename "$0")
tmpfile=/tmp/$script.tmp

usage()
{
    cat <<USAGE
Usage: $script [options]

Options (defaults are in brackets):

    -s <number>      Starting number ($nstart)
    -i <number>      Increment number ($nstep)
    -m <number>      Maximum number ($nmax)
    -z <number>      Additional number of leading zeros ($zeros)

    -f tiff,pnm,pgm  Output format ($format)*
    -d <dpi>         Resolution ($dpi)
    -t <threshold>   white threshold for B/W scanning ($threshold)
    -c <string>      Color mode, scanner specific ($mode)+
    -e 'opts'        Explicit scanimage options, see 'scanimage --help'

    -h, -?           This help message

Examples:
    "$script -s 3 -i 2 -m 30"       - will scan into files 03.tiff, 05.tiff, ..., 29.tiff
    "$script -s 3 -i 2 -m 30 -z 2"  - will scan into files 0003.tiff, 0005.tiff, ..., 0029.tiff

--------------
* Should be set to scanner default or may cause problems,
  e. g. 'pgm' for HP LaserJet M1005 MFP and 'tiff' for Samsung SCX 4100 MFP

+ Use -c Gray for HP LaserJet M1005 MFP
  Use -c Binary for Epson

USAGE
exit 0

}

while getopts e:d:s:i:m:z:f:c:t:h? opt; do
    case $opt in
        e) extra=$OPTARG;;
        d) dpi=$OPTARG;;
        s) nstart=$OPTARG;;
        i) nstep=$OPTARG;;
        m) nmax=$OPTARG;;
        z) zeros=$OPTARG;;
        f) format=$OPTARG;;
        c) mode=$OPTARG;;
        t) threshold=$OPTARG;;
        *) usage;;
    esac
done
shift $(expr  $OPTIND - 1)

((zeros += $(echo -n "$nmax" | wc -m)))
fformat="%0${zeros}.0f"
n=$nstart

if [ "$format" == 'auto' ]; then
    echo "Trying to detect driver default format."
    scanimage --mode="$mode" > "$tmpfile"
    ff=$(file "$tmpfile")
    case $ff in
        *"Netpbm PGM"*) format='pgm';;
        *"Netpbm PPM"*) format='ppm';;
        *"Netpbm PBM"*) format='pbm';;
        *"TIFF"*)       format='tiff';;
        *) format='tiff'; echo "FIXME: unknown format: $ff";;
    esac
fi

scan='scanimage'
[ -n "$mode" ]       && scan+=" --mode='$mode'"
[ -n "$format" ]     && scan+=" --format='$format'"
[ -n "$dpi" ]        && scan+=" --resolution='$dpi'"
[ -n "$threshold" ]  && scan+=" --threshold='$threshold'"
[ -n "$extra" ]      && scan+=" $extra"

echo ""
echo "Starting from $n to $nmax by $nstep, format $format"
echo "With command: $scan"
echo ""

while [ "$n" -le "$nmax" ]; do
    f=$(printf "$fformat" $n)
    echo -n "Next $f, press <Enter> to scan or type a different number: "
    read new
    if [ -n "$new" ]; then
        n=$new
        f=$(printf "$fformat" $n)
    fi
    eval $scan > $f.$format
    ((n += nstep))
done


exit 0
anonymous
()

xsane нужен тебе, падаван юный. Коль хочешь ты автоматизировать работу свою больше, используй скрипт башевский со scanimage

Anon
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.