scanadf - acquire multiple images from a scanner equipped
with an ADF
scanadf [-d|--device-name dev] [-h|--help] [-L|--list-
devices] [-v|--verbose] [-V|--version] [-o|--output-file
name] [-S|--scan-script name] [-s|--start-count num]
[-e|--end-count num] [-r|--raw] [device-specific-options]
scanadf is a command-line interface to control image
acquisition devices which are capable of returning a
series of images (e.g. a scanner with an automatic docu-
ment feeder (ADF)). The device is controlled via command-
line options. After command-line processing, scanadf nor-
mally proceeds to acquire a series of images until the
device returns the SANE_STATUS_NO_DOCS status code.
The images are written to output files, specified by the
--output-file option. These files are typically written
in one of the PNM (portable aNyMaP) formats (PBM for
black-and-white images, PGM for grayscale images, and PPM
for color images). Several optional frame formats
(SANE_FRAME_JPEG, SANE_FRAME_G31D, SANE_FRAME_G32D,
SANE_FRAME_G42D, and SANE_FRAME_TEXT) are supported. In
each case, the data is written out to the output file as-
is without a header. Unrecognized frame formats are han-
dled in the same way, although a warning message is
printed in verbose mode.
Typically, the optional frame formats are used in conjunc-
tion with a scan script (specified by the --scanscript
option) which is invoked for each acquired image. The
script is provided with a series of environment variables
which describe the parameters and format of the image
scanadf accesses image acquisition devices through the
SANE (Scanner Access Now Easy) interface and can thus sup-
port any device for which there exists a SANE backend (try
"apropos sane-" to get a list of available backends).
The -d or --device-name options must be followed by a SANE
device-name. A (partial) list of available devices can be
obtained with the --list-devices option (see below). If
no device-name is specified explicitly, scanadf will
attempt to open the first available device.
The -h or --help options request help information. The
information is printed on standard output and in this
case, no attempt will be made to acquire an image.
of devices that are available. The list is not complete
since some devices may be available, but are not listed in
any of the configuration files (which are typically stored
in directory /usr/local/etc/sane.d). This is particularly
the case when accessing scanners through the network. If
a device is not listed in a configuration file, the only
way to access it is by its full device name. You may need
to consult your system administrator to find out the names
of such devices.
The -v or --verbose options increase the verbosity of the
operation of scanadf. The option may be specified repeat-
edly, each time increasing the verbosity level.
The -V or --version option requests that scanadf print the
program and package name, as well as the version number of
the SANE distribution that it came with.
The -o or --output-file option specifies a format string
used to generate the name of file to write the image data
to. You can use %d replacement in the output file name;
this will be replaced with the current page number. The
default format string is image-%04d.
The -S or --scan-script option specifies the name of
script to run after each scanned image is acquired. The
script receives the name of the image output file as its
first and only command line argument. Additionally the
scan script can reference the following environment vari-
ables to get information about the parameters of the
SCAN_RES - the image resolution (in DPI)
SCAN_WIDTH - the image width (in pixels)
SCAN_HEIGHT - the image height (in pixels)
SCAN_DEPTH - the image bit-depth (in bits)
SCAN_FORMAT - a string representing the image for-
mat (e.g. gray, g42d, text, etc)
SCAN_FORMAT_ID - the numeric image format identi-
The -s or --start-count option specifies the page number
of first scanned image.
The -e or --end-count option specifies the last page num-
ber to scan. Using this option, you can request a spe-
cific number of pages to be scanned, rather than scanning
be written to the output file as-is without interpreta-
tion. This disables the writing of the PNM header for
basic frame types. This feature is usually used in con-
junction with the --scan-script option where the scan
script uses the environment variables to understand the
format and parameters of the image and converts the file
to a more useful format. NOTE: With support for the
optional frame types and the default handling of unrecog-
nized frametypes, this option becomes less and less use-
As you might imagine, much of the power of scanadf comes
from the fact that it can control any SANE backend. Thus,
the exact set of command-line options depends on the capa-
bilities of the selected device. To see the options for a
device named dev, invoke scanadf via a command-line of the
scanadf --help --device dev
The documentation for the device-specific options printed
by --help is explained in the manual page for scanimage.
This directory holds various configuration files.
For details, please refer to the manual pages
scanadf is an adaptation by Tom Martone of scanimage by
David Mosberger, Andreas Beck, and Gordon Matzigkeit fol-
lowing closely the features of bnhscan by Sean Reifschnei-
der of tummy.com, ltd.
Please send reports to email@example.com
This program relies on the backend to return the SANE_STA-
TUS_NO_DOCS status code when the automatic document feeder
is out of paper. Use of this program with backends that
do not support ADFs (e.g. flatbed scanners) will likely
result in repeated scans of the same document. In this
case, it is essential to use the start-count and end-count
to control the number of images acquired.
return SANE_STATUS_NO_DOCS appropriately. Backends which
are known to work at this time are:
sane-bh - Bell+Howell Copiscan II series scanners.
sane-hp - Hewlett Packard scanners. A patch to the
sane-hp backend is necessary. The --scantype=ADF
option must be specified (earlier versions of the
backend used the --scan-from-adf option, instead).
sane-umax - UMAX scanners. Support exists in build
12 and later. The --source="Automatic Document
Feeder" option must be specified.
Man(1) output converted with