当我尝试使用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);
你有过这个问题吗?怎么解决?
感谢
答案 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之前清除所有缓冲区输出。
请确保如果您使用任何功能,然后将其保留在同一页面中,则不要在保留所有功能的功能页面中将其保留。