터미널에서 Linux의 문서를 자동으로 스캔하는 방법은 무엇입니까?

터미널에서 Linux의 문서를 자동으로 스캔하는 방법은 무엇입니까?

프린터가 설정된 간격으로 문서를 자동으로 스캔하도록 하여 매번 컴퓨터의 버튼을 클릭하지 않고도 문서를 교체하고 스캔할 수 있도록 하고 싶습니다. 또한 문서를 특정 이미지 형식과 품질로 저장할 수 있어야 합니다. 바람직하게는 bash 스크립트에서 이 작업을 수행하여 모든 배포판에서 작동하도록 하고 싶습니다. 어떻게 해야 하나요?

답변1

이 목적을 위해 특별히 스크립트를 만들었습니다.https://github.com/aaronfranke/Linux-tools/blob/master/all-distros/autoscan.sh

실행하기 전에 상단의 변수를 편집하세요. 를 실행하여 찾을 수 있는 프린터의 주소를 지정해야 합니다 scanimage -L. 시간 간격, 형식 및 품질(PPI)을 지정할 수도 있습니다. 이 스크립트는 스캔한 이미지를 임의의 6자 파일 이름으로 저장합니다.

참고: 이 스크립트에는 설치 scanimage와 명령이 필요합니다.mogrify

#!/bin/bash

# autoscan.sh - A script for automatically scanning from a printer/scanner and saving to a random file.

# Must be set to your printer's address. Use `scanimage -L` to get a list of printers.
PRINTER="hpaio:/net/OfficeJet_4650_series?ip=192.168.0.100"

# Optional variables, feel free to adjust.
TIME=30     # TIME (in seconds), should be at least 10.
FORMAT=jpg  # FORMAT must be understood by mogrify. Ex: jpg, png, tiff, bmp.
QUALITY=200 # QUALITY must be supported by your printer. Common ones are 300, 200, 150, and 75.




if [ ! -f /usr/bin/scanimage ]; then
    echo "This script requires the \`scanimage\` command, which was not found. Exiting. "
    exit 1
fi
if [ ! -f /usr/bin/mogrify ]; then
    echo "This script requires the \`mogrify\` command from the \`imagemagick\` package, which was not found. Exiting. "
    exit 2
fi

echo " "
echo "Computer will start automatically scanning in a few seconds... "
SLTIME=$(($TIME-5))
sleep 5

while true; do
    FILENAME=$(mktemp -u XXXXXX)
    echo " "
    echo "Scanning and saving to $FILENAME.$FORMAT... "
    scanimage -d $PRINTER --mode Color --resolution $QUALITY --format tiff > $FILENAME.tiff 2>/dev/null
    mogrify -format $FORMAT $FILENAME.tiff
    rm $FILENAME.tiff
    echo " "
    echo "Done scanning $FILENAME.$FORMAT, waiting $TIME seconds for next scan... "
    sleep $SLTIME
    echo " "
    echo "5... "
    sleep 1
    echo "4... "
    sleep 1
    echo "3... "
    sleep 1
    echo "2... "
    sleep 1
    echo "1... "
    sleep 1
done

관련 정보