如何在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, 0, '', '', $r, 0, 1, 0, true, '', 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私人公共并在方法结束时更改为以下代码。

.....
$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

最新更新