1、后台生成PDF

thinkphp利用MPDF插件

示例代码:

public function pdf(){

    //引入类库

    Vendor('mpdf.mpdf');

    //设置中文编码

    $mpdf=new \mPDF('zh-cn','A4', 0, '宋体', 0, 0);

    //html内容

    $html='

一个PDF文件

';

    $mpdf->WriteHTML($html);

    $mpdf->Output();

    exit;

}

2.利用命令行将网页链接生成PDF

下载wkhtmltox

工具命令                                    链接                              生成的PDF文件

./wkhtmltox/bin/wkhtmltopdf http://www.baidu.com test.pdf

3.利用js生成PDF

引入以下两个js插件

html2canvas.js

jspdf.debug.js

示例代码:

function explode(){
$(".ncap-order-details").css("background-color",'#FFFFFF');
  html2canvas($(".ncap-order-details"), {
              onrendered:function(canvas) {
                  var pageData = canvas.toDataURL('p_w_picpath/jpeg', 1.0);
                  var pdf = new jsPDF('', 'pt', 'a4');
                  pdf.addImage(pageData, 'JPEG', 0, 0, 595.28, 592.28/canvas.width * canvas.height );
                  pdf.save('stone.pdf');
              }        
          })
}    

原理:先截图,然后将截图插入到PDF中
$(".ncap-order-details")是要截图的div区域,截图默认是透明背景,所以提前设置背景色,然后将截图保存到PDF中