Perl Sample Script
The following Perl script is all that is required to do the following:
Check if TWAIN is installed.
Initialize the DTWAIN Dynamic Link Library.
Select a Source
Acquire a page using the Native transfer mode
Save page to a BMP file called "test.bmp"
Shut down any open TWAIN Source's and DTWAIN itself
___________________________________________________________
#!/usr/bin/perl
use strict;
use warnings;
$|++;
use Win32::API;
# DTWAIN Constants. See DTWAIN32.PL file for these values
use constant DTWAIN_BMP => 100;
use constant DTWAIN_USELONGNAME => 16;
use constant DTWAIN_USENATIVE => 1;
use constant DTWAIN_PT_DEFAULT => 1000;
# DTWAIN function definitions. See DTWAIN32.PL for these settings
my $DTWAIN_IsTwainAvailable = new
Win32::API('DTWAIN32.DLL','DTWAIN_IsTwainAvailable','','N');
my $DTWAIN_SysInitialize = new
Win32::API('DTWAIN32.DLL','DTWAIN_SysInitialize','','N');
my $DTWAIN_SelectSource = new
Win32::API('DTWAIN32.DLL','DTWAIN_SelectSource','','N');
my $DTWAIN_SysDestroy = new
Win32::API('DTWAIN32.DLL','DTWAIN_SysDestroy','','N');
my $DTWAIN_AcquireFile = new
Win32::API('DTWAIN32.DLL','DTWAIN_AcquireFile','NPNNNNNNP','N');
# Start to use the DTWAIN functions
my $isAvail = $DTWAIN_IsTwainAvailable->Call();
if ( $isAvail == 1 )
{
my $return = $DTWAIN_SysInitialize->Call();
if ( $return != 0 )
{
my $TwainSource =
$DTWAIN_SelectSource->Call();
if ( $TwainSource != 0 )
{
$DTWAIN_AcquireFile->Call($TwainSource, 'test.bmp', DTWAIN_BMP, DTWAIN_USENATIVE
+ DTWAIN_USELONGNAME,
DTWAIN_PT_DEFAULT, 1, 1, 1, 0);
}
}
$DTWAIN_SysDestroy->Call();
}
___________________________________________________________
Note that the
Win32::API
Perl package must be installed for this example to work, as well as DTWAIN32.DLL
available on an accessible directory (a directory specified on your system
PATH). Also note that this program doesn't test if the DTWAIN32.DLL file exists
or if the functions within the DLL exists, so an appropriate Perl die or warn
should be used in a production program to ensure that there are no DLL or
functional issues.
The constants and function prototypes are included in the file DTWAIN32.PL.
Since Perl programmers have different preferences in terms of how to include
files, define constants, etc., it is recommended that you copy and paste the
constants and functions you need from DTWAIN32.PL into your Perl program and
change the method that these constants and functions are included according to
your requirements.