我可以将 HTML 页面分配到全局变量中以将其下载为 PDF


can I assign HTML page into Global variable to download it as PDF?

我正在使用Code Igniter框架和tcpdf

第三方

我在控制器中有一个全局变量:

     public $pdf_content = '';

这是我预订的一些功能:

     $data['success'] = $this->hotel_model->set_hotel(); //get the data from database
            //view reservation detail
            $this->load->view('hotel/header');
            $this->load->view('hotel/success', $data );
            $this->load->view('hotel/footer');
            //assign the HTML page into global variable
            $this->pdf_content =  $this->load->view('hotel/success', $data , TRUE); 

在我的视图文件中,我使用一个按钮将 HTML 下载为 pdf 文件,这是下载功能:

public function download(){
    $this->load->library("Pdf");
    $this->load->helper('pdf_helper');
    $pdf = new Pdf('P', 'mm', 'A4', true, 'UTF-8', false);
    $pdf->SetCreator(PDF_CREATOR);
            // Add a page
            $pdf->AddPage();
            $pdf->writeHTMLCell(0, 0, '', '', $this->pdf_content , 0, 1, 0, true, '', true);
            $pdf->Output('invoice.pdf', 'I');
}

两个功能都位于同一控制器内。

我认为基于我读过的任何教程,我的代码都没有错。

但是它下载了一些空白页面,当我尝试将字符串值分配给 $pdf_content 时,它工作正常,字符串值被写入下载的 PDF 文件中。

有人知道我在那里错过了什么吗?还是我的代码有问题?

任何帮助,不胜感激。

有多种方法。最简单的方法是手动将页面另存为 pdf (ctrl+p),然后将其作为下载提供。或者,您可以显示页面并在正文底部运行以下脚本。

    <script>
           var yourName = "someName';
            document.title = yourName;
            window.print();
</script>

这将触发 ctrl+p 命令,并允许用户打印或保存页面。