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 » https://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 » https://partners.adobe.com/asn/acrobat/forms.jsp. A partir de PHP 4.3.0 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].
Note: 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: Note to Win32 Users In order for this extension to work, there are DLL files that must be available to the Windows system PATH. See the FAQ titled "How do I add my PHP directory to the PATH on Windows" for information on how to do this. Although copying DLL files from the PHP folder into the Windows system directory also works (because the system directory is by default in the systems PATH), it is not recommended. This extension requires the following files to be in the PATH: fdftk.dll
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.
Example#1 Evaluación de un documento FDF
<?php
// Abrir un fdf desde la cadena de entrada entregada por la extensión
// El formulario pdf contenÃa varios campos de entrada de texto con los
// nombres volumen, fecha, comentario, editorial, editor, y dos
// cuadros de verificación 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);
?>
Table of Contents
- fdf_add_doc_javascript — Adds javascript code to the FDF document
- fdf_add_template — Adds a template into the FDF document
- fdf_close — Cierra un documento FDF
- fdf_create — Crear un nuevo 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 siguiente nombre de 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 documento FDF
- fdf_set_ap — Establecer la apariencia de un campo
- fdf_set_encoding — Sets FDF character encoding
- fdf_set_file — Establecer el documento PDF en donde desplegar datos FDF
- 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 — Establecer 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 — Establecer el valor de un campo
- fdf_set_version — Sets version number for a FDF file