如何修复MPDF中的“数据已发送到输出,无法输出PDF文件”

时间:2019-04-09 11:04:50

标签: php pdf-generation mpdf

我试图使用MPDF库生成PDF。

try {
        $mpdf = new \Mpdf\Mpdf();
        $mpdf->WriteHTML('Hello World');
        // Other code
        $mpdf->Output("1.pdf", 'D');
    } catch (\Mpdf\MpdfException $e) { // Note: safer fully qualified exception name used for catch
        // Process the exception, log, print etc.
        echo $e->getMessage();
    }

我收到此错误消息。

  

数据已发送到输出,无法输出PDF文件

我使用了ob_end_clean(),但是没有用。 我在此问题中使用了所有答案,但对我没有任何帮助。 TCPDF和mPDF错误:一些数据已经输出到浏览器,无法发送PDF文件

2 个答案:

答案 0 :(得分:0)

我有同样的错误。

Data has already been sent to output, unable to output PDF file

这意味着在使用mPDF创建pdf之前,一些数据存储在缓冲区中,然后发送到浏览器。因此,它无法创建PDF。

只需执行此操作即可。如果您正在准备pdf数据,请在页面第一行的php内置函数下方添加此代码。

op_start();

enter code here

并在mPDF代码之前(在调用mpdf之前)在php内置函数下面添加此代码

ob_end_flush();

require_once __DIR__ . '/vendor/autoload.php';

$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML($html);
$mpdf->Output();

以便在处理mPDF之前清除所有缓冲区输出。

请确保如果您使用任何功能,然后将其保留在同一页面中,则不要在保留所有功能的功能页面中将其保留。

答案 1 :(得分:0)

对我来说,插入 <?php 而不是 <? 很有帮助。