重新排列PDF文件中的数据

时间:2017-12-27 12:59:46

标签: perl pdf formattable dynamicpdf-table2

我使用Perl生成PDF文件 PDF::API2模块。

我无法以所需的格式将数据写入文件。

目前这是它在PDF文件中的显示方式。

Currently looks like this in PDF

这是我的剧本

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<WeatherData>().Property(a => a.VendorId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
        modelBuilder.Entity<WeatherData>().Property(a => a.WeatherStationId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
        modelBuilder.Entity<WeatherData>().HasKey(w => new
        {
            w.VendorId,
            w.WeatherStationId
        });
    }

但我希望它看起来像这样:

It should be formatted like this

我知道我必须修改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(); 数据,但是怎么做?

1 个答案:

答案 0 :(得分:-1)

PDF::Table table函数采用&#34;数组或数组&#34;作为第三个论点。你现在的结构如下:

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
}