Generar PDF con HTML y AJAX

644 views
Skip to first unread message

Alfchee

unread,
Mar 17, 2011, 12:21:11 PM3/17/11
to symfony-es
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
Reply all
Reply to author
Forward
0 new messages