如何解决如何在 CodeIgniter 3 中下载生成的 PDF?
我在我的项目中使用 TCPDF 生成了一个 pdf 文件,但是我如何创建一个函数,以便在您按下下载按钮时它会下载生成的 pdf。
这是我在控制器中的代码:
private function generate_pdf($report){
require_once APPPATH.'libraries/tcpdf/tcpdf.PHP';
$pdf = new TCPDF('P',PDF_UNIT,PDF_PAGE_FORMAT,true,'UTF-8',false);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN,'',PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA,PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT,PDF_MARGIN_TOP,PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutopageBreak(TRUE,PDF_MARGIN_BottOM);
// set image scale factor
$pdf->setimageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.PHP')) {
require_once(dirname(__FILE__).'/lang/eng.PHP');
$pdf->setLanguageArray($l);
}
foreach ($report as $r) {
$pdf->AddPage();
$pdf->writeHTMLCell(0,$r,1,true);
};
$pdf->Output('Online Result.pdf','D');
}
这里是下载pdf的函数:
public function download_pdf(){
$this->load->helper('download');
$data = "";
$name ="Result.pdf" ;
force_download($name,$data);
}
解决方法
将您的控制器方法 generate_pdf 从 private 更改为 public,并在方法结束时更改为要遵循的代码。
.....
$pdfFile = '<path/to/where/file/is/stored>/Online Result.pdf';
$pdf->Output($pdfFile,'D');
// force download
$this->load->helper('download');
//Contents of PDF file will be automatically read
force_download($pdfFile,null);
} // Method end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。