Printer::Label::Template::Processor Template-based label management
# prints to standard output my $print_con = Printer::Label::Template::Processor->new( script_file => "MyPath/MyFile.tt2", check_syntax => \&my_check_sub, print_mode => "CON", ); $print_con or croak "Error while creating the printer object"; $print_con->printout( vars => { my_var_1 => 'My var 1', my_var_2 => $my_var_2, my_var_3 => ['My', 'var', '3'], } ); # prints to FTP server my $print_ftp = Printer::Label::Template::Processor->new( script_file => "MyPath/MyFile.tt2", check_syntax => \&my_check_sub, print_mode => "FTP", server => "MyPrintServer", ); $print_ftp or croak "Error while creating the printer object"; $print_ftp->printout( vars => { my_var_1 => 'My var 1', my_var_2 => $my_var_2, my_var_3 => ['My', 'var', '3'], } ); # prints to LPR queue my $print_lpr = Printer::Label::Template::Processor->new( script_file => "MyPath/MyFile.tt2", check_syntax => \&my_check_sub, print_mode => "LPR", server => "MyPrintServer", ); $print_lpr or croak "Error while creating the printer object"; $print_lpr->printout( vars => { my_var_1 => 'My var 1', my_var_2 => $my_var_2, my_var_3 => ['My', 'var', '3'], } ); # prints to file my $print_file = Printer::Label::Template::Processor->new( script_file => "MyPath/MyFile.tt2", check_syntax => \&my_check_sub, print_mode => "FILE", output_file => "MyPath/MyFile.txt", ); $print_file or croak "Error while creating the printer object"; $print_file->printout( vars => { my_var_1 => 'My var 1', my_var_2 => $my_var_2, my_var_3 => ['My', 'var', '3'], } );
(...)
sub my_check_sub { my $output_data = shift; # checks for the presence of some commands return ($output_data =~ /^MyStartCommand(.*\s)*MyStopCommand$/); }
This module provides a way to build any type of labels using templates and output them on a printing device.
A template file consists of a script written in a scripting language. Support is provided for the following scripting languages: * Perl * Template Toolkit
The template is run and passed variables through a hash. This variables are used by the script to populate fields and perform operations throughout the content of the label. The scripts returns the ready-to-print content of the label. The syntax of the output data is checked in accordance with the language used by the printing device. Once validated, the output data is sent to the printing device.
Support is provided for the following printing protocols: * CON: prints to the standard output * FTP: prints to an FTP server * LPR: prints to an LPR queue * FILE: prints to a file
Lookup table used to link file extensions and _build_output_from_* methods.
my $print_lpr = Printer::Label::Template::Processor->new( script_file => "MyPath/MyScriptFile.tt2", # full path to the script file check_syntax => \&my_check_sub, # reference to the sub that will check the syntax of the data output by the script print_mode => "LPR", # identifier of the printing prtotocol server => "MyPrintServer", # Identifier of the printing device (Network name, IP address...) port => 555, # TCP port number if required user => 'MyUser', # username if authentification is required password => 'MyPassword', # password if authentification is required output_file => "MyPath/MyOutputFile.txt" # full path to the output file required by the FILE printing protocol );
Creates a label processor object. Each parameter passed to the method is set to an object's property of the same name.
$print_lpr->printout( vars => { my_var_1 => 'My var 1', my_var_2 => $my_var_2, my_var_3 => ['My', 'var', '3'], } );
Builds the output data and sends it to a printing system. The vars structure is transmitted to the template script which will use them in order to produce the content of the label. The variables can be used to fill placeholders values or any algorithmic needs.
Builds the output data of the label. This method uses the lookup table defined in $H_TEMPLATES to identify the language of the template script. It then builds dynamically the name of the corresponding method and calls it.
Builds output data by processing a Perl script. Loads the Perl script, eval-s it and stores its output in the output_data property of the label object.
Builds output data by processing a Template Toolkit script. Loads the Template Toolkit script, processes it and stores its output in the output_data property of the label object.
Sends the content to the standard output.
Sends the content to a FTP server.
Sends the content to a print queue.
Writes the content to a file.
Christian Morel, <christian.morel at etat.ge.ch>, Jan. 2013
<christian.morel at etat.ge.ch>
To install Printer::Label::Template::Processor, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Printer::Label::Template::Processor
CPAN shell
perl -MCPAN -e shell install Printer::Label::Template::Processor
For more information on module installation, please visit the detailed CPAN module installation guide.