mPDF错误:某些数据已输出到浏览器,无法发送PDF文件

时间:2014-12-20 14:31:39

标签: php mpdf

当我尝试使用mPDF时,我收到了这样的错误。 mPDF错误:某些数据已输出到浏览器,无法发送PDF文件

以下是代码:

<?php
include("mpdf60/mpdf.php");

$mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0); 

$mpdf->SetDisplayMode('fullpage');

$mpdf->list_indent_first_level = 0;  // 1 or 0 - whether to indent the first level of a list

$mpdf->WriteHTML(file_get_contents('invoice.html'));

$mpdf->Output();


$to      = $_POST["email"];
$subject = 'the subject';
$message = 'hello';
$headers = 'From: narehh@mail.ru' . "\r\n" .
    'Reply-To: narehh@mail.ru' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
你有过这个问题吗?怎么解决? 感谢

2 个答案:

答案 0 :(得分:0)

ob_end_clean之前尝试使用include("mpdf60/mpdf.php");可以解决您的问题。

答案 1 :(得分:0)

我有同样的错误。

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

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

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

op_start();

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

ob_end_flush();

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

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

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

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