Hola,
estoy tratando de crear informes en pdf, he leido sobre algunas
librerías. Primeramente probé tcpdf pero por alguna razón gastaba todo
el tiempo de ejecución, así que ahora estoy usando mPdf y lo hace muy
bien, he seguido estos artículos:
http://nibsirahsieu.wordpress.com/2010/02/21/generating-pdf-using-mpdf-library-in-symfony/#comments
pero no comprendo cómo hacer para obtener el contenido HTML del
showSuccess....
hasta el momento traté de escribir algo en javascript para que envíe
únicamente el html de un nodo en específico, pero creo que el problema
está en los httpheaders.... dejo el código:
<script type="text/javascript">
$().ready(function() {
$('.pdf').click(function() {
$('#loader').show();
$.post(
'<?php echo url_for('asociado/Test_mpdf') ?>',
{ html: $('#job').html() },
function() {
$('#loader').hide() }
);
});
});
</script>
public function executeTest_mpdf(sfWebRequest $request)
{
// $html = myPDF::getHtmlContent($this);
// $html = $this->getController()->getPresentationFor($this-
>getModuleName(),'show');
$html = $request->getParameter('html');
$mpdf = new mPDF('es_ES','A4','','',32,25,27,25,16,13);
$mpdf->useOnlyCoreFonts = true;
// load a stylesheet
$stylesheet = file_get_contents(sfConfig::get('sf_web_dir').'/css/
mpdfstyletables.css');
$mpdf->WriteHTML($stylesheet,1); // el parámetro le dice que sólo
es css y no contenido html
$mpdf->WriteHTML($html,2);
$mpdf->Output();
throw new sfStopException();
}
public static function getHtmlContent(sfAction $action, $layout =
false)
{
sfConfig::get('sf_web_debug',false);
$action->setLayout($layout);
$context = $action->getContext();
// clear http headers
$context->getResponse()->clearHttpHeaders();
// get the view, execute and render with variables
$view = $context->getController()->getView($action-
>getModuleName(), $action->getActionName(),'Success');
$view->execute();
$view->getAttributeHolder()->add($action->getVarHolder()-
>getAll());
$content = $view->render();
return $content;
}
porque realmente no sé cómo pasarle al view el objeto que se muestra
en el showSuccess...
espero alguien pueda hecharme una mano en esto