Funciones del Formato de Datos de Formulario

XXXVI. Funciones del Formato de Datos de Formulario

Introducci贸n

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..

Requisitos

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.

Instalaci贸n

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)

Configuraci贸n en tiempo de ejecuci贸n

Esta extensi贸n no tiene directivas de configuraci贸n en php.ini.

Tipos de recursos

fdf

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().

Constantes predefinidas

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.

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)

FDFNormalAP (integer)

FDFRolloverAP (integer)

FDFDownAP (integer)

Ejemplos

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&aacute; 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&aacute; mostrado.<br />";
fdf_close($fdf);
?>

Tabla de contenidos
fdf_add_doc_javascript -- Adds javascript code to the FDF document
fdf_add_template -- Adds a template into the FDF document
fdf_close -- Cerrar un documento FDF
fdf_create -- Crear un documento FDF
fdf_enum_values -- Call a user defined function for each document value
fdf_errno -- Return error code for last fdf operation
fdf_error -- Return error description for fdf error code
fdf_get_ap -- Get the appearance of a field
fdf_get_attachment -- Extracts uploaded file embedded in the FDF
fdf_get_encoding -- Get the value of the /Encoding key
fdf_get_file -- Obtener el valor de la clave /F
fdf_get_flags -- Gets the flags of a field
fdf_get_opt -- Gets a value from the opt array of a field
fdf_get_status -- Obtener el valor de la clave /STATUS
fdf_get_value -- Obtener el valor de un campo
fdf_get_version -- Gets version number for FDF API or file
fdf_header -- Sets FDF-specific output headers
fdf_next_field_name -- Obtener el nombre del siguiente campo
fdf_open_string -- Read a FDF document from a string
fdf_open -- Abrir un documento FDF
fdf_remove_item -- Sets target frame for form
fdf_save_string -- Returns the FDF document as a string
fdf_save -- Guardar un documeto FDF
fdf_set_ap -- Ajusta la apariencia de un campo
fdf_set_encoding -- Sets FDF character encoding
fdf_set_file -- Fijar el valor de la clave /F
fdf_set_flags -- Sets a flag of a field
fdf_set_javascript_action -- Sets an javascript action of a field
fdf_set_on_import_javascript -- Adds javascript code to be executed when Acrobat opens the FDF
fdf_set_opt -- Sets an option of a field
fdf_set_status -- Fija el valor de la clave /STATUS
fdf_set_submit_form_action -- Sets a submit form action of a field
fdf_set_target_frame -- Set target frame for form display
fdf_set_value -- Fijar el valor de un campo
fdf_set_version -- Sets version number for a FDF file