XXXVI. Funciones del Formato de Datos de Formulario
El Formato de Datos de Formulario (FDF) es un formato para la
gestión de formularios al interior de documentos PDF. Es
recomendable que lea la documentación en http://partners.adobe.com/asn/acrobat/forms.jsp para más
información sobre lo que FDF es, y el modo de usarlo en
general.
La idea general de FDF es similar a la de los formularios HTML. La
diferencia es básicamente el formato en que los datos son
transmitidos al servidor cuando el botón de envío es
pulsado (el cual viene a ser el Formato de Datos de Formulario) y
el formato del formulario mismo (el cual es el Formato de
Documento Portable, PDF). El procesamiento de los datos FDF es una
de las características ofrecidas por las funciones
fdf. Pero hay más. También es posible tomar un
formulario PDF existente y poblar los campos de entrada con datos
sin modificar el formulario mismo. En tal caso, es posible crear
un documento FDF (fdf_create()), definir los
valores de cada campo de entrada
(fdf_set_value()) y asociarlo con un formulario
PDF (fdf_set_file()). Finalmente debe ser
enviado al navegador con el tipo Mime
application/vnd.fdf. El plugin lector de
Acrobat en su navegador reconoce el tipo Mime, lee el formulario
PDF asociado y aplica los datos del documento FDF.
Si echa un vistazo a un documento FDF con un editor de texto,
encontrará un objeto de catálogo con el nombre
FDF. Tal objeto puede contener cierto
número de entradas como Fields,
F, Status etc.. Las entradas
usadas con más frecuencia son Fields, la
cual apunta a una lista de campos de entrada, y
F que contiene el nombre de archivo del
documento PDF al que pertenecen estos datos. Esas entradas son
referenciadas en la documentación FDF como /F-Key o
/Status-Key. La modificación de estas entradas se realiza
por medio de funciones como fdf_set_file() y
fdf_set_status(). Los campos son mofidicados
con fdf_set_value(),
fdf_set_opt() etc..
Es necesario el toolkit SDK para FDF disponible en http://partners.adobe.com/asn/acrobat/forms.jsp. A partir de PHP 4.3
necesita por lo menos la versión 5.0 del SDK. La
biblioteca del toolkit FDF se encuentra disponible en forma
binaria únicamente, las plataformas soportadas por Adobe
son Win32, Linux, Solaris y AIX.
You must compile PHP with
--with-fdftk[=DIR].
Nota:
If you run into problems configuring PHP with fdftk support, check
whether the header file fdftk.h and the library
libfdftk.so are at the right place.
The configure script supports both the directory structure of the
FDF SDK distribution and the usual DIR/include /
DIR/lib layout, so you can point it either
directly to the unpacked distribution directory or put the header
file and the appropriate library for your platform into e.g.
/usr/local/include and
/usr/local/lib and configure with
--with-fdftk=/usr/local.
Note to Win32 Users:
In order to enable this module on a Windows environment, you must copy
fdftk.dll from the DLL folder of the PHP/Win32 binary
package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32
or C:\WINDOWS\SYSTEM32)
Esta extensión no tiene directivas de
configuración en php.ini.
La mayoría de funciones fdf requieren un recurso
fdf como su primer parámetro. Un
recurso fdf es un gestor con un archivo
fdf abierto. Los recursos fdf pueden
obtenerse usando fdf_create(),
fdf_open() y
fdf_open_string().
Estas constantes están
definidas por esta extensión y estarán disponibles
solamente cuando la extensión ha sido o bien compilada dentro
de PHP o grabada dinámicamente en tiempo de ejecución.
Los siguientes ejemplos muestran únicamente la
evaluación de datos del formulario.
Ejemplo 1. Evaluación de un documento FDF
<?php // Abrir un fdf desde la cadena de entrada entregara por la extension // El formulario pdf contenia varios campos de entrada de texto con los // nombres volumen, fecha, comentario, editorial, editor, y dos // cuadros de verificacion mostrar_editorial y mostrar_editor. $fdf = fdf_open_string($HTTP_FDF_DATA); $volumen = fdf_get_value($fdf, "volumen"); echo "El campo volumen tiene el valor '<b>$volumen</b>'<br />";
$fecha = fdf_get_value($fdf, "fecha"); echo "El campo fecha tiene el valor '<b>$fecha</b>'<br />";
$comentario = fdf_get_value($fdf, "comentario"); echo "El campo comentario tiene el valor '<b>$comentario</b>'<br />";
if (fdf_get_value($fdf, "mostrar_editorial") == "On") { $editorial = fdf_get_value($fdf, "editorial"); echo "El campo editorial tiene el valor '<b>$editorial</b>'<br />"; } else echo "La editorial no será mostrada.<br />";
if (fdf_get_value($fdf, "mostrar_editor") == "On") { $editor = fdf_get_value($fdf, "editor"); echo "El campo editor tiene el valor '<b>$editor</b>'<br />"; } else echo "El editor no será mostrado.<br />"; fdf_close($fdf); ?>
|
|
|