以下是使用 Perl 模块 PDF::API2 创建单个 PDF 文件所需的完整最小代码。第一个 PDF 创建得很好。在开始尝试创建第二个 PDF 时,该过程在第二个实例行失败:
$page = $pdf->page(0);
与错误,Can't call method "new_obj" on an undefined value at C:/Perl64/site/lib/PDF/API2/Basic/PDF/Pages.pm line 92.
为什么?更重要的是,我必须进行哪些更改才能创建第二个 pdf?
#!/usr/bin/perl
use strict;
use warnings;
use PDF::API2;
my $pdf1 = 'hello_world.pdf';
my $pdf2 = 'hi_mom.pdf';
my $text1 = "Hello World";
my $text2 = "Hi Mom";
my $pdf = PDF::API2->new(); #dynamic pdf file name
my $font = $pdf->corefont( 'Times-Roman', -encoding => 'latin1' );
my $page = $pdf->page(0);
$page->mediabox( 612.0, 792.0 ); #8.5" x 11.0" in PostScript points
my $msg_text = $page->text;
$msg_text->transform(-translate =>[72, 144]); #x,y position in points
$msg_text->fillcolor('black');
$msg_text->font($font, 100);
$msg_text->text($text1);
$pdf->saveas($pdf1);
print "Make 2nd pdf.\n";
$page = $pdf->page(0); #FAILS!
{..}
$msg_text->text($text2);
$pdf->saveas($pdf2);
print "2nd pdf created\n";
$pdf->end();
1;