Este blog esta destinado para la comunidad desarrolladora de software, en el podrán encontrar trucos, atajos o consejos de diferentes lenguajes de programación o frameworks, tanto de tipo desktop como web. Si quieres participar como editor por favor hacerlo saber escribiendo un correo a cualquiera de los editores.

viernes, 25 de junio de 2010

Generar pdf con dompdf en symfony

Bueno en general la librería dompdf me ha parecido muy fácil de trabajar, ya que se genera un html y este se pasa a pdf, es fácil la inclusión de imágenes y de caracteres especiales.

Para integrarla con symfony, sigues los siguientes pasos

  • instalar el plugin para symfony,
    ya sea que la descarguen de http://www.symfony-project.org/plugins/sfDomPDFPlugin la descompriman en la carpeta plugins del sproyecto en el cual estan trabajando y la publiquen mediante el comando plugin:publish-assets o ya sea que los instalen con los comandos de sinfony, creo que es algo asi: plugin:install sfDomPDF
  • descargar la librería dompdf, http://eclecticgeek.com/dompdf/
  • reemplazar la carperta de dompdf que hay en el proyecto de symfony en plugins/sfDomPDFPlugin/lib
  • copiar la carpeta dompdf que descargaste en web/
  • limpiar la cache de synfony: symfony cc
  • empezar a utilizar la libreria

hay les dejo un ejemplo de como usarlo


public function reporte()
{
require_once("dompdf/dompdf_config.inc.php");
$html=stripslashes('<html>');
$html.=stripslashes('');
$html.=stripslashes("<body>");
$html.="Espero que les sirva ";
$html.=stripslashes('</body></html>');

//uso de dom
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('letter','landscape');
$dompdf->render();
$dompdf->stream("reporte.pdf");

exit(0);
}


Incluir imágenes con dompdf
Para incluir imágenes que se incluye en el html que se va a cargar la etiqueta img.
 <img alt='gaea-uv' height='139'  src='logo.png'  width='485'/> 


Para incluir imágenes de urls externas a la de donde reside la aplicación deben editar el archivo dompdf_config.init.php y cambiar el false de la variable "DOMPDF_ENABLE_REMOTE" por true.

//configuracion inicial
define("DOMPDF_ENABLE_REMOTE", false);

//configuracion final
define("DOMPDF_ENABLE_REMOTE", true);

Nota:lo que me parecio charro fue que la forma de agregar pies de pagina y numeración no me parecio natural, en este caso me parece que TCPDF tiene su fuerte.

No hay comentarios: