我需要多次填写一个 PDF 模板并连接结果。当我说多次时,我的意思是最多几百次,可能超过一千次。
我可以pdftk fill_form
一个一个地使用 ,然后使用pdftk cat
。我们可以很容易地将其并行化。
我很好奇这是否是唯一的选择,或者是否有一个软件(Linux + OSX,命令行)可以让我说“使用这个模板和这些字段集,填写这个表格,然后连接文件”,这样我就可以避免单独做每一个。再说一次,如果确实存在某些东西,但它并不比仅使用fork
并行化方法快,那么它可能不值得。
我的 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;