Ahh algo sucio, yo uso un plugin junto con html2pdf:
Código PHP:
Ver originalclass Application_Plugin_PdfExport extends Zend_Controller_Plugin_Abstract
{
private $_exportName = '';
public function __construct($sExportName)
{
$this->_exportName = $sExportName;
}
public function dispatchLoopShutdown()
{
$sExportName = $this->_exportName;
$Response = $this->getResponse();
$Response->setHeader('Pragma', 'Public')
->setHeader('Cache-Control', 'no-store, no-cache, must-revalidate')
->setHeader('Cache-Control', 'pre-check=0, post-check=0, max-age=0')
->setHeader('Pragma', 'no-cache')
->setHeader('Expires', '0')
->setHeader('Content-Transfer-Encoding', 'binary')
->setHeader('Content-Type', 'application/pdf')
->setHeader('Content-Disposition', "attachment; filename=\"$sExportName\"");
require('html2pdf/html2fpdf.php');
$pdf=new HTML2FPDF();
$pdf->AddPage();
$pdf->WriteHTML($sContent);
$sPDF = $pdf->Output('', 'S');
$Response->setBody($sPDF);
}
}
Después simplemente desde mi controller reviso si tengo que hacer el render en HTML o en PDF (útil para algunos reportes verlos en HTML o en PDF):
Código PHP:
Ver original$this->view->data = $aData;
if ($formato == self::FORMATO_PDF) {
// Disable Layout
$layout = Zend_Layout::getMvcInstance();
$layout->disableLayout();
// Register Excel Export Plugin
$front = Zend_Controller_Front::getInstance();
$front->registerPlugin(new Application_Plugin_ExcelExport($sExportName), 101);
}
Saludos.