sane-pint.5



sane-pint(5)             SANE Scanner Access Now Easy             sane-pint(5)


NAME

       sane-pint - SANE backend for scanners that use the PINT device driver


DESCRIPTION

       The sane-pint library implements a SANE (Scanner Access Now Easy) back-
       end  that provides generic access to hand-held and flatbed scanners us-
       ing the PINT (PINT Is Not Twain) device driver.  The PINT driver is be-
       ing actively developed on the OpenBSD platform, and has been ported  to
       a few other *NIX-like operating systems.

       PINT  is  designed  to  provide an ioctl(2) interface to many different
       scanner types.  However, this backend has only been tested with flatbed
       single-pass scanners, and more work will probably be required to get it
       to use other scanner types successfully.

       If have successfully used the PINT driver with  your  scanner,  but  it
       does not work using this SANE backend, please let us know.  To do this,
       send  a mail with the relevant information for your scanner to sane-de-
       vel@alioth-lists.debian.net.        Have        a        look        at
       http://www.sane-project.org/mailing-lists.html  concerning subscription
       to sane-devel.


DEVICE NAMES

       This backend expects device names of the form:

              special

       Where special is the UNIX path-name for the special device that  corre-
       sponds  to  the scanner.  The special device name must be a PINT device
       or a symlink to such a device.  For example, under NetBSD  or  OpenBSD,
       such a device name could be /dev/ss0 or /dev/scan0.


CONFIGURATION

       The  contents  of  the  pint.conf.  file is a list of device names that
       correspond to PINT scanners.  Empty lines and  lines  starting  with  a
       hash mark (#) are ignored.  A sample configuration file is shown below:

              /dev/scanner
              # this is a comment
              /dev/ss1


FILES

       /usr/local/etc/sane.d/pint.conf
              The   backend   configuration  file  (see  also  description  of
              SANE_CONFIG_DIR below).

       /usr/local/lib/sane/libsane-pint.a
              The static library implementing this backend.

       /usr/local/lib/sane/libsane-pint.so
              The shared library implementing this backend (present on systems
              that support dynamic loading).


ENVIRONMENT

       SANE_CONFIG_DIR
              This environment variable specifies the list of directories that
              may contain the configuration file.  On *NIX systems, the direc-
              tories are separated by a colon (`:'), under OS/2, they are sep-
              arated by a semi-colon (`;').  If this variable is not set,  the
              configuration  file  is  searched  in  two  default directories:
              first, the current working directory (".") and then in  /usr/lo-
              cal/etc/sane.d.   If  the value of the environment variable ends
              with the directory separator character, then the default  direc-
              tories  are searched after the explicitly specified directories.
              For example, setting SANE_CONFIG_DIR to "/tmp/config:" would re-
              sult in directories tmp/config, ., and /usr/local/etc/sane.d be-
              ing searched (in this order).

       SANE_DEBUG_PINT
              If the library was compiled with debug support enabled, this en-
              vironment variable controls the debug level  for  this  backend.
              E.g.,  a  value  of 128 requests all debug output to be printed.
              Smaller levels reduce verbosity.


SEE ALSO

       sane(7)


AUTHOR

       Gordon Matzigkeit, adapted from existing backends written by David Mos-
       berger.


BUGS

       There are minor roundoff errors when adjusting the ranges,  since  PINT
       uses  units  of  1/1200 of an inch, and SANE normally uses millimeters.
       Symptoms of these errors are skewed  images.   This  should  really  be
       fixed (no pun intended) as soon as possible, but I just don't know/care
       enough  about fixed-point representation and roundoff errors to do this
       correctly.  Workaround: use inches as the scanning unit, and everything
       usually works fine.

       The PINT 0.5e interface does not  provide  a  way  to  determine  valid
       ranges  for  DPI,  modes, and scan sizes.  So, the SANE backend queries
       the PINT device, and dynamically discovers valid ranges by doing a  bi-
       nary  search.   This  means  that the driver takes longer to initialize
       than seems necessary.

       Resetting the scanner does not seem to work (at  least  not  on  my  HP
       ScanJet  4p).   For  that reason, the driver sends a SCIOCRESTART, then
       gobbles up any remaining input until it hits EOF.

       Not all of the scanners have been identified  (i.e.  whether  they  are
       flatbed or handheld).

       X and Y resolutions are assumed to be the same.

       No  testing  has  been done on three-pass or handheld scanners, or with
       Automatic Document Feeder support.

                                  14 Jul 2008                     sane-pint(5)

Man(1) output converted with man2html