php导出pdf

插件官网:TCPDF 

博主用的是tp6框架 、tcpdf插件

composer require tecnickcom/tcpdf --ignore-platform-reqs 后面是忽略平台要求的参数

---------------中文乱码start------------------

关于中文乱码问题:

网上说的下载字体放入fonts  利用tools生产字体的  亲测不用

找到tcpdf_config.php 

  

 

将 define ('PDF_FONT_NAME_MAIN', 'helvetica');

修改为define ('PDF_FONT_NAME_MAIN', 'stsongstdlight');

将 define ('PDF_FONT_NAME_DATA', 'helvetica');

修改为 define ('PDF_FONT_NAME_DATA', 'stsongstdlight');

$pdf->SetFont('stsongstdlight', '', 14, '', true);

stsongstdlight字体,是Adobe Reader的默认简体中文字体,TCPDF中已经内置这个字体的配置文件,我们直接调用就好

---------------中文乱码end------------------

                                         正文开始

引入下载的插件:require  (xxx/tcpdf/tcpdf.php)

完整代码如下:
 public function exportPdf()
    {
        $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

        $pdf->SetCreator(PDF_CREATOR);
        $pdf->SetAuthor('RoyalsZch');
        $pdf->SetTitle('123');
        $pdf->SetSubject('123pdf');
        $pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
        $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
        $pdf->setFooterData(array(0, 64, 0), array(0, 64, 128));

// set header and footer fonts
        $pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
        $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
        $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// set margins
        $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
        $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
        $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

// set auto page breaks
        $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// set image scale factor
        $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

        $pdf->SetFont('stsongstdlight', '', 14, '', true);

//        $pdf->Output('pdf'.'.pdf', 'D');
        //        add a page
        $pdf->AddPage();

// 随便写HTML
        $htmlUrl=app()->getRootPath() . 'public/uploads/1.html';
        $html=file_get_contents($htmlUrl);

// output the HTML content
        $pdf->writeHTML($html, true, false, true, false, '');
//        $pdf->Image('https://gvrboxwit.obs.cn-east-2.myhuaweicloud.com:443/web/202303/202303301615200163657.png', 15, 140, 75, 113, 'JPG', 'http://www.tcpdf.org', '', true, 150, '', false, false, 1, false, false, false);

// reset pointer to the last page
        $pdf->lastPage();
        //D是下载,I是在线写入
        $pdf->Output('royals' . '.pdf', 'D');

    }

$htmlUrl=app()->getRootPath() . 'public/uploads/1.html';获取h5页面里面内容,写入生成的pdf中(h5大多数格式在生成的pdf中是可以生效的)图片也是可以的

h5demo:

<!DOCTYPE html>
<style>
    body {
        width: 200mm;
        height: 240mm;
        margin: 15mm auto;
        padding: 0;
        font-size: 10.5pt;
        border: black 1px solid;
        /*font-family: "simsun";*/
    }

    .container {
        height: 180mm;
        width: 155mm;
        margin: 100px auto;
    }

    table {
        letter-spacing: 2px;
        line-height: 30px;
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
    }

    .content {
        margin-top: 40px;
    }

    .between {
        margin-left: 30px;
        margin-top: 20px;
    }

    .between input {
        width: 300px;
        margin: 3mm 0;
    }

    .foot {
        margin-top: 100px;
    }

    .foot table {
        letter-spacing: 3.5px;
    }

    .qz {
        margin-top: 30px;
    }

    .qz table {
        line-height: 40px;
    }

    .table {
        float: right;
    }

    .foot span {
        text-decoration: black solid;
        border-bottom: 1px black solid;
    }

    h1 {
        text-align: center;
    }
</style>

<body>
<div class="container">
    <h1>授权委托书</h1>
    <p><img src="xxxxx" alt="" width="100px" height="100px"></p>
    <div class="content">
        <table>
            <tr>
                <td>&nbsp;&nbsp;现本人不可撤销的向 ******* 银行</td>
            </tr>
            <tr>
                <td><strong>授权:</strong></td>
            </tr>
            <tr>
                <td style="letter-spacing: 6px">&nbsp;&nbsp;本人因办理 *********** 业务,已经</td>
            </tr>
            <tr>
                <td>向 0000000 公司支付首付款,现委托贵</td>
            </tr>
            <tr>
                <td>行将本人的信用卡(卡号 xxxxxxxxxxx)</td>
            </tr>
            <tr>
                <td>进行启用,并将其余款项 **** 元,</td>
            </tr>
            <tr>
                <td>以透支形式扣收后支付给该公司,入账账户信息如下:</td>
            </tr>
        </table>
    </div>

    <div class="between">
        <table>
            <tr>
                <td colspan="1" class="table">账户名称:</td>
                <td colspan="4"><input type="text" value="{$info.zhmc|default=$gs_name}" id="zhmc"></td>
            </tr>
            <tr>
                <td colspan="1" class="table">账&nbsp;&nbsp;号:</td>
                <td colspan="4"><input type="text" value="{$info.zh|default=$bank_number}" id="zh"></td>
            </tr>
            <tr>
                <td colspan="1" class="table"><span style="letter-spacing: 11px">开户</span>行:</td>
                <td colspan="4"> **********</td>
            </tr>
        </table>
    </div>

    <div class="foot">
        <table>
            <tr>
                <td>&nbsp;&nbsp;<span>本人在签署此授权委托书之前,已认真仔细阅读上述内容,清</span></td>
            </tr>
            <tr>
                <td><span>楚知晓并自愿承担由此引发的相关法律责任。</span></td>
            </tr>
        </table>
    </div>

    <div class="qz">
        <table>
            <tr>
                <td colspan="5"></td>
                <td colspan="4">授权人:</td>
            </tr>
            <tr>
                <td colspan="6"></td>
                <td colspan="3">2023年07月05日</td>
            </tr>
        </table>
    </div>

</div>
</body>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一分半心动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值