XXXI. Funciones Forms Data Format (Formato de Datos de Formularios)
El Formato de Datos de Formulario (FDF) está diseñado para el manejo
de formularios en archivos PDF. Se aconseja leer la información disponible en http://partners.adobe.com/asn/developer/acrosdk/forms.html
para más información sobre lo que es FDF y cómo se usa en general.
Nota:
Actualmente Adobe sólo proporciona una versión compatible con libc5 para Linux.
Las pruebas con glibc2 provocaron un fallo de segmentado. Si alguien es capaz
de hacerla funcionar, por favor coméntelo en esta página.
Nota:
Si tiene problemas configurando php con soporte de fdftk, compruebe
si el archivo de cabecera FdfTk.h y la librería libFdfTk.so están en
su lugar correcto. Deberían encontrarse respectivamente en fdftk-dir/include
y en fdftk-dir/lib. Este problema no se dará si se limita a desempaqueta
la distribucón del FtdTk.
La idea general del FDF es similar a los formularios HTML. La diferencia
básicamente está en el formato en que se transmiten los datos al servidor
cuando se pulsa el botón de envío (este es realmente
el Formato de Datos de Formulario) y el formato del formulario en sí mismo
(que es el Formato de Documento Portable, PDF). Procesar lo datos del FDF
es una de las características que proporcionan las funciones fdf. Pero aún
hay más. Uno también puede tomar un formulario PDF y rellenar los campos de
entrada con datos sin modificar el formulario en sí mismo. En dicho caso, lo
que se hace es crear un documento FDF (fdf_create()), fijar
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 MimeType application/vnd.fdf.
El plug-in de Acrobar reader de su navegador reconoce el MimeType, lee el formulario
PDF asociado y rellena los datos a partir del documento FDF.
Los siguientes ejemplos muestran cómo se evalúan los datos de los formularios.
Ejemplo 1. Evaluando un documento FDF <?php
// Guarda los datos FDF en un archivo temporal
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);
// Abre archivo temporal y evalúa los datos
// El formulario pdf contenía varios campos de texto con los nombres
// volumen, fecha, comentario, editorial, preparador, y dos casillas de verificación
// muestra_editorial y muestra_preparador.
$fdf = fdf_open("test.fdf");
$volume = fdf_get_value($fdf, "volumen");
echo "El campo volumen tiene el valor '<B>$volume</B>'<BR>";
$date = fdf_get_value($fdf, "fecha");
echo "El campo fecha tiene el valor '<B>$date</B>'<BR>";
$comment = fdf_get_value($fdf, "comentario");
echo "El campo comentario tiene el valor '<B>$comment</B>'<BR>";
if(fdf_get_value($fdf, "muestra_editorial") == "On") {
$publisher = fdf_get_value($fdf, "editorial");
echo "El campo editorial tiene el valor '<B>$publisher</B>'<BR>";
} else
echo "No se debe mostrar la editorial.<BR>";
if(fdf_get_value($fdf, "muestra_preparador") == "On") {
$preparer = fdf_get_value($fdf, "preparador");
echo "El campo preparador tiene el valor '<B>$preparer</B>'<BR>";
} else
echo "No se debe mostrar el preparador.<BR>";
fdf_close($fdf);
?> |
|