Adobe Reader не может открыть файл.pdf, созданный с помощью mPDF в Zend Framework

Я пытаюсь сгенерировать файл.pdf, используя mPDF в приложении Zend Framework, из результатов действия.

Вот код моего действия:

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 render, файл.pdf открывается без каких-либо ошибок. Кроме того, Adobe Reader выдает проблему, если и только если содержание длинное (т.е. работает, если есть только пара слов).

Есть ли предел, о котором я должен знать?

2 ответа

Adobe Reader менее простителен, чем некоторые другие программы чтения PDF, если файл PDF поврежден. Откройте документ PDF в текстовом редакторе и убедитесь, что файл начинается с чего-то вроде: %PDF-1.4 %Ã “Ã £ ÃÃ"

Иногда уведомления об ошибках PHP находятся в верхней части файла.

Источник: mpdf форум, ответ IanBack

В начале и в конце файла не должно быть места, поэтому проверьте это место,

Другие вопросы по тегам