【问题标题】:Generate PDF using mpdf on ajax call in codeginiter在codeigniter中的ajax调用上使用mpdf生成PDF
【发布时间】:2017-09-06 09:45:33
【问题描述】:

这个问题可能是重复的,但我没有找到此类错误的有效答案。我的代码在不使用 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");

有人知道如何处理这个吗??

【问题讨论】:

  • 你遇到了什么错误?
  • 请发布错误
  • 仅供参考,如果您通过 ajax 调用该函数,它将不起作用。因为不会通过ajax调用加载视图
  • @Anandhunadesh 出现解析错误
  • @AbdullaNilam 解析错误

标签: jquery ajax codeigniter mpdf


【解决方案1】:
  1. 在 $pdf->Output() 中使用“F”;
  2. 返回您保存的文件名,并在 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 = YOURPATH.'filename.pdf';

【讨论】:

    【解决方案2】:

    请更换

    $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 下载会报错。

    【讨论】:

      猜你喜欢
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      相关资源
      最近更新 更多