Изменить, чтобы сделать поля массива необязательными с FPDF - PullRequest
0 голосов
/ 29 мая 2019

Я создаю веб-приложение, в котором размещено несколько приложений 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...