|
XXXI. Функции Forms Data Format
Forms Data Format (FDF) это формат для обработки форм в PDF-документах. Вам
необходимо прочесть документацию
http://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 с
http://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 - устанавливает значение поля
|
|