重新排列PDF文件中的数据
我正在使用Perl来生成带有 PDF::API2
模块的PDF文件。重新排列PDF文件中的数据
我很难以所需的格式将数据写入文件。
目前,这是它如何出现在PDF文件中。
这里是我的脚本
my %data = ( '1' => {
'SEQUENCE' => '1',
'NAME' => 'John',
'ADDR1' => 'Road 1',
'GRADE' => '5'
},
'2' => {
'SEQUENCE' => '2',
'NAME' => 'Smith',
'ADDR1' => 'Road 2',
'GRADE' => '6'
}
);
...
...
my @rows = qw(NAME ADDR1 GRADE);
for my $id (sort keys %data){
push @tbl, [ @{$data{$id}}{@rows} ];
($name, $addr, $grade) = ($data{$id}{'NAME'}, $data{$id}{'ADDR1'}, $data{$id}{'GRADE'});
}
...
...
my $pdftable = new PDF::Table;
$pdftable->table(
$pdf,
$page,
\@tbl,
x => 50,
w => 400,
start_y => 630,
start_h => 630,
next_y => 630,
next_h => 630,
padding => 5,
border => 1,
padding_right => 10,
);
$pdf->saveas();
但我希望它出现这样的:
我知道我必须做出修改@tbl
数据,但是如何?
回答:
的PDF::Table
table函数采用一个“阵列或多个阵列”作为它的第三个参数。您目前有它strucutred这样的:
my @tbl = ([$name,$addr,$grade], [...])
每个嵌套数组(什么是[]
括号内)是表的新行,和元素数组是行的单元格。因此,相反,你想让它的结构:
my @tbl = (['NAME',$name], ['ADDR1',$addr], ['GRADE',$grade], [...])
要使用您的%data
结构,它构造:
for my $id (sort keys %data) { push @tbl, [$_, $data{$id}->{$_}] for qw/NAME ADDR1 GRADE/;
push @tbl, [qw/- -/]; # to add a blank row as a separator
}
以上是 重新排列PDF文件中的数据 的全部内容, 来源链接: utcz.com/qa/265191.html