| 
									
										
										
										
											2004-03-27 14:10:43 +00:00
										 |  |  | .TH sane-hp 5 "27 Mar 2004" "@PACKAGEVERSION@" "SANE Scanner Access Now Easy" | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .IX sane-hp | 
					
						
							|  |  |  | .SH NAME | 
					
						
							| 
									
										
										
										
											2002-11-29 20:15:39 +00:00
										 |  |  | sane-hp \- SANE backend for HP ScanJet scanners | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .SH DESCRIPTION | 
					
						
							|  |  |  | The | 
					
						
							|  |  |  | .B sane-hp | 
					
						
							|  |  |  | library implements a SANE (Scanner Access Now Easy) backend that | 
					
						
							| 
									
										
										
										
											2002-09-01 17:47:37 +00:00
										 |  |  | provides access to HP ScanJet scanners which support SCL (Scanner | 
					
						
							| 
									
										
										
										
											2002-11-25 20:39:38 +00:00
										 |  |  | Control Language by HP).  The following | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | scanners are known positively to work with this backend: | 
					
						
							|  |  |  | .PP | 
					
						
							|  |  |  | .RS | 
					
						
							| 
									
										
										
										
											2005-04-12 06:01:14 +00:00
										 |  |  | .ft CR | 
					
						
							|  |  |  | .nf | 
					
						
							| 
									
										
										
										
											2000-03-05 13:57:25 +00:00
										 |  |  | Model:         Product id:     Interface: | 
					
						
							|  |  |  | ----------     -----------     ---------- | 
					
						
							|  |  |  | ScanJet Plus   C9195A          HP Parallel Interface Card | 
					
						
							|  |  |  | ScanJet IIc    C1750A 3226     SCSI | 
					
						
							|  |  |  | ScanJet IIcx   C2500A 3332     SCSI | 
					
						
							|  |  |  | ScanJet IIp    C1790A          SCSI | 
					
						
							|  |  |  | ScanJet 3C     C2520A 3503     SCSI | 
					
						
							|  |  |  | ScanJet 3P     C2570A 3406     SCSI | 
					
						
							|  |  |  | ScanJet 4C     C2520A          SCSI | 
					
						
							|  |  |  | ScanJet 4P     C1130A 3540     SCSI | 
					
						
							|  |  |  | ScanJet 4100C  C6290A          USB | 
					
						
							|  |  |  | ScanJet 5P     C5110A          SCSI | 
					
						
							|  |  |  | ScanJet 5100C  C5190A          parallel port | 
					
						
							|  |  |  | ScanJet 5200C  C7190A 3846     parallel port/USB | 
					
						
							|  |  |  | ScanJet 6100C  C2520A 3644     SCSI | 
					
						
							|  |  |  | ScanJet 6200C  C6270A 3828     SCSI/USB | 
					
						
							|  |  |  | ScanJet 6250C  C6270A 3828     SCSI/USB | 
					
						
							|  |  |  | ScanJet 6300C  C7670A          SCSI/USB | 
					
						
							|  |  |  | ScanJet 6350C  C7670A          SCSI/USB | 
					
						
							| 
									
										
										
										
											2000-12-09 19:26:43 +00:00
										 |  |  | ScanJet 6390C  C7670A          SCSI/USB | 
					
						
							| 
									
										
										
										
											2000-03-05 13:57:25 +00:00
										 |  |  | PhotoSmart     C5100A R029,R030,R032    SCSI | 
					
						
							| 
									
										
										
										
											2005-04-12 06:01:14 +00:00
										 |  |  | .fi | 
					
						
							|  |  |  | .ft R | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .RE | 
					
						
							|  |  |  | .PP | 
					
						
							| 
									
										
										
										
											2000-03-05 13:57:25 +00:00
										 |  |  | Support for models 5100C/5200C connected to the parallel port requires | 
					
						
							| 
									
										
										
										
											2002-12-06 20:14:36 +00:00
										 |  |  | the ppSCSI driver available at  | 
					
						
							|  |  |  | .IR http://www.torque.net/parport/ppscsi.html | 
					
						
							| 
									
										
										
										
											2000-03-05 13:57:25 +00:00
										 |  |  | (under development) | 
					
						
							|  |  |  | .PP | 
					
						
							| 
									
										
										
										
											2002-11-25 20:39:38 +00:00
										 |  |  | Support for models 5200C/62X0C/63X0C connected to the USB require | 
					
						
							|  |  |  | the kernel scanner driver or libusb. See | 
					
						
							|  |  |  | .BR sane-usb (5) | 
					
						
							|  |  |  | for more details. | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .PP | 
					
						
							| 
									
										
										
										
											2002-09-01 17:47:37 +00:00
										 |  |  | The "hp" backend no longer supports OfficeJet multi-function peripherals. | 
					
						
							|  |  |  | For these devices use the external "hpoj" backend in version 0.90 and later of | 
					
						
							| 
									
										
										
										
											2002-12-06 20:14:36 +00:00
										 |  |  | the "HP OfficeJet Linux driver", available at  | 
					
						
							|  |  |  | .br | 
					
						
							|  |  |  | .IR http://hpoj.sourceforge.net | 
					
						
							|  |  |  | . | 
					
						
							| 
									
										
										
										
											2000-11-26 13:43:19 +00:00
										 |  |  | .PP | 
					
						
							| 
									
										
										
										
											2002-11-25 20:39:38 +00:00
										 |  |  | Because Hewlett-Packard does no longer produce scanners that support | 
					
						
							| 
									
										
										
										
											2002-12-06 20:14:36 +00:00
										 |  |  | SCL (beside the OfficeJets), the above list of supported scanners is | 
					
						
							| 
									
										
										
										
											2002-11-25 20:39:38 +00:00
										 |  |  | complete. | 
					
						
							|  |  |  | Other HP scanners are not supported by the "hp" backend, but might be supported | 
					
						
							|  |  |  | by another one. See | 
					
						
							| 
									
										
										
										
											2003-09-24 14:55:50 +00:00
										 |  |  | .IR http://www.sane\-project.org/ . | 
					
						
							| 
									
										
										
										
											2002-11-25 20:39:38 +00:00
										 |  |  | You can also watch the sane-devel mailinglist at | 
					
						
							| 
									
										
										
										
											2003-09-24 14:55:50 +00:00
										 |  |  | .IR http://www.sane\-project.org/mailing\-lists.html . | 
					
						
							| 
									
										
										
										
											2002-12-06 20:14:36 +00:00
										 |  |  | .PP | 
					
						
							|  |  |  | More details about the hp backend can be found on its homepage  | 
					
						
							| 
									
										
										
										
											2002-12-06 20:19:30 +00:00
										 |  |  | .IR http://www.kirchgessner.net/sane.html . | 
					
						
							| 
									
										
										
										
											2002-12-06 20:14:36 +00:00
										 |  |  | .PP | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .SH "DEVICE NAMES" | 
					
						
							|  |  |  | This backend expects device names of the form: | 
					
						
							|  |  |  | .PP | 
					
						
							|  |  |  | .RS | 
					
						
							|  |  |  | .I special | 
					
						
							|  |  |  | .RE | 
					
						
							|  |  |  | .PP | 
					
						
							|  |  |  | Where | 
					
						
							|  |  |  | .I special | 
					
						
							|  |  |  | is the UNIX path-name for the special device that corresponds to the | 
					
						
							|  |  |  | 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 could be | 
					
						
							|  |  |  | .I /dev/sga | 
					
						
							|  |  |  | or | 
					
						
							| 
									
										
										
										
											2000-11-26 13:43:19 +00:00
										 |  |  | .IR /dev/sg2 , | 
					
						
							| 
									
										
										
										
											2002-09-10 19:12:02 +00:00
										 |  |  | for example. If the special device name contains "usb", "uscanner" or "ugen", | 
					
						
							|  |  |  | it is assumed that the scanner is connected by USB. | 
					
						
							|  |  |  | For the HP ScanJet Plus the special device name must be the device | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | that corresponds to the parallel interface card that was shipped with the | 
					
						
							| 
									
										
										
										
											2000-03-05 13:57:25 +00:00
										 |  |  | scanner. That is | 
					
						
							| 
									
										
										
										
											2002-09-01 17:47:37 +00:00
										 |  |  | .IR /dev/hpscan . | 
					
						
							| 
									
										
										
										
											2000-08-12 15:11:46 +00:00
										 |  |  | A special driver is required for this card. | 
					
						
							|  |  |  | See ftp://rvs.ctrl-c.liu.se/pub/wingel/hpscan for details. If the link | 
					
						
							|  |  |  | does not work, try ftp://sunsite.unc.edu/pub/Linux/kernel/patches/scanners. | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .SH CONFIGURATION | 
					
						
							|  |  |  | The contents of the | 
					
						
							|  |  |  | .I hp.conf | 
					
						
							|  |  |  | file is a list of options and device names that correspond to HP ScanJet | 
					
						
							|  |  |  | scanners.  Empty lines and lines starting with a hash mark | 
					
						
							| 
									
										
										
										
											2002-11-25 20:39:38 +00:00
										 |  |  | (#) are ignored. See | 
					
						
							|  |  |  | .BR sane-scsi (5) | 
					
						
							|  |  |  | and | 
					
						
							|  |  |  | .BR sane-usb (5) | 
					
						
							|  |  |  | on details of what constitutes a valid device name. | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .PP | 
					
						
							| 
									
										
										
										
											2002-09-01 17:47:37 +00:00
										 |  |  | Options specified in front of the first line that contains a device name  | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | are defaults for all devices. Options specified below a line that | 
					
						
							| 
									
										
										
										
											2002-09-01 17:47:37 +00:00
										 |  |  | contains a device name apply just to the most recently mentioned device. | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .PP | 
					
						
							|  |  |  | Supported options are | 
					
						
							|  |  |  | .BR connect-scsi , | 
					
						
							| 
									
										
										
										
											2000-11-26 13:43:19 +00:00
										 |  |  | .BR connect-device , | 
					
						
							| 
									
										
										
										
											2002-12-06 20:14:36 +00:00
										 |  |  | .BR enable-image-buffering , | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | and | 
					
						
							| 
									
										
										
										
											2002-12-06 20:14:36 +00:00
										 |  |  | .BR dumb-read . | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Option | 
					
						
							|  |  |  | .B connect-scsi | 
					
						
							|  |  |  | specifies that the scanner is connected to the system by SCSI. | 
					
						
							| 
									
										
										
										
											2002-09-10 19:12:02 +00:00
										 |  |  | Input/output is performed using SCSI-commands. This is the default. | 
					
						
							|  |  |  | But if your SCSI device name contains "usb", "uscanner" or "ugen", | 
					
						
							|  |  |  | option connect-scsi must be specified. Otherwise it is assumed that | 
					
						
							|  |  |  | the scanner is connected by USB. | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Option | 
					
						
							|  |  |  | .B connect-device | 
					
						
							|  |  |  | specifies that the scanner is connected to the system by a special | 
					
						
							|  |  |  | device. Input/output is performed by read()/write()-operations | 
					
						
							| 
									
										
										
										
											2002-11-25 20:39:38 +00:00
										 |  |  | on the device. This option must be used for HP ScanJet Plus | 
					
						
							|  |  |  | or scanners connected to USB which are accessed through a named device | 
					
						
							|  |  |  | (e.g. /dev/usb/scanner0). | 
					
						
							| 
									
										
										
										
											2002-09-10 19:12:02 +00:00
										 |  |  | For device names that contain "usb", "uscanner" or "ugen", it is not | 
					
						
							|  |  |  | necessary to specify option connect-device. | 
					
						
							| 
									
										
										
										
											2000-11-26 13:43:19 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-05 13:57:25 +00:00
										 |  |  | Option | 
					
						
							|  |  |  | .B enable-image-buffering | 
					
						
							|  |  |  | stores the scanned image in memory before passing it to the frontend. Could be | 
					
						
							| 
									
										
										
										
											2000-11-26 13:43:19 +00:00
										 |  |  | used in case of forward/backward moving scanner lamp. | 
					
						
							| 
									
										
										
										
											2002-12-06 20:14:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | Option | 
					
						
							|  |  |  | .B dumb-read | 
					
						
							|  |  |  | can be used to work around problems with "Error during device I/O". These | 
					
						
							|  |  |  | problems may occur with certain SCSI-to-USB convertors or Buslogic SCSI cards. | 
					
						
							|  |  |  | The option should not be used for SCSI devices which are working correctly. | 
					
						
							|  |  |  | Otherwise startup of frontends and changing parameters might be slower. | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .PP | 
					
						
							| 
									
										
										
										
											2005-04-12 06:01:14 +00:00
										 |  |  | A sample configuration file is shown below: | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .PP | 
					
						
							|  |  |  | .RS | 
					
						
							|  |  |  | /dev/scanner | 
					
						
							|  |  |  | .br | 
					
						
							|  |  |  | # this is a comment | 
					
						
							|  |  |  | .br | 
					
						
							|  |  |  | /dev/hpscan | 
					
						
							| 
									
										
										
										
											2005-04-12 06:01:14 +00:00
										 |  |  | .RS 2 | 
					
						
							|  |  |  | option connect-device | 
					
						
							|  |  |  | .RE | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .RE | 
					
						
							| 
									
										
										
										
											2000-11-26 13:43:19 +00:00
										 |  |  | .PP | 
					
						
							| 
									
										
										
										
											2002-09-10 19:12:02 +00:00
										 |  |  | /dev/scanner is typically a symlink to the actual SCSI scanner device. | 
					
						
							| 
									
										
										
										
											2000-11-26 13:43:19 +00:00
										 |  |  | .RE | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .SH FILES | 
					
						
							|  |  |  | .TP | 
					
						
							|  |  |  | .I @CONFIGDIR@/hp.conf | 
					
						
							|  |  |  | The backend configuration file (see also description of | 
					
						
							|  |  |  | .B SANE_CONFIG_DIR | 
					
						
							|  |  |  | below). | 
					
						
							|  |  |  | .TP | 
					
						
							|  |  |  | .I @LIBDIR@/libsane-hp.a | 
					
						
							|  |  |  | The static library implementing this backend. | 
					
						
							|  |  |  | .TP | 
					
						
							|  |  |  | .I @LIBDIR@/libsane-hp.so | 
					
						
							|  |  |  | The shared library implementing this backend (present on systems that | 
					
						
							|  |  |  | support dynamic loading). | 
					
						
							|  |  |  | .TP | 
					
						
							|  |  |  | .I $HOME/.sane/calib-hp:<device>.dat | 
					
						
							|  |  |  | Calibration data for HP PhotoSmart PhotoScanner that is retrieved from the | 
					
						
							|  |  |  | scanner after calibration. The data is uploaded to the scanner at start | 
					
						
							|  |  |  | of the backend if it is in media mode 'print media' or if the media mode is | 
					
						
							|  |  |  | changed to 'print media'. | 
					
						
							|  |  |  | .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_HP | 
					
						
							|  |  |  | If the library was compiled with debug support enabled, this | 
					
						
							|  |  |  | environment 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. | 
					
						
							| 
									
										
										
										
											2003-10-09 20:23:39 +00:00
										 |  |  | .TP | 
					
						
							|  |  |  | .B SANE_HOME_HP | 
					
						
							|  |  |  | Only used for OS/2 and along with use of HP PhotoSmart PhotoScanner. | 
					
						
							|  |  |  | Must be set to the directory where the directory .sane is located.  | 
					
						
							|  |  |  | Is used to save and read the calibration file. | 
					
						
							|  |  |  | .TP | 
					
						
							| 
									
										
										
										
											2004-03-27 14:10:43 +00:00
										 |  |  | .B SANE_HP_KEEPOPEN_SCSI | 
					
						
							|  |  |  | .TP | 
					
						
							|  |  |  | .B SANE_HP_KEEPOPEN_USB | 
					
						
							|  |  |  | .TP | 
					
						
							|  |  |  | .B SANE_HP_KEEPOPEN_DEVICE | 
					
						
							|  |  |  | For each type of connection (connect-scsi, connect-usb, connect-device) | 
					
						
							|  |  |  | it can be specified if the connection to the device should be kept open ("1") | 
					
						
							|  |  |  | or not ("0"). | 
					
						
							|  |  |  | Usually the connections are closed after an operation is performed. | 
					
						
							|  |  |  | Keeping connection open to SCSI-devices can result in errors during device IO | 
					
						
							|  |  |  | when the scanner has not been used for some time. By default, USB-connections | 
					
						
							|  |  |  | are kept open. Other connections are closed. | 
					
						
							|  |  |  | .TP | 
					
						
							| 
									
										
										
										
											2003-10-09 20:23:39 +00:00
										 |  |  | .B SANE_HP_RDREDO | 
					
						
							|  |  |  | Specifies number of retries for read operation before returning an EOF error. | 
					
						
							|  |  |  | Only supported for non-SCSI devices. Default: 1 retry. Time between retries | 
					
						
							|  |  |  | is 0.1 seconds. | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | .SH BUGS | 
					
						
							|  |  |  | .TP | 
					
						
							|  |  |  | .B HP PhotoSmart PhotoScanner | 
					
						
							| 
									
										
										
										
											2000-03-05 13:57:25 +00:00
										 |  |  | In media mode 'slide' and 'negative', scan resolutions are rounded to | 
					
						
							|  |  |  | multiple of 300 dpi. The scanner does not scale the data correctly | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | on other resolutions. Some newer models (firmware code R030 and later) | 
					
						
							|  |  |  | do not support adjustment of contrast/intensity level and tone map. | 
					
						
							|  |  |  | The backend will simulate this by software, but only for gray | 
					
						
							|  |  |  | and 24 bit color. | 
					
						
							|  |  |  | .TP | 
					
						
							|  |  |  | .B Automatic Document Feeder (ADF) | 
					
						
							|  |  |  | For use of the ADF with xscanimage(1), first place paper in the ADF and | 
					
						
							| 
									
										
										
										
											2000-08-12 15:11:46 +00:00
										 |  |  | then change option scan source to 'ADF'. Press 'change document' | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | to load a sheet. Then press 'scan' to start a scan.  | 
					
						
							|  |  |  | Maybe it is sufficient to press 'scan' without 'change document' | 
					
						
							|  |  |  | for repeated scans. The use of the preview window is not recommended | 
					
						
							|  |  |  | when working with the ADF. | 
					
						
							| 
									
										
										
										
											2001-09-04 14:04:26 +00:00
										 |  |  | Setting a window to scan from ADF is not supported with xscanimage(1). | 
					
						
							|  |  |  | Try xsane(1). | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .TP | 
					
						
							|  |  |  | .B Immediate actions | 
					
						
							|  |  |  | Some actions in xscanimage(1) (i.e. unload, select media, calibrate) | 
					
						
							|  |  |  | have an immediate effect on the scanner without starting a scan. | 
					
						
							|  |  |  | These options can not be used with scanimage. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .SH TODO | 
					
						
							|  |  |  | .TP | 
					
						
							|  |  |  | .B HP PhotoSmart PhotoScanner | 
					
						
							|  |  |  | PhotoScanners with firmware release R030 and up have | 
					
						
							|  |  |  | no firmware support for contrast/brightness/gamma table. In the current | 
					
						
							|  |  |  | backend this is simulated by software on 24 bits data. | 
					
						
							|  |  |  | Simulation on 30 bits should give better results. | 
					
						
							|  |  |  | .TP | 
					
						
							| 
									
										
										
										
											2000-11-26 13:43:19 +00:00
										 |  |  | .B Data widths greater than 8 bits | 
					
						
							|  |  |  | Custom gamma table does not work. | 
					
						
							|  |  |  | .TP | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .B Parallel scanner support | 
					
						
							| 
									
										
										
										
											2000-03-05 13:57:25 +00:00
										 |  |  | Beside the ScanJet Plus which came with its own parallel interface card, | 
					
						
							|  |  |  | currently only the HP ScanJet 5100C/5200C are supported. | 
					
						
							|  |  |  | These scanners are using an internal parallel-to-SCSI converter which | 
					
						
							|  |  |  | is supported by the ppSCSI-driver (see above). | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | .SH "SEE ALSO" | 
					
						
							| 
									
										
										
										
											2002-11-25 20:39:38 +00:00
										 |  |  | sane(7), sane\-scsi(5), sane\-usb(5) | 
					
						
							| 
									
										
										
										
											1999-08-09 18:06:01 +00:00
										 |  |  | .SH AUTHOR | 
					
						
							|  |  |  | The sane-hp backend was written by Geoffrey T. Dairiki. HP PhotoSmart | 
					
						
							|  |  |  | PhotoScanner support by Peter Kirchgessner. |