将 PDF 文件另存为 "data" - 使用 PHP MPDF

Saving PDF file as "data" - using PHP MPDF

IM 正在尝试使用 MPDF 将 HTML 生成的 PDF 文件保存到用户本地。以下是对此负责的代码部分:

    $mpdf = new \Mpdf\Mpdf();
    $html = $this->load->view('gestao/relatorios/relatorio_cargo_cidades', $data, true);
    $mpdf->WriteHTML($html);
    $mpdf->SetFooter(relatorio_footer());
    $mpdf->Output('relatorio_cargos_cidades_seletivo_' . $seletivo_id .'_'.date("Ymd_his").'.pdf', 'D');

起初我试图使用 "I" 函数中的 "I" 参数来显示 PDF,但用户只能查看 PDF 并选择是否下载。但是当我尝试将文件提交到另一个网站时,它说该文件不是 PDF。然后我用 linux 查看文件是否真的是 PDF,这是我得到的:

如您所见,出于某种原因,该文件被保存为“数据”。我已经尝试过使用 'F' 参数,也是来自输出函数,并且它起作用了,我另存为 PDF。但是 F 参数只保存代码文件夹中的文件,所以对我来说不是很有用。

谁能告诉我如何使用 MPDF 将文件保存为实际的 PDF?

编辑

我认为问题是由 CODEIGNITER 引起的,而不是由 MPDF 引起的。当我将 load->view 的最后一个参数设置为 TRUE 时,返回的 HTML 在数据(字符串) 形式,MPDF 没有正确转换它。

您可以简单地使用D参数进行下载:

$mpdf -> Output ('FILENAME.pdf', 'D');

或生成您自己的 header 然后将内容输出为字符串:

header ("Content-type: application/pdf");
header ("Content-Disposition: inline; filename=FILENAME.pdf");

$mpdf -> Output ('', 'S');

添加 ob_clean() 可能会解决您的问题:

 ob_clean();
 $mpdf->Output('relatorio_cargos_cidades_seletivo_' . $seletivo_id .'_'.date("Ymd_his").'.pdf', 'D');