微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 CodeIgniter 3 中下载生成的 PDF?

如何解决如何在 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_pdfprivate 更改为 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 举报,一经查实,本站将立刻删除。