THinkPHP5.0 结合mpdf网页输出pdf

介绍、mpdf使用方式(打印pdf 网页打印)
         a、下载安装composer (指定PHP文件打开--->>>>指的是安装PHP环境---(windows 环境))
         b、 使用composer下载、百度搜composer 进入composer中文网下载安装  命令---->>>composer require mpdf/mpdf;(前提是已经进入指定安装目录(tp5直接进入项目目录即可)下载安装到vendor文件夹)

<?php
namespace app\admin\controller;
use app\admin\common\Common;
use think\Db;
use think\Loader;
use Mpdf\Mpdf;
//Loader::import('tcpdf.tcpdf',EXTEND_PATH,'.php');
//Loader::import('mpdf.src.Mpdf',EXTEND_PATH,'.php');
class Contract extends Common
{
	
    //打印输出pdf
    public function printContract(){
        if(request()->isGet()){
            $id=input('id');
            $contract=new \app\admin\model\Contract();
            $partyT=$contract->where('id',$id)->with('sign')->find();
            $newArr=json_decode($partyT['id_card_f_info'],JSON_UNESCAPED_UNICODE);
            $list=Db::name('set')->field('details,address,phone,party_a')->where('id',1)->find();
            //签订时间
            $partyD=date("Y-m-d",strtotime($partyT['create_time']));
            //条约
            $details=$list['details'];
            //甲方
            $partyA=$list['party_a'];
            //地址
            $partyAA=$list['address'];
            //电话
            $partyAP=$list['phone'];
            //乙方
            $partyB=$newArr['name'];
            //身份证
            $partyBC=$newArr['num'];
            //电话
            $partyBP=$partyT['phone'];
            //签名
            $partyBS=$partyT['sign']['url'];
            //composer mpdf 实现下载pdf格式
            $mpdf = new Mpdf();
            $mpdf->WriteHTML("<!DOCTYPE html>
            <html lang='en'>
            <head>
                <meta charset='UTF-8'>
            </head>
            <style type='text/css'>
                .mytext {
                    margin-top: 60px;
                    width: 650px;
                    text-indent:30px
                }
                .b {
                    margin-top: 40px;
                }
                .left {
                    width:325px;
                    float:left;
                }
                .right {
                    width:325px;
                    float:left;
                }
                .clean {
                    clear: both;
                }
                .img-height {
                    line-height: 35px;
                }
            </style>
            
            <body>
            <div>
                <p><span>甲方:</span><span>$partyA</span></p>
                <p><span>地址:</span><span>$partyAA</span></p>
                <p><span>电话:</span><span>$partyAP</span></p>
            </div>
            <div class='b'>
                <p><span>乙方:</span><span>$partyB</span></p>
                <p><span>身份证号码:</span><span>$partyBC</span></p>
                <p><span>电话:</span><span>$partyBP</span></p>
            </div>
            <div class='mytext'>
                $details
            </div>
            <div class='left'>
                <p class='img-height'><span>甲方:$partyA</span><span></span></p>
                <p><span>日期:</span><span>$partyD</span></p>
            </div>
            <div class='right'>
                <p class='img-height'><span>乙方:</span><span><img src='".$partyBS."' style='vertical-align:middle;' height='30' width='100' /></span></p>
                <p><span>日期:</span><span>$partyD</span></p>
            </div>
            </body>
            </html>
");
            $mpdf->Output($partyB.'合同.pdf',"D");
        }
    }



}

线上注意bug:下载pdf时候可能出现目录权限问题

进去vendor mpdf src config   ConfigVariables 类文件修改配置   ,把路径改为可写路径即可!

'tempDir' => __DIR__ . '/../../tmp',


    

猜你喜欢

转载自blog.csdn.net/denglii903/article/details/80425161