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, 11 de junio de 2010

Symfony + PDF, TCPDDF (sfTCPDFPlugin)

Bueno, como todo proyecto tiene reportes(en pdf), aquí va como agregar TCPDF a nuestro proyecto de Symfony.

Hasta donde hemos trabajado, lo hemos hecho de dos formas.

La primera es agregándolo con Symfony, situados en la carpeta de nuestro proyecto, ejecutamos:

symfony plugin:install sfTCPDFPlugin

luego

symfony plugin:publish-assets

luego

symfony cc

La segunda forma es descargarlo de:


recuerde revisar que la versión que descargue sea compatible con la versión del Symfony con la que esta trabajando. Despues de descargado lo descomprimen y lo copian en la carpeta de plugins del proyecto, debe quedar algo así: nombreProyecto/plugins/sfTCPDFPlugin, y despues ejecutamos:

symfony plugin:publish-assets

luego

symfony cc

y listo, ya tenemos el TCPDF en nuestro proyecto, ahora un ejemplo:

en el action de un modulo creamos una nueva acción

public function executeReportePDF()
{
$config = sfTCPDFPluginConfigHandler::loadConfig();

$pdf = new sfTCPDF();

$pdf->SetFont('FreeSerif', '', 8);

$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', '13'));
$pdf->SetHeaderData('', 2, 'Symfony', 'Reporte PDF');
$pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

$pdf->AliasNbPages();
$pdf->AddPage();
$this->html='Linux Rulez';

$pdf->writeHTML($this->html);
$pdf->ln();
$pdf->Output();

throw new sfStopException();
}

es un ejemplo muy sencillo, como para probar, ya cada quien lo modificara y le agregara cosas a su antojo. (por ahora no se como poner etiquetas html en las entradas del blog.)

7 comentarios:

nastf dijo...

Tuve problemas con TCPDF por que no me permitía la inclusión de html mal formado, por lo que les comento que
también pueden utilizar dompdf.

Agustin Gutierrez dijo...

Hola queria saber como puedo hacer para utilizar el plugin, como tengo que hacer para que se genere el pdf
Gracias

gaea dijo...

Agustin, déjeme su correo, que es que no tenia configurada la opción de comentarios en el blog, por lo pronto seria bueno saber si estas trabajando con symfony o solo con php.

Practice english dijo...

HOla gracias por este aporte muy bueno. Yo lo implementé pero estoy algo confundida, estoy trabajando con symfoy 1.4, y tengo una página donde se muestra cierta información, y deseo que se imprima, yo coloqué un link_to a esa accion nueva que cree y me aparece el pdf sin informacion, pero no logro como hacer para traerme la data que ya se le muestra al usuario en pantalla. mi email es anacris.mm@gmail.com. Gracias

Anónimo dijo...

Hola, tengo problemas al tratar de volcar datos de un objeto, Ej.
$item->getArticulo()->getDescripcion()
arroja este error "TCPDF ERROR: Some data has already been output, can't send PDF file" y no muestra nada, sin embargo, si le saco getDescripcion() y le pongo $item->getArticuloId() muestra bien pero el ID. Utilizo symfony con e plugin TCPDF, espero me puedas dar una mano!
gracias

Unknown dijo...
Este comentario ha sido eliminado por el autor.
Unknown dijo...

hola, hice lo que dices y me sale el siguiente error:TCPDF ERROR: Some data has already been output, can't send PDF file, me pueden ayudar?