Hello Monks
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">D
+ate</textbox>
<textbox w="20%" border="1" justify="center">S
+equence Number Range</textbox>
<textbox w="20%" border="1" justify="center">P
+re-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">P
+ost-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="cente
+r" text="$date"/>
<textbox w="20%" border="1" justify="cente
+r" 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" t
+ext=""/>
<textbox w="20%" border="1" justify="center" t
+ext="Total"/>
<textbox w="20%" border="1" justify="right" te
+xt="$pretax_totals"/>
<textbox w="20%" border="1" justify="right" te
+xt="$tax_total"/>
<textbox w="20%" border="1" justify="right" te
+xt="$posttax_totals"/>
</row>
</font>
</if>
</font>
</pagedef>
</pdftemplate>
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.