Forms Data Format
Функции форматирования данных форм (Forms Data Format, PDF) предназначены для работы с формами PDF-документов. Для предварительной информации ознакомьтесь с документом http://partners. adobe.com/asn/developer/acrosdk/forms.html.
Основная идея FDF сходна с формами HTML. Отличие состоит в передаче (отправке) данных, поскольку передаются как сами данные (FDF), так и документ формы (PDF). В обычном случае PDF-форма с данными создается на основе PDF-документа, используемого как шаблон формы. То есть сначала создается FDF-документ (fdf_create()) и устанавливаются значения для каждого ноля ввода (fdf_set_ value()), а затем ассоциируется форма PDF (fdf_set_file()). После этого происходит отправка PDF-формы браузеру (с заголовком: MiraeType appllcation/vnd.fdf). Надстройка браузера (Acrobat reader plugin) распознает MimeType и загружает ассоциированную PDF-форму, заполняя ее данными PDF-документа.
Следующий пример иллюстрирует обработку данных формы.
<?php // Save the FDF data into a temp file
$fdffp = fopenC'test.fdf". "w"):
fwnte($fdffp. $HTTP_FDF_DATA. strlen($HTTP_FDF_DATA));
fclose($fdffp);
// Open temp file and evaluate data
// pdf form содержит значения полей:
date, comment. // publisher, и checkbox: show_publisner.
$fdf = fdf_open("test.fdf"): $date = fdf_get_value($fdf. "date").
echo "The date field has the value '<B>$date</B>'<BR>":
Scomment = fdf_get_value($fdf, "comment");
echo "The comment field has the value ''e>$comment</B>
'<BR>";
if(fdf_get_value($fdf. "show_publisher")
== "On") { Spublisher = fdf_get_value($fdf. "publisher"):
echo "The publisher field has the value '<B>$publisher</B>
'<BR>": } else
echo "Publisher shall not be shown.<BR>":
fdf_close($fdf); ?>
fdf_open
Открытие документа PDF
int fdf_open (string filename)
Открываемый файл должен содержать данные, возвращенные формой PDF. В настоящее время файл необходимо создавать вручную, используя fopen() и записывая данные HTTP_FDF_DATA функцией fwrite().
<?php // Save the PDF data into a temp file
Sfdffp = fopen("test.fdf". "w"):
fwnte($fdffp, $HTTP_FDF_DATA. strlen($HTTP_FDF_DATA)):
fclose($fdffp):
// Open temp file and evaluate data $fdf = fdf_open("test fdf").
fdf_close($fdf): ?>
См. также fdf_close().
fdf_close
Закрытие документа FDF
boolean fdf_close (int fdf_document)
См. также fdf_open().
fdf_create
Создание нового документа FDF
int fdf_create (void )
Функция необходима для установки значений полей.
<?рhр Soutfdf = fdf_create();
fdf_set_value($outfdf. "volume". Svolume. 0):
fdf set_file($outfdf. "http /testfdf/resultlabel.pdf"):
fdf_save($outfdf. "outtest.fdf").
fdf_close($outfdf):
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest fdf". "r"):
fpassthru(Sfp);
unlinkC'outtest.fdf"): ?>
См. также: fdf_close(), fdf_save(), fdf_open().
fdf_save
Сохранение документа PDF
int fdf_save (string filename)
Если имя файла указано как «.», то документ будет выводиться на стандартный поток вывода (отсылаться браузеру). Это не действует, если РНР является модулем apache (для вывода используйте fpassthru()).
См. также: fdf_close() и пример в fdf_create().
fdf_get_value
Получение значения поля
string fdf_get_value (int fdfjJocument, string fieldname)
См. также fdf_set_value().
fdf_set_value
Установка значения поля
bool fdf_set_value (int fdf_document, string fieldname, string value, int isName)
Последний аргумент определяет, будет ли значение поля преобразовываться в PDF Name (isName = 1) или в PDF String (isName = 0).
См. также fdf get value().
fdf_next_field_name
Получение имени следующего поля
string fdf_next_field_name (int fdf_document, string fieldname)
Возвращает имя первого поля (если аргумент fieldname имеет значение NULL) или имя поля, следующего за полем fieldname.
См. также: fdf_set_field(). fdf_get_field().
fdf_set_ap
Установка отображения поля
bool fdf_set_ap (int fdf_document. string field_name, int face, string filename, int page_number)
Устанавливается значение ключа АР. Возможные значения аргумента face: l=FDFNormalAP, 2=FDFRolloverAP, 3=FDFDownAP.
fdf_set_status
Установка ключа STATUS
bool fdf_set_status (int fdf_document, string status)
См. также fdf_get_status().
fdf_get_status
Получение значения ключа STATUS
string fdf_get_status (int fdf_document)
См. также fdf_set_status().
fdf_set_file
Назначение документа формы, установка ключа /F
boo! fdf_set_file (int fdf_document, string filename)
Ключ /F — это ссылка на документ PDF, который заполняется данными, обычно задаваемый URL (например: http:/testfdf/resuttlabel.pdf).
См. также: fdf_get_file() и пример в fdf_create().
fdf_get_file
Получение значения ключа /F
string fdf_get_file (int fdf_document)
См. также fdf_set_file().
fdf_set_flags
Установка флага поля
boo! fdf_set_flags (int fdf_doc, string fieldname, int whichFlags, int newFlags)
См. также fdf_set_opt().
fdf_set_opt
Установка параметра поля
bool fdf_set_opt (int fdf_document. string fieldname, int element, string strl, string str2)
См. также fdf_set_flags().
fdf_set_submit_form_action
Установка действия javascript для формы
bool fdf_set_submit_form_action (int fdf_document, string fieldname, int trigger, string script, int flags)
См. также fdf_set_javascript_action().
fdf_setjavascript_action
Установка действия javascript для поля
bool fdf_set_javascript_action (int fdf_document, string fieldname, int trigger, string script)
См. также fdf_set_submit_form_action().