|
XXXI. Функции Forms Data Format
Forms Data Format (FDF) это формат для обработки форм в PDF-документах. Вам
необходимо прочесть документацию
https://partners.adobe.com/asn/developer/acrosdk/forms.html, чтобы узнать больше о том, что такое FDF и как его использовать.
Общая идея FDF напоминает HTML-формы. Разница в основном в формате передачи
данных на сервер при нажатии копки submit (это формат Form Data Format) и в
формате самой формы (которая имеет формат Portable Document Format, PDF).
Процессинг FDF-данных является одной из возможностей, предоставляемой fdf-функциями.
Но есть и ещё кое-что. Можно также взять существующую PDF-форму и заполнить поля ввода (input)
данными без модификации самой формы. Тогда можно будет создать FDF-документ
(fdf_create()), установить значения каждого поля ввода
(fdf_set_value()) и ассоциировать его с PDF-формой
(fdf_set_file()). Наконец, он отправляется браузеру с MimeType application/vnd.fdf. Компонент Acrobat
reader вашего браузера распозн́ает MimeType, прочитает
ассоциированную PDF-форму и заполнит её данными из FDF-документа.
Если вы просмотрите FDF-документ в текстовом редакторе, вы увидите объект catalogue с именем FDF. Такой объект может содержать количество вхождений
Fields, F, Status etc. Чаще всего используются вхождения Fields,
которое указывает на список input-полей, и F, которое содержитfilename PDF-документа, которому принадлежат эти данные. Эти вхождения
называются в FDF-документации как /F-Key или /Status-Key.
Модификация этих вхождений выполняется функциями вроде fdf_set_file() и
fdf_set_status(). Поля модифицируются функциями вроде
fdf_set_value(), fdf_set_opt() etc.
Вы обязаны загрузить FDF toolkit с
https://partners.adobe.com/asn/developer/acrosdk/forms.html
УстановкаВы обязаны скомпилировать PHP с--with-fdftk[=DIR].
Примечание: Если у вас появляются проблемы с конфигурированием PHP с поддержкой fdftk,
проверьте, находятся ли header-файл FdfTk.h и библиотека libFdfTk.so в
соответствующих местах. Они должны быть в каталогах fdftk-dir/include и в
fdftk-dir/lib. Этих директорий не будет, если вы просто распакуете дистрибутив FdfTk.
Это расширение не определяет никаких директив конфигурации.
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
- FDFValue (integer)
- FDFStatus (integer)
- FDFFile (integer)
- FDFID (integer)
- FDFFf (integer)
- FDFSetFf (integer)
- FDFClearFf (integer)
- FDFFlags (integer)
- FDFSetF (integer)
- FDFClrF (integer)
- FDFAP (integer)
- FDFAS (integer)
- FDFAction (integer)
- FDFAA (integer)
- FDFAPRef (integer)
- FDFIF (integer)
- FDFEnter (integer)
- FDFExit (integer)
- FDFDown (integer)
- FDFUp (integer)
- FDFFormat (integer)
- FDFValidate (integer)
- FDFKeystroke (integer)
- FDFCalculate (integer)
В следующем примере показано простое вычисление данных формы.
Пример 1. Обсчёт FDF-документа
<?php
// сохранить FDF-данные во временном файле
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);
// открыть временный файл и обсчитать данные
// pdf-форма содержала несколько полей ввода текста с именами:
// volume, date, comment, publisher, preparer, и два переключателя/checkbox:
// show_publisher и show_preparer
$fdf = fdf_open("test.fdf");
$volume = fdf_get_value($fdf, "volume");
echo "The volume field has the value '<B>$volume</B>'<BR>";
$date = fdf_get_value($fdf, "date");
echo "The date field has the value '<B>$date</B>'<BR>";
$comment = fdf_get_value($fdf, "comment");
echo "The comment field has the value '<B>$comment</B>'<BR>";
if(fdf_get_value($fdf, "show_publisher") == "On") {
$publisher = fdf_get_value($fdf, "publisher");
echo "The publisher field has the value '<B>$publisher</B>'<BR>";
} else
echo "Publisher shall not be shown.<BR>";
if(fdf_get_value($fdf, "show_preparer") == "On") {
$preparer = fdf_get_value($fdf, "preparer");
echo "The preparer field has the value '<B>$preparer</B>'<BR>";
} else
echo "Preparer shall not be shown.<BR>";
fdf_close($fdf);
?> |
|
- Содержание
- fdf_add_template - добавляет шаблон в FDF-документ
- fdf_close - закрывает FDF-документ
- fdf_create - создаёт новый FDF-документ
- fdf_get_file - получает значение ключа /F
- fdf_get_status - получает значение ключа /STATUS
- fdf_get_value - получает значение поля
- fdf_next_field_name - получает имя следующего поля
- fdf_open - открывает FDF-документ
- fdf_save - сохраняет FDF-документ
- fdf_set_ap - устанавливает отображение поля
- fdf_set_encoding - устанавливает FDF-кодировку символов FDF
- fdf_set_file - устанавливает значение ключа /F key
- fdf_set_flags - устанавливает флаг поля
- fdf_set_javascript_action - устанавливает акцию javascript для поля
- fdf_set_opt - устанавливает опцию поля
- fdf_set_status - устанавливает значение ключа /STATUS
- fdf_set_submit_form_action - устанавливает акцию submit form поля
- fdf_set_value - устанавливает значение поля
| |