如何从Perl生成PDF表?

如何从Perl生成PDF表?,perl,pdf,Perl,Pdf,是否有任何perl模块可以在pdf中的指定位置绘制一个表,每个单元格中都有空内容的给定行和列?想到两个模块: 我使用PDF::table生成了一个简单的表,如下所示: 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 =

是否有任何perl模块可以在pdf中的指定位置绘制一个表,每个单元格中都有空内容的给定行和列?

想到两个模块:


我使用PDF::table生成了一个简单的表,如下所示:

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::Report::Table,如下所示:

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' );

下面的解决方案非常有限。例如,您无法轻松地仅更改表格的内部单元格边框,甚至无法使单元格居中对齐。因此,您必须从头开始重新编写功能,似乎?
my$table=PDF::table->new
这就是PDF::Table文档所说的方法,但在最新版本中:
$perl-e'使用PDF::Table$table=PDF::table->new'
警告:页面必须是PDF::API2::Page对象,但它似乎是:at-e第1行。错误:无法从传递的PDF对象设置页面,因为该对象无效!在-e第1行。
(顺便说一句,格式化帮助中说以4个空格开始代码,并以2个空格结束插入换行符是错误的。)@PhilGoetz-这是我在上面发布的一个错误。我刚刚测试了PDF::Table的版本,很可能是我在回答问题时使用的,它运行良好(版本0.02)。