PDF::Boxer is a Perl module that enables the creation of pdf documents using rows, columns, and grids for layout. An xml styled document is used to specify the contents of the document and is parsed into a block of data by PDF::Boxer::SpecParser and passed to PDF::Boxer
Suggestion: Use Template to dynamically create your PDFML template.
SYNOPSIS
$pdfml = <
< column border_color="blue" border="2" >
< row >
< image src="t/lecstor.gif" align="center" valign="center" padding="10" scale="60" / >
< column grow="1" padding="10 10 10 0" >
< text padding="3" align="right" size="20" >
Lecstor Pty Ltd
< /text >
< text padding="3" align="right" size="14" >
123 Example St, Somewhere, Qld 4879
< /text >
< /column >
< /row >
< row padding="15 0" >
< text padding="20" size="14" >
Mr G Client
Shop 2 Some Centre, Retail Rd
Somewhere, NSW 2000
< /text >
< column padding="20" border_color="red" grow="1" >
< text size="16" align="right" font="Helvetica-Bold" >
Tax Invoice No. 123
< /text >
< text size="14" align="right" >
Issued 01/01/2011
< /text >
< text size="14" align="right" font="Helvetica-Bold" >
Due 14/01/2011
< /text >
< /column >
< /row >
< /column >
< grid padding="10" >
< row font="Helvetica-Bold" padding="0" >
< text align="center" padding="0 10" >Name
< text grow="1" align="center" padding="0 10" >Description
< text padding="0 10" align="center" >GST Amount
< text padding="0 10" align="center" >Payable Amount
< /row >
< row margin="10 0 0 0" >
< text padding="0 5" >Web Services
< text name="ItemText2" grow="1" padding="0 5" >
a long description which needs to be wrapped to fit in the box
< /text >
< text padding="0 5" align="right" >$9999.99
< text padding="0 5" align="right" >$99999.99
< /row >
< /grid >
< /column >
__EOP__
$parser = PDF::Boxer::SpecParser- >new;
$spec = $parser- >parse($pdfml);
$boxer = PDF::Boxer- >new( doc = > { file = > 'test_invoice.pdf' } );
$boxer- >add_to_pdf($spec);
$boxer- >finish;
Product's homepage
Requirements:
· Perl