在 codeigniter 中调用 ajax 时使用 mpdf 生成 PDF

Generate PDF using mpdf on ajax call in codeginiter

这个问题可能是重复的,但我没有找到针对此类错误的有效答案。我的代码在不使用 ajax 的情况下运行良好,但如果使用 ajax.

则会出错
    $this->load->library('m_pdf');
    $this->data['title']="Sales Report PDF";
    $this->data['description']="Sales report in PDF format";

    $data = $this->get_sales_report_for_pdf();
    $html=$this->load->view('dashboard/sales_report_pdf',$data, true);

    $pdfFilePath ="Salesreport-".time()."-download.pdf";
    $pdf = $this->m_pdf->load();
    $pdf->WriteHTML($html,2);
    $pdf->Output($pdfFilePath, "D");

有谁知道如何解决这个问题吗??

请替换

$pdf->Output($pdfFilePath, "D");

$pdf->Output($pdfFilePath, "F");

因为D是下载,ajax不会提供UI下载文件所以放F保存 文件路径应该有效

$pdfFilePath ="Salesreport-".time()."-download.pdf";

喜欢

$pdfFilePath =FCPATH."upload/Salesreport-".time()."-download.pdf";

因此它将按给定名称保存到 upload 文件夹中。

注意:你不能通过ajax下载它会报错。

  1. 在 $pdf->Output();
  2. 中使用 "F"
  3. return 您保存的文件名,并在 ajax 中调用您保存文件的 url。
$this->load->library('m_pdf');
$this->data['title']="Sales Report PDF";
$this->data['description']="Sales report in PDF format";

$data = $this->get_sales_report_for_pdf();
$html=$this->load->view('dashboard/sales_report_pdf',$data, true);

$pdfFilePath ="Salesreport-".time()."-download.pdf";
$pdf = $this->m_pdf->load();
$pdf->WriteHTML($html,2);
$pdf->Output(FCPATH.$pdfFilePath, "F");
return $pdfFilePath;

在 Ajax 响应中 location.href = 你的路径。'filename.pdf';