Я создаю веб-приложение, в котором размещено несколько приложений PDF. Эти приложения принадлежат третьим сторонам, и для многих из них требуется одна и та же информация (например, для всех требуется дата вашего имени и т. Д.). Я надеюсь использовать FPDF и PDFtk для автозаполнения как можно большего количества информации, беря информацию из одного приложения и перенося ее в другое (так что вам нужно будет ввести свое имя только один раз, и оно будет автоматически заполнено на любом другом приложение).
Я использовал Adobe Acrobat Pro для добавления текстовых полей в приложения, а затем провел их через PDFtk pro с расширенным выводом, установленным на %PDFTK% %PDFIN% output %PDFOUT%
. У меня есть приложения, настроенные для отправки формы через html note. Я использую Internet Explorer для запуска веб-приложения, так как это единственный браузер, который правильно запускает PDF с функцией отправки
Моя проблема , короче говоря, я получаю ошибку FPDF-Merge Error: field n not found
Я полагаю, это вызвано тем, что приложения не имеют одинаковые поля. Например:
- приложение 1 включает в себя поля a, b, c и, d
- приложение 2 включает в себя поля a, d, e и f
приложение 1 может нормально открываться, запускаться и отправляться, однако при попытке открыть приложение 2 я получаю вышеупомянутую ошибку. Я думаю, это потому, что поля b и c были в приложении 1, а затем должны быть в приложении 2.
Я думаю, это потому, что FPDF требует, чтобы все поля в массиве присутствовали в PDF. Мой вопрос , есть ли способ сделать так, чтобы поля в массиве не были обязательными / игнорировались, если их нет в PDF?
PHP-скрипт очень прост для автозаполнения pdf
<?php
session_start();
/***************************
Sample using a PHP array
****************************/
$_SESSION += $_POST;
require('fpdm.php');
$pdf = new FPDM('cicada application form.pdf');
$pdf->Load($_SESSION, false); // second parameter: false if field values are in ISO-8859-1, true if UTF-8
$pdf->Merge();
$pdf->Output();
?>
fdpm.php слишком длинный для публикации, но я скачал его здесь: http://www.fpdf.org/en/script/script93.php
note- Я использую поля массива $_SESSION
для автоматического заполнения PDF, но когда я отправляю PDF, он проходит через $_POST
, поэтому я добавляю поля $_POST
в $_SESSION
Для тех, кто сталкивается с этой проблемой, я думаю, что нашел решение. В fpdm.php я закомментировал `` ``
еще
// $ this-> Error ("поле $ name not found");
on line 893 and 894. As far as I can tell this didn't affect anything else for me and it autofills the application with information from the other applications just fine.