summaryrefslogtreecommitdiff
path: root/doc/sane-bh.man
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sane-bh.man')
-rw-r--r--doc/sane-bh.man547
1 files changed, 547 insertions, 0 deletions
diff --git a/doc/sane-bh.man b/doc/sane-bh.man
new file mode 100644
index 0000000..8306976
--- /dev/null
+++ b/doc/sane-bh.man
@@ -0,0 +1,547 @@
+.TH sane\-bh 5 "10 Jul 2008" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy"
+.IX sane\-bh
+.SH NAME
+sane\-bh \- SANE backend for Bell+Howell Copiscan II series document
+scanners
+.SH DESCRIPTION
+The
+.B sane\-bh
+library implements a SANE (Scanner Access Now Easy) backend that
+provides access to Bell+Howell Copiscan II series document
+scanners. The Copiscan II 6338 has been the primary scanner model
+used during development and testing, but since the programming interface
+for the entire series is consistent the backend should work for the
+following scanner models.
+.PP
+.RS
+COPISCAN II 6338 Duplex Scanner with ACE
+.br
+COPISCAN II 2135 Simplex Scanner
+.br
+COPISCAN II 2137(A) Simplex Scanner (with ACE)
+.br
+COPISCAN II 2138A Simplex Scanner with ACE
+.br
+COPISCAN II 3238 Simplex Scanner
+.br
+COPISCAN II 3338(A) Simplex Scanner (with ACE)
+.br
+.RE
+.PP
+If you have a Bell+Howell scanner and are able to test it with this
+backend, please contact
+.IR sane\-devel@lists.alioth.debian.org
+with the model number and testing results. Have a look at
+http://www.sane\-project.org/mailing\-lists.html concerning subscription to
+sane\-devel. Additionally, the author is curious as to the likelihood of using
+this backend with the newer 4000 and 8000 series scanners. If you have such a
+beast, please let me know.
+.PP
+The Bell+Howell Copiscan II series document scanners are high
+volume, high throughput scanners designed for document scanning
+applications. As such, they are lineart/grayscale scanners supporting
+a fixed number of fairly low resolutions (e.g. 200/240/300dpi).
+However, they do have a number of interesting and useful features
+suited to needs of document imaging applications.
+This backend attempts to support as many of these features as possible.
+.PP
+The main technical reference used in writing this backend is the
+.B Bell and Howell Copiscan II Remote SCSI Controller (RSC) OEM
+.B Technical Manual Version 1.5.
+The Linux SCSI programming HOWTO, the SANE API documentation, and
+SANE source code were also extremely valuable resources.
+
+.PP
+The latest backend release, additional information and helpful hints
+are available from the backend homepage:
+.br
+.RS
+.B http://www.martoneconsulting.com/sane\-bh.html
+.RE
+.SH "DEVICE NAMES"
+This backend expects device names of the form:
+.PP
+.RS
+.I special
+.RE
+.PP
+Where
+.I special
+is the path-name for the special device that corresponds to a SCSI
+scanner. For SCSI scanners, the special device name must be a generic
+SCSI device or a symlink to such a device. Under Linux, such a device
+name takes a format such as
+.I /dev/sga
+or
+.IR /dev/sg0 ,
+for example. See sane\-scsi(5) for details.
+.SH CONFIGURATION
+The contents of the
+.I bh.conf
+file is a list of device names that correspond to Bell+Howell
+scanners. See sane\-scsi(5) on details of what constitutes a valid device name.
+Additionally, options can be specified; these lines begin with the word "option".
+Each option is described in detail below. Empty lines and lines starting
+with a hash mark (#) are ignored.
+
+.SH OPTIONS
+The following options can be specified in the
+.I bh.conf
+file.
+.TP
+.B disable\-optional\-frames
+This option prevents the backend from sending any optional frames. This
+option may be useful when dealing with frontends which do not support these
+optional frames. When this option is in effect, the data is sent in a
+SANE_FRAME_GRAY frame. The optional frames sent by this backend are:
+SANE_FRAME_G31D, SANE_FRAME_G32D, SANE_FRAME_G42D and SANE_FRAME_TEXT.
+These frames are generated based on the compression and barcode options.
+These frames are never sent in preview mode.
+.TP
+.B fake\-inquiry
+This option is used for debugging purposes and its use is not encouraged.
+Essentially, it allows the backend to initialize in the absence of
+a scanner. This is useful for development and not much else.
+This option must be specified earlier in the configuration file than
+the devices which are to be "faked".
+
+.SH FILES
+.TP
+.I @CONFIGDIR@/bh.conf
+The backend configuration file (see also description of
+.B SANE_CONFIG_DIR
+below).
+.TP
+.I @LIBDIR@/libsane\-bh.a
+The static library implementing this backend.
+.TP
+.I @LIBDIR@/libsane\-bh.so
+The shared library implementing this backend (present on systems that
+support dynamic loading).
+.SH ENVIRONMENT
+.TP
+.B SANE_CONFIG_DIR
+This environment variable specifies the list of directories that may
+contain the configuration file. Under UNIX, the directories are
+separated by a colon (`:'), under OS/2, they are separated 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 @CONFIGDIR@. If the value of the
+environment variable ends with the directory separator character, then
+the default directories are searched after the explicitly specified
+directories. For example, setting
+.B SANE_CONFIG_DIR
+to "/tmp/config:" would result in directories "tmp/config", ".", and
+"@CONFIGDIR@" being searched (in this order).
+.TP
+.B SANE_DEBUG_BH
+If the library was compiled with debug support enabled, this
+environment variable controls the debug level for this backend. E.g.,
+a value of 255 requests all debug output to be printed. Smaller
+levels reduce verbosity.
+
+.SH "SUPPORTED FEATURES"
+.TP
+.B ADF support
+With document scanners, automatic document feeder (ADF) support is a key
+feature. The backend supports the ADF by default and returns
+.B SANE_STATUS_NO_DOCS
+when the out-of-paper condition is detected. The SANE frontend
+.B scanadf
+is a command line frontend that supports multi-page scans. It has been
+used successfully with this backend. The SANE frontend
+.B xsane
+is an improved GUI frontend by Oliver Rauch. Support for multi-page
+scans is included in xsane version 0.35 and above.
+
+.TP
+.B Duplex scanning
+Some models, such as the COPISCAN II 6338, support duplex scanning. That
+is, they scan both sides of the document during a single pass through the
+scanner (the scanner has two cameras). This backend supports duplex
+scanning (with the
+.B \-\-duplex
+option). The front and back page images are delivered consecutively
+as if they were separately scanned pages.
+
+.TP
+.B Hardware compression
+The scanner is capable of compressing the data into several industry
+standard formats (CCITT G3, CCITT G3-2D, CCITT G4). This results in
+increased performance as less data is passed from the scanner to the
+host over the SCSI bus. The backend supports these compression formats
+via the
+.B \-\-g31d, \-\-g32d, \-\-g42d
+options, respectively. Many SANE frontends are not equipped to deal with
+these formats, however. The SANE frontend
+.B scanadf
+supports these optional frame formats. The compressed image data
+is written directly to a file and can then be processed by a scan-script
+using the
+.B \-\-scan\-script
+option. Examples of this are given on the scanadf homepage.
+
+.TP
+.B Automatic Border Detection
+The scanner can automatically detect the paper size and adjust the
+scanning window geometry appropriately. The backend supports this
+useful feature with the
+.B \-\-autoborder
+option. It is enabled by default.
+
+.TP
+.B Batch Mode Scanning
+The batch scan mode allows for maximum throughput. The Set Window
+parameters must remain constant during the entire batch.
+
+.TP
+.B Icon Generation
+The Icon function generates a thumbnail of the full page image, that can be
+transferred as if it were a separate page. This allows the host to
+quickly display a thumbnail representation during the scanning operation.
+Perhaps this would be a great way of implementing a preview scan, but
+since a normal scan is so quick, it might not be worth the trouble.
+
+.TP
+.B Multiple Sections
+Multiple sections (scanning sub-windows) can be defined for the front and
+back pages. Each section can have different characteristics (e.g. geometry,
+compression). The sections are returned as if they were separately
+scanned images. Additionally sections can be used to greatly enhance the
+accuracy and efficiency of the barcode/patchcode decoding process by
+limiting the search area to a small subset of the page. Most Copiscan II
+series scanners support up to 8 user-defined sections.
+
+.TP
+.B Support Barcode/Patchcode Decoding
+The RSC unit can recognize Bar and Patch Codes of various types embedded
+in the scanned image. The codes are decoded and the data is returned to
+the frontend as a text frame. The text is encoded in xml and contains
+a great deal of information about the decoded data such as the location
+where it was found, its orientation, and the time it took to find.
+Further information on the content of this text frame as well as some
+barcode decoding examples can be found on the backend homepage.
+
+.SH LIMITATIONS
+.TP
+.B Decoding a single barcode type per scan
+The RSC unit can search for up to six different barcode types at a time.
+While the code generally supports this as well, the
+.B \-\-barcode\-search\-bar
+option only allows the user to specify a single barcode type.
+Perhaps another option which allows a comma separated list of barcode
+type codes could be added to address this.
+.TP
+.B Scanning a fixed number of pages in batch mode
+The separation of front and back end functionality in SANE presents a
+problem in supporting the 'cancel batch' functionality in the scanner.
+In batch mode, the scanner is always a page ahead of the host. The host,
+knowing ahead of time which page will be the last, can cancel batch mode
+prior to initiating the last scan command. Currently, there is no mechanism
+available for the frontend to pass this knowledge to the backend.
+If batch mode is enabled and the \-\-end\-count terminates a scanadf session,
+an extra page will be pulled through the scanner, but is neither read
+nor delivered to the frontend. The issue can be avoided by specifying
+\-\-batch=no when scanning a fixed number of pages.
+.TP
+.B Revision 1.2 Patch detector
+There is an enhanced patchcode detection algorithm available in the RSC
+with revision 1.2 or higher that is faster and more reliable than the
+standard Bar/Patch code decoder. This is not currently supported.
+
+.SH OPTIONS
+.TP
+.B Scan Mode Options:
+.TP
+.B \-\-preview[=(yes|no)] [no]
+Request a preview-quality scan. When preview is set to yes image
+compression is disabled and the image is delivered in a
+SANE_FRAME_GRAY frame.
+.TP
+.B \-\-mode lineart|halftone [lineart]
+Selects the scan mode (e.g., lineart,monochrome, or color).
+.TP
+.B \-\-resolution 200|240|300dpi [200]
+Sets the resolution of the scanned image. Each scanner model supports
+a list of standard resolutions; only these resolutions can be used.
+.TP
+.B \-\-compression none|g31d|g32d|g42d [none]
+Sets the compression mode of the scanner. Determines the type of data
+returned from the scanner. Values are:
+.RS
+.br
+.B none
+\- uncompressed data \- delivered in a SANE_FRAME_GRAY frame
+.br
+.B g31d
+\- CCITT G3 1 dimension (MH) \- delivered in a SANE_FRAME_G31D frame
+.br
+.B g32d
+\- CCITT G3 2 dimensions (MR, K=4) \- delivered in a SANE_FRAME_G32D frame
+.br
+.B g42d
+\- CCITT G4 (MMR) \- delivered in a SANE_FRAME_G42D frame
+.br
+NOTE: The use of g31d, g32d, and g42d compression values causes the backend
+to generate optional frame formats which may not be supported by all SANE
+frontends.
+.RE
+
+.TP
+.B Geometry Options:
+.TP
+.B \-\-autoborder[=(yes|no)] [yes]
+Enable/Disable automatic image border detection. When enabled, the RSC unit
+automatically detects the image area and sets the window geometry to match.
+.TP
+.B \-\-paper\-size Custom|Letter|Legal|A3|A4|A5|A6|B4|B5 [Custom]
+Specify the scan window geometry by specifying the paper size of the
+documents to be scanned.
+.TP
+.B \-\-tl\-x 0..297.18mm [0]
+Top-left x position of scan area.
+.TP
+.B \-\-tl\-y 0..431.8mm [0]
+Top-left y position of scan area.
+.TP
+.B \-\-br\-x 0..297.18mm [297.18]
+Bottom-right x position of scan area.
+.TP
+.B \-\-br\-y 0..431.8mm [431.8]
+Bottom-right y position of scan area.
+.TP
+.B Feeder Options:
+.TP
+.B \-\-source Automatic Document Feeder|Manual Feed Tray [Automatic Document Feeder]
+Selects the scan source (such as a document feeder). This option is provided
+to allow multiple image scans with xsane; it has no other purpose.
+.TP
+.B \-\-batch[=(yes|no)] [no]
+Enable/disable batch mode scanning. Batch mode allows scanning at maximum throughput
+by buffering within the RSC unit. This option is recommended when performing multiple
+pages scans until the feeder is emptied.
+.TP
+.B \-\-duplex[=(yes|no)] [no]
+Enable duplex (dual-sided) scanning. The scanner takes an image of each side
+of the document during a single pass through the scanner. The front page is
+delivered followed by the back page. Most options, such as compression,
+affect both the front and back pages.
+.TP
+.B \-\-timeout\-adf 0..255 [0]
+Sets the timeout in seconds for the automatic document feeder (ADF).
+The value 0 specifies the hardware default value which varies based
+on the scanner model.
+.TP
+.B \-\-timeout\-manual 0..255 [0]
+Sets the timeout in seconds for semi-automatic feeder. The value 0 specifies
+the hardware default value which varies based on the scanner model.
+.TP
+.B \-\-check\-adf[=(yes|no)] [no]
+Check ADF Status prior to starting scan using the OBJECT POSITION command.
+Note that this feature requires RSC firmware level 1.5 or higher and dip
+switch 4 must be in the on position. NOTE: This option has not been tested
+extensively and may produce undesirable results.
+.TP
+.B Enhancement:
+.TP
+.B \-\-control\-panel[=(yes|no)] [yes]
+Enables the scanner's control panel for selecting image enhancement
+parameters. When the option is set to no the following options are
+used to control image enhancement. See the Bell+Howell scanner users'
+guide for complete information on ACE functionality.
+.TP
+.B \-\-ace\-function \-4..4 [3]
+Specify the Automatic Contrast Enhancement (ACE) Function.
+.TP
+.B \-\-ace\-sensitivity 0..9 [5]
+Specify the Automatic Contrast Enhancement (ACE) Sensitivity.
+.TP
+.B \-\-brightness 0..255 [0]
+Controls the brightness of the acquired image. Ignored for ACE
+capable scanners.
+.TP
+.B \-\-threshold 0..255 [0]
+Select minimum-brightness to get a white point. Ignored for ACE
+capable scanners.
+.TP
+.B \-\-contrast 0..255 [inactive]
+Controls the contrast of the acquired image. This option is not
+currently used by the scanner (and perhaps never will be).
+.TP
+.B \-\-negative[=(yes|no)] [no]
+Swap black and white, yielding a reverse-video image.
+.TP
+.B Icon:
+.TP
+.B \-\-icon\-width 0..3600pel (in steps of 8) [0]
+Width of icon (thumbnail) image in pixels.
+.TP
+.B \-\-icon\-length 0..3600pel (in steps of 8) [0]
+Length of icon (thumbnail) image in pixels.
+.TP
+.B Barcode Options:
+.TP
+.B \-\-barcode\-search\-bar <see list> [none]
+Specifies the barcode type to search for. If this option is
+not specified, or specified with a value of none, then the barcode decoding
+feature is completely disabled. The valid barcode type are:
+.RS
+.br
+.B none
+.br
+.B ean\-8
+.br
+.B ean\-13
+.br
+.B reserved\-ean\-add
+.br
+.B code39
+.br
+.B code2\-5\-interleaved
+.br
+.B code2\-5\-3lines\-matrix
+.br
+.B code2\-5\-3lines\-datalogic
+.br
+.B code2\-5\-5lines\-industrial
+.br
+.B patchcode
+.br
+.B codabar
+.br
+.B codabar\-with\-start\-stop
+.br
+.B code39ascii
+.br
+.B code128
+.br
+.B code2\-5\-5lines\-iata
+.br
+.RE
+.TP
+.B \-\-barcode\-search\-count 1..7 [3]
+Number of times that the RSC performs the decoding algorithm. Specify
+the smallest number possible to increase performance. If you are having
+trouble recognizing barcodes, it is suggested that you increase this option
+to its maximum value (7).
+.TP
+.B \-\-barcode\-search\-mode <see list> [horiz\-vert]
+Chooses the orientation of barcodes to be searched. The valid orientations
+are:
+.RS
+.br
+.B horiz\-vert
+.br
+.B horizontal
+.br
+.B vertical
+.br
+.B vert\-horiz
+.RE
+.TP
+.B \-\-barcode\-hmin 0..1660mm [5]
+Sets the barcode minimum height in millimeters (larger values increase
+recognition speed). Of course the actual barcodes in the document must be
+of sufficient size.
+.TP
+.B \-\-barcode\-search\-timeout 20..65535us [10000]
+Sets the timeout for barcode searching in milliseconds. When the timeout
+expires, the decoder will stop trying to decode barcodes.
+.TP
+.B \-\-section <string> []
+Specifies a series of image sections. A section can be used to gather
+a subset image or to provide a small area for barcode decoding.
+Each section is specified in the following format (units are in millimeters):
+.PP
+.B <width>x<height>+<top-left-x>+<top-left-y>[:functioncode...]
+.PP
+Multiple sections can be specified by separating them with commas.
+.PP
+For example
+.B 76.2x25.4+50.8+0:frontbar
+identifies an area 3 inches wide and 1 inch high with a top left corner
+at the top of the page two inches from the left hand edge of the page.
+This section will be used for barcode decoding on the front page only.
+.PP
+For example
+.B 50.8x25.4+25.4+0:frontbar:front:g42d
+identifies an area 2 inches wide and 1 inch high with a top left corner
+at the top of the page one inch from the left hand edge of the page.
+This section will be used for barcode decoding on the front page as well
+as generating an image compressed in g42d format.
+.PP
+Ordinarily barcodes are searched in the entire image. However, when you
+specify sections all barcode searching is done within the specific sections
+identified. This can significantly speed up the decoding process.
+
+The following functioncodes are available:
+.RS
+.br
+.B front
+\- generate an image for the front page section
+.br
+.B back
+\- generate an image for the back page section
+.br
+.B frontbar
+\- perform barcode search in front page section
+.br
+.B backbar
+\- perform barcode search in back page section
+.br
+.B frontpatch
+\- perform patchcode search in front page section
+.br
+.B backpatch
+\- perform patchcode search in back page section
+.br
+.B none
+\- use no image compression
+.br
+.B g31d
+\- use Group 3 1 dimension image compression
+.br
+.B g32d
+\- use Group 3 2 dimensions image compression
+.br
+.B g42d
+\- use Group 4 2 dimensions image compression
+.br
+.RE
+.PP
+If you omit a compression functioncode, the full page compression setting
+is used. If you specify multiple compression functioncodes, only the
+last one is used.
+
+.TP
+.B \-\-barcode\-relmax 0..255 [0]
+Specifies the maximum relation from the widest to the smallest bar.
+.TP
+.B \-\-barcode\-barmin 0..255 [0]
+Specifies the minimum number of bars in Bar/Patch code.
+.TP
+.B \-\-barcode\-barmax 0..255 [0]
+Specifies the maximum number of bars in a Bar/Patch code.
+.TP
+.B \-\-barcode\-contrast 0..6 [3]
+Specifies the image contrast used in decoding. Use higher values when
+there are more white pixels in the code.
+.TP
+.B \-\-barcode\-patchmode 0..1 [0]
+Controls Patch Code detection.
+
+.SH BUGS
+This is a new backend; detailed bug reports are welcome -- and expected ;)
+.PP
+If you have found something that you think is a bug, please attempt to
+recreate it with the SANE_DEBUG_BH environment variable set to
+255, and send a report detailing the conditions surrounding the bug to
+.IR sane\-devel@lists.alioth.debian.org .
+
+.SH "SEE ALSO"
+sane(7), sane\-scsi(5), scanimage(1), scanadf(1)
+
+.SH AUTHOR
+The sane\-bh backend was written by Tom Martone, based on the sane\-ricoh
+backend by Feico W. Dillema and the bnhscan program by Sean Reifschneider
+of tummy.com ltd. Some 8000 enhancements added by Mark Temple.