1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
#!/usr/bin/env perl
use warnings;
use strict;
use diagnostics;
=pod
This example file gives an overview of the functionalities provided by PDF::Table
Also it can be used to bootstrap your code.
=cut
#Please use TABSTOP=4 for best view
use PDF::API2;
use PDF::Table;
my $pdftable = new PDF::Table;
my $pdf = new PDF::API2( -file => "table_of_lorem.pdf" );
my $page = $pdf->page();
$pdf->mediabox('A4');
# A4 as defined by PDF::API2 is h=842 w=545 for portrait
# some data to layout
my $some_data = [
[ 'Header', 'Row', 'Test' ],
[
'1 Lorem ipsum dolor',
'Donec odio neque, faucibus vel',
'consequat quis, tincidunt vel, felis.'
],
[ 'Nulla euismod sem eget neque.', 'Donec odio neque', 'Sed eu velit.' ],
[
'Az sym bulgarin',
"i ne razbiram DESI\ngorniq \nezik",
"zatova reshih
da dobavq
edin ili dva
novi reda"
],
[
'da dobavq edin dva reda',
'v tozi primer',
'na bulgarski ezik s latinica'
],
[
'1 Lorem ipsum dolor',
'Donec odio neque, faucibus vel',
'consequat quis, tincidunt vel, felis.'
],
[ 'Nulla euismod sem eget neque.', 'Donec odio neque', 'Sed eu velit.' ],
[ 'Az sym bulgarin', 'i ne razbiram gorniq ezik', 'zatova reshih' ],
[
'da dobavq edin dva reda',
'v tozi primer',
'na bulgarski ezik s latinica'
],
];
# build the table layout
$pdftable->table(
# required params
$pdf,
$page,
$some_data,
# Geometry of the document
x => 50,
-w => 495
, # dashed params supported for backward compatibility. dash/non-dash params can be mixed
start_y => 792,
next_y => 700,
-start_h => 400,
next_h => 500,
# some optional params for fancy results
-padding => 3,
padding_right => 10,
background_color_odd => 'lightblue',
background_color_even => "#EEEEAA", #cell background color for even rows
header_props => {
bg_color => "#F0AAAA",
font => $pdf->corefont( "Helvetica", -encoding => "utf8" ),
font_size => 14,
font_color => "#006600",
repeat => 1
},
column_props => [
{}, #no properties for the first column
{
min_w => 250,
justify => "right",
font => $pdf->corefont( "Times", -encoding => "latin1" ),
font_size => 14,
font_color => 'white',
background_color => '#8CA6C5',
},
],
cell_props => [
[ #This is the first(header) row of the table and here wins %header_props
{
background_color => '#000000',
font_color => 'blue',
},
# etc.
],
[ #Row 2
{ #Row 2 cell 1
background_color => '#000000',
font_color => 'white',
},
{ #Row 2 cell 2
background_color => '#AAAA00',
font_color => 'red',
},
{ #Row 2 cell 3
background_color => '#FFFFFF',
font_color => 'green',
},
# etc.
],
[ #Row 3
{ #Row 3 cell 1
background_color => '#AAAAAA',
font_color => 'blue',
},
# etc.
],
# etc.
],
);
$pdf->saveas();
|