#!/usr/bin/perl use DBI; use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); use strict; use PDF::API2; use PDF::API2::Annotation; use PDF::Table; my $pdftable = new PDF::Table; my $pdf = new PDF::API2(-file => "M:\\pdf\\table-1.pdf"); $pdf->preferences( -thumbs => 1, ); my $page = $pdf->page; $page->gfx; $page->mediabox(792,612); # some data to layout my $some_data =[ ["Header 1", "Header 2", "Header 3", "Header 4", "Header 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ["Content 1", "Content 2", "Content 3", "Content 4", "Content 5" ], ]; my $left_edge_of_table = 50; # build the table layout $pdftable->table( # required params $pdf, $page, $some_data, x => $left_edge_of_table, w => 495, start_y => 750, next_y => 700, start_h => 300, next_h => 500, # some optional params padding => 5, padding_right => 10, background_color_odd => "gray", background_color_even => "lightblue", #cell background color for even rows new_page_func => sub { my $url = qq{ http://www.somewhere.com}; my $next_page = $pdf->page(); $next_page->mediabox(792,612); #my $annot = $next_page->annotation(); # an annotation is a component of a page #$annot->url($url,-rect =>[100,50,310,30],-border =>[1,1,1]); #return $annot; return $next_page; }, ), # do other stuff with $pdf $pdf->saveas();