Scanner::Device - Class to control scanner hardware via SANE scanimage CLI.
use Scanner::Device; $obj = Scanner::Device->new ( hashargs ); $bool = Scanner::Device->defaultScannerIs ($scanner); $bool = Scanner::Device->defaultDpiIs ($dpi); $true = Scanner::Device->defaultShutdownIs ($bool); $bool = Scanner::Device->defaultPageSourceIs ($pgsrc); $bool = $obj->scan ($pgobj,$dpath); $bool = $obj->shutdown;
UNIVERSAL
Creates Scanner::Device objects that represent a scanner to which Scanner::Page objects may be passed for scanning.
use Scanner::Device; use Scanner::Device::Page; my $bool = Scanner::Device->defaultScannerIs ("hp:libusb:001:010"); $bool = Scanner::Device->defaultDpi (150); $bool = Scanner::Device->defaultPageSourceIs ("adf"); my $scanner = Scanner::Device->new; my $pg = Scanner::Page->new ( 'date' => "20040830", 'title' => "DailyBoggle", 'pageid' => "001", ); my $bool = $scanner->scan ( $pg );
$Scanner::DEFAULT_SCANNER Default is "umax". If there is an $SCANNER Environment variable, that value will be used instead. $Scanner::DEFAULT_DPI Default is 150 dpi. If the Scanner is an hp5590, it will be set to 200 dpi instead. $Scanner::DEFAULT_PAGESOURCE Default source is "flatbed". $Scanner::DEFAULT_SHUTDOWN Default is false, for no shutdown.
scanner Default device is "umax" or the contents of the Environment variable $SCANNER. It can also be a usb device like "hp:libusb:001:01" type The device type portion of the scanner string. deviceid The device address portion of the scanner string. pagesource Default page source is "flatbed". It can be either 'flatbed' or 'adf' for automatic document feeder. This value will be used to select the best available and possibly device specific internal setting for 'devpgsrc', as allowed by scanimage. devpgsrc Best match to requested 'pagesource' that is available on the scanner 'type'. extra Type dependant args. These are set automatically based on 'type'. dpi Default value of dots per inch is 150. scanimage measure pages in mm and uses dpi to measure resolution. Don't ask me, ask them.
$SCANNER If defined and if it contains a valid scanner device string at load time, it will be used as the default scanner. $SCANNER_AUTO_SHUTDOWN If defined at load time, it will be used as the default boolean value for $Scanner::DEFAULT_SHUTDOWN.
Note that argument validity checking is not implimented yet.
Set the default device for the Scanner::Device class. The device string may be anything allowed by the scanimage program. You can find out what is available using the command:
scanimage -L
If the device argument is missing, the value defaults to "umax" for no better reason than that is was the scanner I had when I first wrote this code.
If the device is an hp5590, the default dpi setting is raised from 150 dpi to 200 dpi since that scanner does not have a 150 dpi setting.
Returns true on success and false if there is no arg or it is not a scanner device string.
Set the default dots per inch for the Scanner::Device Class. The dpi integer may be anything allowed by the scanner.
Returns true on success and false if there is no arg or it is not a valid dpi value.
Set the Class default scanner page source. Flatbed/Normal or ADF (automatic document feeder). "flatbed" or "normal" means the scanner table; "adf" means use an automatic document feeder.
Note that at object-creation time the appropriate device tupe dependant pseudonym of flatbed or normal will be used regardless of which was named the default.
The page source string will in some cases be internally mapped to scanner specific equivalents, for example flatbed=>normal for some HP scanners. Either flatbed or normal is acceptable on input. The appropriate one will be used when actually communicating with the scanner.
Returns true on success and false if there is no arg or it is not a valid page source.
Set the default for shutdown after a scan. 1 means carry out special shutdown such as turning off the lamp, if required; 0 or undef means do not do so. It is often useful not to do a shutdown if you are scanning multiple pages as it can slow down your scanning immensely.
The $boolean arg should be 1 or 0 to make things easier to understand, but it can be absolutely anything. whatever it is will be interpreted as true or false, ie "anystring" is true; "" is false, undef is false, etc.
Always returns true.
This is the Class method for creating new Scanner::Device objects and has three option args:
scanner => scanner type as returned by "scanimage -L" [OPT: default is "umax"] pagesource => flatbed|adf. Any other value will be changed to flatbed. [OPT: default is "flatbed"] dpi => integer [OPT: default is 150 dpi]
It returns either a pointer to the newly created and initialized object or undef if the object could not be created.
Scan the page identified by the pageobj and create an appropriately named file at $dpath. The $dpath location must be a directory that is writeable to the user.
Returns true if it succeeds.
If debug is enabled, it will print the generated scanimage command line before executing it.
Turn the scanner off if it is a type which requires special handling that we know about. Only used for Mustek at the moment, noop otherwise.
None.
See TODO.
Scanner::Page, Scanner::Format.
Dale Amon <amon@vnl.com>
2 POD Errors
The following errors were encountered while parsing the POD:
=back doesn't take any parameters, but you said =back 4
To install Scanner::Job, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Scanner::Job
CPAN shell
perl -MCPAN -e shell install Scanner::Job
For more information on module installation, please visit the detailed CPAN module installation guide.