#!/usr/bin/perl
use strict;
use warnings;
use PDF::API2;
use PDF::Table;
use Data::Dump 'pp';
my $data = {
1=>{ 'main' => [
[ '12345', 'MONICA', '01/01/1900','0X10' ],
[ '000001', 'MARY L', '01/01/2000','0111P' ],
[ '8884', 'JOHN M.','01/01/1932','0OK8' ],],
'type' => [
['Main','1900','Red'],
['APT', '1290','Blue'],
['AVAL','1921','Green'],],
'princ' => [
['Q3.0', 'OK','1900-01-01','N','O','O','X','Y'],
['12w','PL','2000-01-02','N','P','O','X','A'],],
}};
my $pdftable = new PDF::Table;
my $pdf = new PDF::API2( -file => "table.pdf" );
my $page = $pdf->page;
$pdf->mediabox(842, 595);
foreach my $num ( keys %{$data} ) {
my $main = $data->{$num}{main};
unshift @$main,["Account", "Name", "Date", "Code #"];
#pp $main;
my $type = $data->{$num}{type};
unshift @$type,["HOUSE", "YEAR", "COLOR"];
#pp $type;
my $princ = $data->{$num}{princ};
unshift @$princ,["AC #","Name", "DATE", "Ref","Case #1","Case #2", "
+Case #3", "Case #4"];
#pp $princ;
#for my $i ( 0 .. $#{ $main } ){
# more stuff
my $y = 500;
(undef,undef,$y) = add_more( data => $main, y => $y );
(undef,undef,$y) = add_more( data => $type, y => $y-10 );
(undef,undef,$y) = add_more( data => $princ, y => $y-10 );
#}
}
$pdf->save;
sub add_more{
my (%args) = @_;
my $data = $args{data};
my $y = $args{y};
$pdftable->table(
$pdf, $page, $data,
-x => 100,
-start_y => $y, -next_y => 700,
-start_h => 300, -next_h => 500,
-w => 570, -padding => 5,
-column_props=>[ map{ { justify => 'center' } }1..@{$data->[0]} ],
);
}
poj |