使用PDF :: Report和PDF :: Report :: Table在pdf文件中创建表格

时间:2015-05-12 06:44:00

标签: perl

在我的一个申请表中,要求以表格的形式下载包含报告详细信息的PDF文件。

使用perl中提供的cpan模块创建PDF文件并在其中编写表格。 PDF ::报告和PDF ::报告::表。

请在下面找到代码示例:

#!/usr/bin/perl
use strict;
use warnings;

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' , 'B1' , 'C1'],
['A2' , 'B2' , 'C2'],
['A3' , 'B3' , 'C3'],
['A4' , 'B4' , 'C4'],
['A5' , 'B5' , 'C5'],
['A6' , 'B6' , 'C6'],
['A7' , 'B7' , 'C7'],
['A8' , 'B8' , 'C8'],
['A9' , 'B9' , 'C9'],
['A10' , 'B10' , 'C10'],
['A11' , 'B11' , 'C11'],
['A12' , 'B12' , 'C12'],
['A13' , 'B13' , 'C13'],
['A14' , 'B14' , 'C14'],
['A15' , 'B15' , 'C15'],
['A16' , 'B16' , 'C16'],
['A17' , 'B17' , 'C17'],
['A18' , 'B18' , 'C18'],
['A19' , 'B19' , 'C19'],
['A20' , 'B20' , 'C20'],
['A21' , 'B21' , 'C21'],
['A22' , 'B22' , 'C22'],
['A23' , 'B23' , 'C23'],
['A24' , 'B24' , 'C24'],
['A25' , 'B25' , 'C25'],
['A26' , 'B26' , 'C26'],
['A27' , 'B27' , 'C27'],
['A28' , 'B28' , 'C28'],
['A29' , 'B29' , 'C29'],
['A30' , 'B30' , 'C30'],
['A31' , 'B31' , 'C31'],
['A32' , 'B32' , 'C32'],
['A33' , 'B33' , 'C33'],
['A34' , 'B34' , 'C34'],
['A35' , 'B35' , 'C35'],
['A36' , 'B36' , 'C36'],
['A37' , 'B37' , 'C37'],
['A38' , 'B38' , 'C38'],
['A39' , 'B39' , 'C39'],
['A40' , 'B40' , 'C40'],
['A41' , 'B41' , 'C41'],
];

$pdf->openpage;
$pdf->setAddTextPos( 50, 50  );
$table->addTable( $data, 400 );   # 400 is table width

$pdf->saveAs( 'table.pdf' );

结果:pdf生成2页。 在页面的连续性中缺少行数据。 注意:我正面临着附加结果的跨度镜头的问题。

问题是:缺少行数据。缺少数据[A37,B37,C37]的行。

请帮我解决这个问题。 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好吧,当我运行你的代码时,我得到了

  commandPrompt > ./makepdf.pl 

    Useless use of greediness modifier '?' in regex; marked by <-- HERE in m/(\S{20}? <-- HERE )(?=\S)/ at /usr/local/share/perl/5.20.2/PDF/Table.pm line 386.
    !!! Warning: !!! Incorrect Table Geometry! Setting bottom margin to end of sheet!
     at /usr/local/share/perl/5.20.2/PDF/Report/Table.pm line 94.
    !!! Warning: !!! Incorrect Table Geometry! Setting bottom margin to end of sheet!
     at /usr/local/share/perl/5.20.2/PDF/Report/Table.pm line 94.

我会认为

  

将底部边距设置为工作表的末尾!

!!! Warning: !!! Incorrect Table Geometry!

会与它有关。