如何在mPDF中使用bootstrap?

Jia*_*nYA 7 html php codeigniter mpdf twitter-bootstrap

我目前正在使用 mpdf 从 html 生成 pdf。到目前为止,使用我当前传递的 html,我能够生成带有页眉和页脚的一页 pdf。但是,如果有多个页面,我的页脚会一直到第二页的底部。有没有办法为每个页面添加页眉和页脚?

我已经尝试过 $pdf->setHTMLHeader 但它似乎没有接受我的 css 文件,并且在我的徽标应该在的地方留下了一个 x 。我怎样才能做到这一点?我尝试在不同的地方进行搜索,但似乎找不到解决方案。

这是我的代码

public function generate_pdf($account_id,$transaction_id,$html){
        $document_folder = $_SERVER['DOCUMENT_ROOT']."/".DOCUMENT_FOLDER."/".PAYMENT_RECEIPTS."/".date("Y");
        $extension = ".pdf";
        if(!is_dir($document_folder)){
            mkdir($document_folder, 0777,true);
        }
        $file_name = md5($transaction_id.$account_id);
        $this->load->library('m_pdf');
        $pdf = $this->m_pdf->load();
        $header = $this->load->view('pdfs/header','',true);
        $footer = $this->load->view('pdfs/footer','',true);
        $pdf->setHTMLHeader($header);
        $pdf->setHTMLFooter($footer);
        $pdf->AddPage('', // L - landscape, P - portrait 
            '', '', '', '',
            5, // margin_left
            5, // margin right
           60, // margin top
           30, // margin bottom
            0, // margin header
            0
        ); // margin footer
        $pdf->WriteHTML(base64_decode($html));
        $pdf->Output($document_folder."/".$file_name.$extension, "F");
        $result = array(
            'file_name'=>$file_name,
            'file_location'=>$document_folder."/".$file_name.$extension,
            'file_link'=>DOCUMENT_LOCATION."/".DOCUMENT_FOLDER."/".PAYMENT_RECEIPTS."/".date("Y")."/".$file_name.$extension
        );
        return $result;
        exit;

    }
Run Code Online (Sandbox Code Playgroud)

另外,有没有办法知道PDF输出是否成功?目前$pdf->输出仅返回“”

谢谢

WeS*_*See 6

这是 mPDF 的 Bootstrap CSS 文件:https://github.com/kartik-v/yii2-mpdf/blob/master/src/assets/kv-mpdf-bootstrap.css

它是封装 mPDF 的kartik-v/yii2-mpdf PHP 库的一部分。


Par*_*hat 3

mPDF 不完全支持 Bootstrap 样式。一个选项是一些替代方案,例如基于 headless-chrome 的wkhtmltopdf

一位 mpdf 人员告诉我,mpdf 内部不支持开箱即用的 bootstrap,您必须使用一些自定义样式。Github链接

希望这将有助于解决您的问题。