批量PDF表格填写

时间:2011-12-22 17:22:16

标签: pdf pdftk

我需要多次填写单个PDF模板并连接结果。当我说多重时,我的意思是几百次,可能超过一千次。

我可以逐个pdftk fill_form执行此操作,然后使用pdftk cat。我们可以很容易地将其并行化。

我很好奇这是否是唯一的选择,或者是否有一个软件(Linux + OSX,命令行)允许我说“拿这个模板,以及这些字段集,填写这个表格,然后连接文件“这样我就可以避免单独完成每一个。然后,如果确实存在某些东西,但它并不比仅仅执行fork并行化方法更快,那么它就是可能不值得。

1 个答案:

答案 0 :(得分:0)

我的Perl库CAM::PDF可以做到这一点。表单填写有点弱(例如,它不支持复选框)但连接效果很好。

#perl -w                                                                            
use strict;
use CAM::PDF;

my $infile = 'in.pdf';
my $outfile = 'out.pdf';
my @fills = (
   { name => 'John' },
   { name => 'Fred' },
);

my $pdf = CAM::PDF->new($infile) or die $CAM::PDF::errstr;
for my $i (0 .. @fills-1) {
   my $filledPDF = $i == 0 ? $pdf : CAM::PDF->new($infile);
   $filledPDF->fillFormFields(%{$fills[$i]});
   if ($i > 0) {
      $pdf->appendPDF($filledPDF);
   }
}
$pdf->cleanoutput($outfile) or die;