Foros del Web » Programando para Internet » PHP »

FDF sin librerías. Bajar formulario PDF rellenado.

Estas en el tema de FDF sin librerías. Bajar formulario PDF rellenado. en el foro de PHP en Foros del Web. Hola a todos: Después de bastante tiempo intentando encontrar una solución, tengo que decir que no ha sido posible. Es por ello que os abro ...
  #1 (permalink)  
Antiguo 15/06/2010, 05:37
 
Fecha de Ingreso: abril-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
FDF sin librerías. Bajar formulario PDF rellenado.

Hola a todos:

Después de bastante tiempo intentando encontrar una solución, tengo que decir que no ha sido posible. Es por ello que os abro esta consulta: :)

El objetivo final es que el usuario baje un archivo PDF con datos de una base de datos. En estos momentos la opción que tengo implementada y que sí que funciona es generar un archivo XML e importarlo al PDF mediante la opción de "importar datos" en Adobe Acrobat Professional.

Lo que quiero es ahorrar este paso al usuario y que directamente baje el PDF con el que pueda interactuar.

El problema con el que me encuentro es que no puedo instalar la librería FDF en PHP dado que no me está permitido recompilar el PHP del servidor, por lo que tengo que recurrir a funciones y clases que he ido buscando por ahí.

Finalmente he encontrado una opción que dicen que funciona ([URL="http://www.pdfhacks.com/forge_fdf/"]forge_fdf[/URL]) pero en mi caso no. Según he leido, debería enviar la cabecera

header('Content-type: application/vnd.fdf');

y luego hacer un

echo forge_fdf($pdf_form_url,$fdf_data_strings,$fdf_dat a_names,$fields_hidden,$fields_readonly);


Pero lo unico que devuelve es, o bien una cadena de texto de un par de líneas, o bien el explorador se cuelga (he probado con IE, Firefox y Chrome).

Esta opción hace, según he entendido, sacar en la ventana del explorador el formulario rellenado, pero lo que realmente quiero es que directamente salga la opción de guardarlo (el usuario lo guarda para utilizarlo en el futuro), aunque la opción anterior sería más o menos aceptable.

He estado leyendo las especificaciones de Adobe y no he sacado mucho en claro. Las especificaciones del PDF son 756 páginas y las de FDF únicamente tienen un par de ejemplos en C.


Espero que me podáis ayudar.

Muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 21/06/2010, 06:45
 
Fecha de Ingreso: abril-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: FDF sin librerías. Bajar formulario PDF rellenado.

Hola de nuevo:

He progresado bastante los últimos días. Resulta que para el PDF hay dos tipos de formularios: los FDF que se crean con Adobe Acrobat y los XFA que se crean con Livecycle, los cuales son bastante distintos. La cuestión es que he creado un formulario con Acrobat y sí que ha funcionado lo de llenarlo mediante la cabecera vnd.fdf, pero me hace falta que funcione sobre el formato XFA ya que el formulario que empleo es bastante complejo.

Hay tres maneras de rellenar un formulario XFA: (copio y pego de http://www.acrobatusers.com/forums/aucbb/viewtopic.php?id=23498)

Cita:
Unfortunately LiveCycle (XFA) files don't really get along with FDF. They require an XML format, the gramar depends on how you've setup your form. But there are several different ways to get around this problem.

1. An XDP package, i.e., an XML file in the LiveCycle XFA Data Package gramar, can include an embedded form. When Acrobat loads the XDP it will automatically open the embedded form and populate it with the data in the XDP datasets section. You can see what this looks like by exporting an XDP package from Acrobat Pro that includes both the form data and the embedded form. So the idea here is to have a basice XDP file on the server. The PHP script modifies the datasets section of the XDP with the data on the HTML form and returns a link to the modified XDP to the client. Since this is all XML you already have the tools you need in PHP to modify the XDP.

2. Create a simple XML file with the HTML data in it. Pass an FDF (in a link) back to the client that contains JavaScript directing the XFA form to load the XML data.

3. Create a simple XML file and pass an URL to the data in a query string format in the Link to PDF form. Then use JavaScript in the form to extract the URL and load the data. Stephan Cameron (http://forms.stefcameron.com/) has a blog entry on this topic.

4. Give up on LiveCycle and use an AcroForm with the original FDF methodology.
Me interesa sobretodo la primera, es decir, generar un archivo el cual acceda al PDF, lo rellene y lo baje. Por eso si alguien tiene alguna idea de cómo hacerlo estaría más que encantado. Sinceramente no he buscado mucho aún sobre esta forma, pero más que nada os quería comunicar los progresos.
  #3 (permalink)  
Antiguo 22/06/2010, 05:39
 
Fecha de Ingreso: abril-2010
Mensajes: 17
Antigüedad: 14 años
Puntos: 0
Respuesta: FDF sin librerías. Bajar formulario PDF rellenado.

Bueno, pues finalmente encontré la solución... y funciona! Aquí está todo explicado:

http://stackoverflow.com/questions/1757397/how-can-i-merge-data-into-an-xdp-file-and-return-a-pdf-via-net

Es tan simple como eso: crear un XML adjuntando los valores en XML y además el archivo pdf codificado en base 64. Con ello, se genera un archivo .XDP que, una vez abierto con el Acrobat, se genera el archivo PDF listo para ser utilizado.

Aunque nadie me haya podido ayudar (es la segunda cuestión que formulo y con el mismo resultado :( ) agradezco a toda la gente que ha perdido al menos un par de minutos intentando encontrar la solución. :)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:59.