我正在尝试在 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 才会引发该问题。
我应该注意什么限制吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)