3

アクションの出力から、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 は次のエラーをスローします。ファイルが破損しています (たとえば、電子メールの添付ファイルとして送信され、正しくデコードされませんでした)。

ただし、Zend Layout render を使用せずに、同じ出力を静的変数として mpdf に渡すと、.pdf ファイルがエラーなしで開きます。また、Adobe Reader は、コンテンツが長い場合にのみ問題をスローします (つまり、2、3 語しかない場合に機能します)。

知っておくべき制限はありますか?

4

2 に答える 2

0

ファイルの最初と最後にスペースがあってはならないので、これらのスペースを確認してください。

于 2013-05-07T10:10:52.417 に答える