Forum und email

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