Gplavui

facebook linkedin  

Generación fdf e integración con pdf en un componente Joomla

En primer lugar hemos de generar un fdf a partir de unos datos, ya sean extraidos de una base de datos o de un formulario.

En nuestro caso lo haremos todo en una función del controller que llamaremos function generate_pdf()

// we will use this array to pass to the createFDF function
$data=array();
$data['form1[0].#subform[0].field1[0]']=$item->field2;
$data['form1[0].#subform[0].field2[0]']=$item->field2;
            
// if we got here, the data should be valid,
// time to create our FDF file contents
// file name will be <the current timestamp>.fdf
$fdf_file=time().'.fdf';
// the directory to write the result in
$fdf_dir=JPATH_SITE.DS.$config->get('fdf_folder');
// need to know what file the data will go into
$pdf_doc=$config->get('PDF_file_location');
            
// generate the file content
$fdf_data=Helper::createFDF($pdf_doc,$data);
// this is where you'd do any custom handling of the data
// if you wanted to put it in a database, email the
// FDF data, push ti back to the user with a header() call, etc.           
// write the file out
if($fp=fopen($fdf_dir.'/'.$fdf_file,'w')){
   fwrite($fp,$fdf_data,strlen($fdf_data));
}else{
   die('Unable to create file: '.$fdf_dir.'/'.$fdf_file);
}
fclose($fp);  
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="doc_to_print.pdf"');
passthru("pdftk ".$pdf_doc." fill_form results/".$fdf_file." output - flatten");
exit;

No debemos olvidarnos de poner la funcion createFDF en el Helper

function createFDF($file,$info){
   $data="%FDF-1.2\n%âãÏÓ\n1 0 obj\n<< \n/FDF << /Fields [ ";
   foreach($info as $field => $val){
      if(is_array($val)){
         $data.='<</T('.$field.')/V[';
         foreach($val as $opt)
            $data.='('.trim($opt).')';
         $data.=']>>';
      }else{
         $data.='<</T('.$field.')/V('.trim($val).')>>';
      }
   }
   $data.="] \n/F (".$file.") /ID [ <".md5(time()).">\n] >>".
   " \n>> \nendobj\ntrailer\n".
   "<<\n/Root 1 0 R \n\n>>\n%%EOF\n";
   return $data;
}

 voilà !

Nota1: El pdftk debe estar instalado, recordamos ...

apt-get install pdftk

Nota2: Debemos saber el nombre de los campos tal y como estan declarados en el pdf. En caso de que no los sepamos, siempre nos queda el pdftk

pdftk file.pdf dump_data_fields

Nota3: Sin el flatten no funcionara en la mayoria de ordenadores !! ...

Comentarios (0)

500 caracteres restantes

Cancel or

Está aquí: Home Blog Generación fdf e integración con pdf en un componente Joomla

¡Atención! Este sitio usa cookies y tecnologías similares.

Si no cambia la configuración de su navegador, usted acepta su uso. Saber más

Acepto

POLITICA DE COOKIES

Cookie es un fichero que se descarga en su ordenador al acceder a determinadas páginas web. Las cookies permiten a una página web, entre otras cosas, almacenar y recuperar información sobre los hábitos de navegación de un usuario o de su equipo y, dependiendo de la información que contengan y de la forma en que utilice su equipo, pueden utilizarse para reconocer al usuario.. El navegador del usuario memoriza cookies en el disco duro solamente durante la sesión actual ocupando un espacio de memoria mínimo y no perjudicando al ordenador. Las cookies no contienen ninguna clase de información personal específica, y la mayoría de las mismas se borran del disco duro al finalizar la sesión de navegador (las denominadas cookies de sesión).

La mayoría de los navegadores aceptan como estándar a las cookies y, con independencia de las mismas, permiten o impiden en los ajustes de seguridad las cookies temporales o memorizadas.

Sin su expreso consentimiento –mediante la activación de las cookies en su navegador– gplavui.com no enlazará en las cookies los datos memorizados con sus datos personales proporcionados en el momento del registro o la compra.

¿Qué tipos de cookies utiliza esta página web?

- Cookies técnicas: Son aquéllas que permiten al usuario la navegación a través de una página web, plataforma o aplicación y la utilización de las diferentes opciones o servicios que en ella existan como, por ejemplo, controlar el tráfico y la comunicación de datos, identificar la sesión, acceder a partes de acceso restringido, recordar los elementos que integran un pedido, realizar el proceso de compra de un pedido, realizar la solicitud de inscripción o participación en un evento, utilizar elementos de seguridad durante la navegación, almacenar contenidos para la difusión de videos o sonido o compartir contenidos a través de redes sociales.

- Cookies de personalización: Son aquéllas que permiten al usuario acceder al servicio con algunas características de carácter general predefinidas en función de una serie de criterios en el terminal del usuario como por ejemplo serian el idioma, el tipo de navegador a través del cual accede al servicio, la configuración regional desde donde accede al servicio, etc.

- Cookies de análisis: Son aquéllas que bien tratadas por nosotros o por terceros, nos permiten cuantificar el número de usuarios y así realizar la medición y análisis estadístico de la utilización que hacen los usuarios del servicio ofertado. Para ello se analiza su navegación en nuestra página web con el fin de mejorar la oferta de productos o servicios que le ofrecemos.

En particular, este sitio Web utiliza Google Analytics, un servicio analítico de web prestado por Google, Inc. con domicilio en los Estados Unidos con sede central en 1600 Amphitheatre Parkway, Mountain View, California 94043. Para la prestación de estos servicios, estos utilizan cookies que recopilan la información, incluida la dirección IP del usuario, que será transmitida, tratada y almacenada por Google en los términos fijados en la Web Google.com. Incluyendo la posible transmisión de dicha información a terceros por razones de exigencia legal o cuando dichos terceros procesen la información por cuenta de Google.

El Usuario acepta expresamente, por la utilización de este Site, el tratamiento de la información recabada en la forma y con los fines anteriormente mencionados. Y asimismo reconoce conocer la posibilidad de rechazar el tratamiento de tales datos o información rechazando el uso de Cookies mediante la selección de la configuración apropiada a tal fin en su navegador. Si bien esta opción de bloqueo de Cookies en su navegador puede no permitirle el uso pleno de todas las funcionalidades del Website.

Puede usted permitir, bloquear o eliminar las cookies instaladas en su equipo mediante la configuración de las opciones del navegador instalado en su ordenador:

Si tiene dudas sobre esta política de cookies, puede contactar con gpavui.com en info@sibeos.com