生成一个矩形框

问题描述 投票:0回答:2

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

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找到任何功能。

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

perl pdf
2个回答
1
投票

有关添加图形的方法,请参阅PDF::API2::Content

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


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');
© www.soinside.com 2019 - 2024. All rights reserved.