2009-11-16 69 views
5

是否有任何perl模塊可以在指定的位置繪製pdf格式的表格,給定的行和列以及每個單元格中的空白內容?如何從Perl製作PDF表格?

+0

下面的解決方案是非常有限的。例如,您不能輕易更改表格的內部單元格邊界,甚至不能製作居中對齊的單元格。所以你必須從頭開始重新編寫功能,看起來如何? – sventechie 2011-09-23 21:00:14

回答

11

兩個浮現在腦海中:

use PDF::API2; 
use PDF::Table; 

my $pdf = PDF::API2->new(-file => 'table.pdf'); 
my $table = PDF::Table->new; 
my $page = $pdf->page; 

my $data = [ 
    [ 'A1', 'A2', 'A3' ], 
    [ 'B1', 'B2', 'B3' ], 
    [ 'C1', 'C2', 'C3' ], 
]; 

$table->table($pdf, $page, $data, 
       x  => 50, 
       w  => 495, 
       start_y => 750, 
       next_y => 700, 
       start_h => 300, 
       next_h => 500, 
); 

$pdf->save; 


我使用PDF ::表像這樣製作一個簡單的表


並與PDF ::報告::像這樣的表:

use PDF::Report; 
use PDF::Report::Table; 

my $pdf = PDF::Report->new(PageSize => 'A4', PageOrientation => 'Portrait'); 
my $table = PDF::Report::Table->new($pdf); 

my $data = [ 
    [ 'A1', 'A2', 'A3' ], 
    [ 'B1', 'B2', 'B3' ], 
    [ 'C1', 'C2', 'C3' ], 
]; 

$pdf->openpage; 
$pdf->setAddTextPos(50, 50 ); 
$table->addTable($data, 400); # 400 is table width 

$pdf->saveAs('table.pdf'); 
+0

'my $ table = PDF :: Table-> new;' 這就是PDF :: Table文檔所說的做法,但是使用最新版本: '$ perl -e'使用PDF: :表; $ table = PDF :: Table-> new'
警告:頁面必須是PDF :: API2 :: Page對象,但它似乎是: at -e line 1. 錯誤:無法從傳遞的PDF對象設置頁面無論是因爲它是無效的! 在-e行1.'(BTW的格式幫助,說要與4位開始的代碼,並用2個空格結尾插入斷行是錯誤的。) – 2015-05-29 18:09:29

+0

@PhilGoetz - 因爲我上面公佈了一個錯誤,多數民衆贊成被引入。我剛剛測試了PDF :: Table的版本,最有可能在答案時使用,它工作正常(版本0.02)。 – draegtun 2015-06-04 10:01:05