PDF::Template - Create cascade PDF

A

alwaysonnet

Hello

I've been using PDF::Template Module to generate PDF based on my input
datahash. Please check the working code below

I want to generate one more set of data in another page without
changing the XML File. As data comes dynamically I'm not sure of how
many times I must include the LOOP attribute in my XML File

Any ideas or suggestions are appreciated.
Many Thanks

use strict;
use PDF::Template;
my $rpt = new PDF::Template( FILENAME => 'sample.xml' );

my %Inputs = (
'svctype' => 'Voice',
'fromcur' => 'EUR',
'LOOPDETAIL2' => [
{
'seqnum' => 878,
'date' => '01-Apr-2010',
'tax' => '0.000',
'posttax' => '0.000',
'pretax' => '0.000',
'israp' => 'FALSE'
},
{
'seqnum' => 879,
'date' => '02-Apr-2010',
'tax' => '0.000',
'posttax' => '0.000',
'pretax' => '0.000',
'israp' => 'FALSE'
},
{
'seqnum' => 880,
'date' => '03-Apr-2010',
'tax' => '0.000',
'posttax' => '0.000',
'pretax' => '0.000',
'israp' => 'FALSE'
},
],
'pretax_totals' => '0.000',
'tax_total' => '0.000',
'posttax_totals' => '0.000',
);

$rpt->param(%Inputs);

$rpt->write_file('/export/home/kars/sample.pdf');

Input XML File is as follows

<pdftemplate name="test">
<pagedef margins="1i" pagesize="A4" nopagenumber="0">
<font face="Helvetica" h="10">
<if name="svctype" op="ne" value="SMS">
<font face="Helvetica-Bold">
<row>
<textbox w="100%" h="*2" text=""/>
</row>
<row h="*1.5">
<textbox w="20%" border="1" justify="center">Date</textbox>
<textbox w="20%" border="1" justify="center">Sequence Number
Range</textbox>
<textbox w="20%" border="1" justify="center">Pre-Tax Value in
<var name="fromcur"/>
</textbox>
<textbox w="20%" border="1" justify="center"> Tax Value
in <var name="fromcur"/>
</textbox>
<textbox w="20%" border="1" justify="center">Post-Tax Value in
<var name="fromcur"/>
</textbox>
</row>
</font>
<loop name="LOOPDETAIL2">
<row h="*1.5">
<if name="israp" op="eq" value="FALSE">
<textbox w="20%" border="1" justify="center" text="$date"/>
<textbox w="20%" border="1" justify="center" text="$seqnum"/>
<textbox w="20%" border="1" justify="right" text="$pretax"/>
<textbox w="20%" border="1" justify="right" text="$tax"/>
<textbox w="20%" border="1" justify="right" text="$posttax"/>
</if>
</row>
</loop>
<font face="Helvetica-Bold">
<row h="*1.5">
<textbox w="20%" border="1" justify="center" text=""/>
<textbox w="20%" border="1" justify="center" text="Total"/>
<textbox w="20%" border="1" justify="right"
text="$pretax_totals"/>
<textbox w="20%" border="1" justify="right" text="$tax_total"/>
<textbox w="20%" border="1" justify="right"
text="$posttax_totals"/>
</row>
</font>
</if>
</font>
</pagedef>
</pdftemplate>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,527
Members
45,000
Latest member
MurrayKeync

Latest Threads

Top