Использование данных формы Breezing Forms для заполнения PDF-формы

Я успешно создал 3 формы Breezing Forms на сайте Joomla и хотел бы знать, как лучше всего использовать данные формы, сохраненные в базе данных, для заполнения формы PDF, а затем отправить их по электронной почте на определенный адрес в качестве последнего шага, когда форма завершено пользователем. Я знаю, что с помощью Breezing Forms вы можете экспортировать данные формы в PDF, но мои формы слишком сложны для формата такого типа экспорта. Что мне нужно, так это данные формы для заполнения отформатированной формы PDF.

Вот пример одной из форм и PDF-файла, который она должна заполнить:
Форма: http://www.nutriworkscnc.com/Development/index.php?option=com_breezingforms&вид = форма&Itemid = 640
PDF: http://www.nutriworkscnc.com/Development/images/forms/history.pdf

1

Решение

По сути, у вас есть два способа заполнить форму PDF: на стороне клиента и на стороне сервера.

Для заполнения на стороне клиента вы должны создать файл FDF с ключом / F, указывающим на базовый PDF (некоторые люди называют этот файл шаблона). Затем вы отправляете FDF пользователю, а опытный просмотрщик PDF загружает базовый PDF и заполняет его.

Если вам нужно обслуживать тупых зрителей PDF, вы должны полагаться на заполнение на стороне сервера. Для этого существуют приложения, такие как FDFMerge от Appligent, или библиотеки, такие как iText. Затем вам нужно будет подготовить данные соответствующим образом для вашего инструмента заполнения на стороне сервера.

0

Другие решения

Если вы хотите решить эту проблему с помощью PHP, вы можете взглянуть на Компонент SetaPDF-FormFiller (не бесплатно!). С его помощью вы можете заполнить поля через очень простой интерфейс:

// Create an http writer
$writer = new SetaPDF_Core_Writer_Http("filled.pdf");
// Load document by filename
$document = SetaPDF_Core_Document::loadByFilename("history.pdf", $writer);

// Initiate a form filler instance
$formFiller = new SetaPDF_FormFiller($document);
// Get the fields instance
$fields = $formFiller->getFields();

// fill in the fields
$fields["Client Name"]->setValue("Test Person");
$fields["Address street"]->setValue("Teststreet 1");
$fields["Address city zip"]->setValue(12345);
$fields["diabetes"]->setValue(true);
$fields["diar"]->setValue(true);

// done
$document->save()->finish();
0