dsx has asked for the wisdom of the Perl Monks concerning the following question:

hi, i want to create a table with PDF :: Table. because the table has many columns, i need landscape mode. how can i do that? i have already try the following code. but if i make it this way, the table is rotated too.

#!/usr/bin/perl -w use strict; use PDF::API2; use PDF::Table; my $pdf = PDF::API2->new( -file => 'table.pdf' ); my $table = PDF::Table->new; my $page = $pdf->page; $page->rotate(90); my $hdr_props = { font => $pdf->corefont("Helvetica", -encoding => + "utf8"), font_size => 14, font_color => '#000000', bg_color => 'grey', repeat => 0, }; $table->table( $pdf, $page, $data, x => 50, w => 495, start_y => 750, next_y => 700, start_h => 300, next_h => 500, padding => 3, header_props => $hdr_props, ); $pdf->save;

Replies are listed 'Best First'.
Re: pdf::table landscape
by tangent (Parson) on Apr 01, 2012 at 20:36 UTC
    Try the following to get an A4 landscape page:
    my $pdf = PDF::API2->new( -file => 'table.pdf' ); $pdf->mediabox(842, 595);
    For other paper sizes you can work out from the following table (taken from PDF::API2::Resource::PaperSizes):
    '4a' => [ 4760, 6716 ], '2a' => [ 3368, 4760 ], 'a0' => [ 2380, 3368 ], 'a1' => [ 1684, 2380 ], 'a2' => [ 1190, 1684 ], 'a3' => [ 842, 1190 ], 'a4' => [ 595, 842 ], 'a5' => [ 421, 595 ], 'a6' => [ 297, 421 ], '4b' => [ 5656, 8000 ], '2b' => [ 4000, 5656 ], 'b0' => [ 2828, 4000 ], 'b1' => [ 2000, 2828 ], 'b2' => [ 1414, 2000 ], 'b3' => [ 1000, 1414 ], 'b4' => [ 707, 1000 ], 'b5' => [ 500, 707 ], 'b6' => [ 353, 500 ], 'letter' => [ 612, 792 ], 'broadsheet' => [ 1296, 1584 ], 'ledger' => [ 1224, 792 ], 'tabloid' => [ 792, 1224 ], 'legal' => [ 612, 1008 ], 'executive' => [ 522, 756 ], '36x36' => [ 2592, 2592 ],

      thanks. it works