我正在尝试从操作的输出中使用Zend Framework应用程序中的mPDF生成.pdf文件。
以下是我的行动代码:
public function testAction()
{
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout->disableLayout();
$this->view->foo = 'bar';
$this->render();
$output = $this->getResponse()->getBody();
$layout = new Zend_Layout();
$layout->content = $output;
$layout->setLayoutPath(dirname(dirname(__FILE__)) . '/views/layouts/');
$layout->setViewSuffix('tpl');
$layout->setLayout('pdf');
$html = $layout->render();
$mpdf = new mPDF('utf-8', 'A4');
$mpdf->WriteHTML($html);
$mpdf->Output('report.pdf', 'D');
}
如果要显示的内容很长(即几段),则在下载.pdf文件时,Adobe Reader会抛出以下错误:Adobe Reader无法打开“report.pdf”,因为它不是受支持的文件键入或因为文件已损坏(例如,它是作为电子邮件附件发送并且未正确解码)。
但是,如果我将相同的输出作为静态变量传递给mpdf,而不使用Zend Layout渲染,则打开.pdf文件时没有任何错误。此外,当且仅当内容很长时(例如,如果只有几个单词),Adobe Reader会引发问题。
我应该注意哪些限制?
答案 0 :(得分:0)
文件的开头和结尾不应有空格,所以请检查这些空格,
答案 1 :(得分:0)
有时会在文件顶部找到PHP错误通知。