如何在mPDF中使用bootstrap?

时间:2018-03-05 01:50:48

标签: php html twitter-bootstrap codeigniter mpdf

我目前正在使用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;

    }

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

谢谢

4 个答案:

答案 0 :(得分:3)

mPDF不完全支持Bootstrap样式。一个选项可能是一些替代方案,例如基于无头铬的wkhtmltopdf

其中一个mpdf家伙告诉我,引导程序不支持在mpdf中开箱即用,你必须使用一些自定义样式。 Github link

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

请访问此网站,它绝对可以帮助您: I want to set header and footer in pdf using mpdf

也请看这个链接:  https://mpdf.github.io/headers-footers/headers-footers.html

同时检查以下内容: 方法2 这使用RUNTIME HTML标题和&页脚。这是最简单的&对包含图像的整个文档或使用更复杂的布局样式编写页眉/页脚一次的最快方法。

https://mpdf.github.io/headers-footers/method-2.html

答案 3 :(得分:0)

就我而言,我将Bootstrap 3.3.7与MPDF 6.0版一起使用。 它运行正常,没有任何错误。

$stylesheet = file_get_contents('css/bootstrap-3.3.7.min.css');
$pdf->WriteHTML($stylesheet, 1); // CSS Script goes here.
$pdf->WriteHTML($html, 2); //HTML Content goes here.
$pdf->Output();