我正在使用http://www.fpdf.org/en/script/script93.php中的此FPDF脚本将html表单数据填充到模板中的pdf字段。这样:
require('fpdm/fpdm.php');
$fields = array(
'name' => $_POST['_fid_6'],
'address' => $_POST['_fid_7'],
'city' => $_POST['_fid_8'],
);
$pdf = new FPDM('template.pdf');
$pdf->Load($fields, false); // second parameter: false if field values are in ISO-8859-1, true if UTF-8
$pdf->Merge();
$pdf->Output('qaf.pdf', 'F');
当我使用zip中提供的示例template.pdf时,工作正常。但是,当我使用自己的pdf模板(template3.pdf),并且:
require('fpdm/fpdm.php');
$fields = array(
'cascade' => $_POST['_fid_6'],
'structuretype' => $_POST['_fid_7'],
'marketmanager' => $_POST['_fid_8'],
);
$pdf = new FPDM('template3.pdf');
$pdf->Load($fields, false); // second parameter: false if field values are in ISO-8859-1, true if UTF-8
$pdf->Merge();
$pdf->Output('qaf.pdf', 'F');
我收到错误 FPDF-Merge错误:找不到字段级联
我正在使用Acrobat XI Pro。我在我的pdf模板&中检查了字段名称。 HTML表单。我已经优化了pdf以删除压缩和快速Web视图,并使其与Acrobat 5.0及更高版本兼容。我的模板是7页,但我只尝试了1页,结果相同。我已经尝试丢弃其他数据和对象,但仍然会遇到同样的错误。
我的pdf模板中必须存在与示例中的template.pdf不同的内容,并导致错误。但我不知道它可能是什么。我不能在这里包含我的实际模板pdf,因为它是专有的。
关于可能导致错误的任何想法?谢谢!
答案 0 :(得分:1)
为此你必须压缩你的pdf
然后运行压缩你的fdf你需要安装pdfftk
然后使用以下命令行进程
C:\Users\Deepak\Desktop>pdftk template_3.pdf output template3_o.pdf
然后使用
template3_o.pdf
而不是
template_3.pdf
答案 1 :(得分:0)
您应该使用PDFtk(http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/)将模板转换为与脚本兼容的版本!
答案 2 :(得分:0)
当我在 pdf 中有多个同名字段时出现此错误。尽管它们在 Adobe Reader 中显示为 BuyerEmail,但在字段列表的右侧,它们被引用为 BuyerEmail#0、BuyerEmail#1 等,但即使添加 #0、#1,我也无法在 FPDF 中引用它们。等解决方案是重命名文档中的字段,然后再次通过 pdftk 运行它。然后它确实起作用了。
答案 3 :(得分:-1)
为了使您的pdf适用于此代码,您的pdf必须包含您在$ fields数组中指定的字段。所以要做到这一点我有一个简单的解决方案。