【发布时间】:2017-04-21 23:41:15
【问题描述】:
是否有任何 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 = [
[ '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 'use PDF::Table; $table = PDF::Table->new'<br /> Warning: Page must be a PDF::API2::Page object but it seems to be: at -e line 1. Error: Cannot set page from passed PDF object either as it is invalid! at -e line 1.(顺便说一句,格式化帮助说以 4 个空格和以 2 个空格结尾插入换行符是错误的。)