生成一个矩形框

时间:2017-12-18 17:37:11

标签: perl pdf

我使用Perl生成带有模块的PDF文件 PDF::API2。 我想绘制矩形框,每个框应包含一组基于哈希的数据。我正在使用以下方法显示数据,该方法以表格格式显示。

my $pdf = new PDF::API2(-file => "mydata.pdf");
my $page = $pdf->page;
.............
.............
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,
     padding_right => 10,
);

其中@tbl包含数据作为哈希数组。

应根据哈希键绘制矩形框。如果我有N个键,那么应该用它们的值绘制N个框。

如何使用Perl以PDF格式绘制框?我无法在PDF::API2找到任何功能。

以下是它应该如何显示的示例图:

enter image description here

2 个答案:

答案 0 :(得分:1)

请参阅 PDF::API2::Content for 添加图形的方法

特别是,路径构建部分描述了将绘制一个或多个矩形的rect方法

答案 1 :(得分:1)

PDF::Table对象构造函数的第三个参数,在您的示例\@tbl中,是您要将文本写入表中的位置。你所声明的是一系列哈希值。这是一个数组数组。

更确切地说,它是一个数组引用。每个元素都是另一个数组ref,表示表的每一行。每个嵌套数组的元素都是该行的单元格。

use strict;
use warnings;
use PDF::API2;
use PDF::Table;    

my $pdf = new PDF::API2(-file => "mydata.pdf");
my $page = $pdf->page;
my $pdftable = new PDF::Table;

my @tbl = (
    ["1\tNAME:ABC\n\tGRADE:4"],
    ["2\tNAME:XYZ\n\tGRADE:5"],
);

$pdftable->table(
     $pdf,
     $page,
     \@tbl,
     x             => 50,
     w             => 400,
     start_y       => 630,
     start_h       => 630,
     next_y        => 630,
     next_h        => 630,
     padding       => 5,
     padding_right => 10,
);

$pdf->saveas('mydata.pdf');