首页 > 解决方案 > mPDF 错误:数据已发送到输出,无法输出 PDF 文件

问题描述

我创建了一个php代码来使用mPDF. 该代码在本地正常工作。但在服务器上显示此错误:

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

我在网上搜索并从stackoverflow中找到了这些解决方案,但它们都不起作用。我尝试了所有这些解决方案,但没有一个有效。
1- 之前没有输出 2- 我在创建 PDF 之前设置$pdf->Output()3-我 与包含库一起使用echo
ini_set("session.auto_start", 0);
ob_end_cleanmPDF

但是,当我将输出参数从 更改$pdf->Output('file.pdf','D')为 时$pdf->Output('file.pdf','F'),pdf 正在目录中正确创建。(D表示下载文件,F表示将文件保存在目录中)

为什么mPDF可以在服务器上创建 PDF 但不能发送到浏览器并强制下载文件?关于为什么无法通过D参数下载文件的任何建议?

编辑#1:代码:

<?php

include "/DIR/cost/mpdf/vendor/autoload.php";
if (isset($_POST['hazine'])) {
    try{

        $mpdf = new \Mpdf\Mpdf();
        $rand = rand(); 
        $stylesheet1 = file_get_contents('/DIR/cost/style.css');
        $mpdf->WriteHTML($stylesheet1, 1);
        ob_start();
        include "/DIR/cost/entere_data.php";
        include "/DIR/cost/php.php";
        ob_end_clean();
            
        include '/DIR/cost/footer.php';
        ob_end_clean();
        $dir = '/DIR/DCC/DDC' . $rand . '.pdf';
        $pdf_file = 'DDC' . $rand . '.pdf';
        $mpdf->Output($pdf_file, 'D');


        }

    } catch(\Mpdf\MpdfException $e){
        echo $e->getMessage();
    }
}
include "/DIR/cost/form.php";
?>

这 3 包括:include "/DIR/cost/entere_data.php";, include "/DIR/cost/php.php";,include '/DIR/cost/footer.php';是 PDF 文件内容。

标签: phppdfdownloadmpdf

解决方案


推荐阅读