html轉(zhuǎn)pdf(php)

一.需求

最近接到一個(gè)需求,該需求為:批量導(dǎo)出推薦表導(dǎo)出需為PDF格式,且只能有2頁(yè)。

二.實(shí)現(xiàn)

1.曲折的過程

? 1)百度、谷歌搜了許多相關(guān)的材料,發(fā)現(xiàn)對(duì)php中html轉(zhuǎn)pdf的資料非常少。但是啦,黃天不符有心人,最終還是找的了一份勉強(qiáng)看得懂的。(鏈接:https://www.cnblogs.com/zx-admin/p/6801978.html

? 2)將TCPDF代碼下載到本地

? [圖片上傳失敗...(image-63bb22-1604636933694)]
.png)

? 3)使用examples的例子(我這里使用的是第一個(gè)例子)

image-20201028162349855.png

4)根據(jù)導(dǎo)出模板寫了一個(gè)html文件,代碼和效果如下

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<style>
    table {
        text-align: left;
        margin: 0 auto;
        border: 1px solid #000000;
        font-weight: 700;
    }
    .td-height {
        height: 70px;
        font-weight: 700;
    }
    .title {
        text-align: center;
    }
    .title .tjb {
        font-size: 30px;
    }
</style>
<div class="title">
    <img src="http://www.nucibc2.dev.com/Public/data/src/tjb_top.png" width="200">
    <span class="tjb">111屆畢業(yè)生就業(yè)推薦表</span>
</div>
<table class="top">
    <tbody>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">姓名</td>
        <td class="td-height" style="border: 1px solid #000000">
            田*
        </td>
        <td class="td-height" style="border: 1px solid #000000">性別</td>
        <td class="td-height" style="border: 1px solid #000000">男</td>
        <td class="td-height" style="border: 1px solid #000000">民族</td>
        <td class="td-height" style="border: 1px solid #000000">
            漢
        </td>
        <td rowspan="3" colspan="2" cellpadding="0" style="border: 1px solid #000000" height="230">
            <img src="http://www.nucibc2.dev.com/Public/data/tjb/5eb8f24808179.jpg" style=" width:166px;height: 230px;margin: 0;
            " alt="">
        </td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">專業(yè)</td>
        <td class="td-height" style="border: 1px solid #000000">網(wǎng)絡(luò)技術(shù)</td>
        <td class="td-height" style="border: 1px solid #000000">學(xué)歷</td>
        <td class="td-height" style="border: 1px solid #000000"> 大專</td>
        <td class="td-height" style="border: 1px solid #000000">學(xué)制</td>
        <td class="td-height" style="border: 1px solid #000000">3</td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">出生<br/>日期</td>
        <td class="td-height" style="border: 1px solid #000000">1996***</td>
        <td class="td-height" style="border: 1px solid #000000">健康<br/>狀況</td>
        <td class="td-height" style="border: 1px solid #000000">良好</td>
        <td class="td-height" style="border: 1px solid #000000">身高</td>
        <td class="td-height" style="border: 1px solid #000000">170</td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">身份證<br/>號(hào)碼</td>
        <td class="td-height" colspan="3" style="border: 1px solid #000000">513433</td>
        <td class="td-height" style="border: 1px solid #000000">籍貫</td>
        <td class="td-height" colspan="3" style="border: 1px solid #000000">
            四川冕寧
        </td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">計(jì)算機(jī)<br/>等級(jí)</td>
        <td class="td-height" style="border: 1px solid #000000">二級(jí)</td>
        <td class="td-height" style="border: 1px solid #000000">外語(yǔ)<br/>等級(jí)</td>
        <td class="td-height" style="border: 1px solid #000000">4</td>
        <td class="td-height" style="border: 1px solid #000000">郵箱</td>
        <td class="td-height" colspan="3" style="border: 1px solid #000000">251@qq.com</td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">本人<br/>電話</td>
        <td class="td-height" style="border: 1px solid #000000">151</td>
        <td class="td-height" colspan="" style="border: 1px solid #000000">家庭<br/>電話</td>
        <td class="td-height" colspan="" style="border: 1px solid #000000">191</td>
        <td class="td-height" colspan="" style="border: 1px solid #000000">家庭<br/>住址</td>
        <td class="td-height" colspan="3" style="border: 1px solid #000000">四川</td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">在校擔(dān)<br/>任職務(wù)</td>
        <td colspan="3" style="border: 1px solid #000000">測(cè)試職位</td>
        <td class="td-height" colspan="" style="border: 1px solid #000000">特長(zhǎng)</td>
        <td colspan="3" style="border: 1px solid #000000"></td>
    </tr>
    <tr>
        <td style="border: 1px solid #000000">自<br/>我<br/>總<br/>結(jié)</td>
        <td colspan="7" style="height:320px;border: 1px solid #000000"><p>自我總結(jié)111</p></td>
    </tr>
    <tr>
        <td style="border: 1px solid #000000">在<br/>校<br/>期<br/>間<br/>獲<br/>獎(jiǎng)<br/>情<br/>況</td>
        <td colspan="7" style="height: 320px;border: 1px solid #000000"><p>獲獎(jiǎng)</p></td>
    </tr>
    <tr>
        <td style="border: 1px solid #000000" rowspan="2">學(xué)<br/>生<br/>在<br/>校<br/>表<br/>現(xiàn)<br/>情<br/>況</td>
        <td colspan="7" style="height: 300px;">
            <p>在?;厩闆r111</p>
        </td>
    </tr>
    <tr>
        <td colspan="8">
            <span style="width: 100%;">班主任簽字:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&nbsp;&nbsp;&nbsp;&nbsp;年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日</span></span>
        </td>
    </tr>
    <tr>
        <td style="height: 50px;border: 1px solid #000000;" colspan="4">系 部 推 薦 意 見</td>
        <td style="height: 50px;border: 1px solid #000000;" colspan="4"><p>學(xué) 院 推 薦 意 見</p></td>
    </tr>
    <tr>
        <td style="height: 200px;border: 1px solid #000000;" colspan="4">
            <div style="height: 150px;text-align: right;">
                <p>簽&nbsp;&nbsp;&nbsp;&nbsp;章&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
                <p>年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日</p>
            </div>
        </td>
        <td style="height: 200px;border: 1px solid #000000;" colspan="4">
            <div style="height: 150px;text-align: right;">
                <p>簽&nbsp;&nbsp;&nbsp;&nbsp;章&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
                <p>年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日</p>
            </div>
        </td>
    </tr>
    </tbody>
</table>

</body>
</html>

image-20201028163736175.png

5)根據(jù)這個(gè)html,將example_001.php的得代碼進(jìn)行更改(不用它定義的常量),代碼和效果如下:

<?php

require_once('../tcpdf.php');

$pdf = new \TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
$pdf->SetCreator('TCPDF');
$pdf->setPrintFooter(false);
$pdf->setPrintHeader(false);
$pdf->SetDefaultMonospacedFont('courier');
$pdf->SetDefaultMonospacedFont('courier');
$pdf->SetMargins(15, 15, 15);
$pdf->SetHeaderMargin(0);
$pdf->SetFooterMargin(0);
$pdf->SetAutoPageBreak(true, 25);
$pdf->setImageScale(1.25);
$pdf->setFontSubsetting(false);
$pdf->SetFont('stsongstdlight', '', 10);
$pdf->AddPage();
$pdf->setTextShadow(array('enabled' => false, 'depth_w' => 0.2, 'depth_h' => 0.2, 'color' => array(196, 196, 196), 'opacity' => 1, 'blend_mode' => 'Normal'));
$html = '<style>
    table {
        text-align: left;
        margin: 0 auto;
        border: 1px solid #000000;
        font-weight: 700;
    }
    .td-height {
        height: 70px;
        font-weight: 700;
    }
    .title {
        text-align: center;
    }
    .title .tjb {
        font-size: 30px;
    }
</style>
<div class="title">
    <img src="" width="200">
    <span class="tjb">111屆畢業(yè)生就業(yè)推薦表</span>
</div>
<table class="top">
    <tbody>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">姓名</td>
        <td class="td-height" style="border: 1px solid #000000">
            田*
        </td>
        <td class="td-height" style="border: 1px solid #000000">性別</td>
        <td class="td-height" style="border: 1px solid #000000">男</td>
        <td class="td-height" style="border: 1px solid #000000">民族</td>
        <td class="td-height" style="border: 1px solid #000000">
            漢
        </td>
        <td rowspan="3" colspan="2" cellpadding="0" style="border: 1px solid #000000" height="230">
            <img src="http://www.nucibc2.dev.com/Public/data/tjb/5eb8f24808179.jpg" style=" width:166px;height: 230px;margin: 0;
            " alt="">
        </td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">專業(yè)</td>
        <td class="td-height" style="border: 1px solid #000000">網(wǎng)絡(luò)技術(shù)</td>
        <td class="td-height" style="border: 1px solid #000000">學(xué)歷</td>
        <td class="td-height" style="border: 1px solid #000000"> 大專</td>
        <td class="td-height" style="border: 1px solid #000000">學(xué)制</td>
        <td class="td-height" style="border: 1px solid #000000">3</td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">出生<br/>日期</td>
        <td class="td-height" style="border: 1px solid #000000">1996.6</td>
        <td class="td-height" style="border: 1px solid #000000">健康<br/>狀況</td>
        <td class="td-height" style="border: 1px solid #000000">良好</td>
        <td class="td-height" style="border: 1px solid #000000">身高</td>
        <td class="td-height" style="border: 1px solid #000000">170</td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">身份證<br/>號(hào)碼</td>
        <td class="td-height" colspan="3" style="border: 1px solid #000000">513433</td>
        <td class="td-height" style="border: 1px solid #000000">籍貫</td>
        <td class="td-height" colspan="3" style="border: 1px solid #000000">
            四川
        </td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">計(jì)算機(jī)<br/>等級(jí)</td>
        <td class="td-height" style="border: 1px solid #000000">二級(jí)</td>
        <td class="td-height" style="border: 1px solid #000000">外語(yǔ)<br/>等級(jí)</td>
        <td class="td-height" style="border: 1px solid #000000">4</td>
        <td class="td-height" style="border: 1px solid #000000">郵箱</td>
        <td class="td-height" colspan="3" style="border: 1px solid #000000">251122@qq.com</td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">本人<br/>電話</td>
        <td class="td-height" style="border: 1px solid #000000">151</td>
        <td class="td-height" colspan="" style="border: 1px solid #000000">家庭<br/>電話</td>
        <td class="td-height" colspan="" style="border: 1px solid #000000">191</td>
        <td class="td-height" colspan="" style="border: 1px solid #000000">家庭<br/>住址</td>
        <td class="td-height" colspan="3" style="border: 1px solid #000000">四川</td>
    </tr>
    <tr>
        <td class="td-height" style="border: 1px solid #000000">在校擔(dān)<br/>任職務(wù)</td>
        <td colspan="3" style="border: 1px solid #000000">測(cè)試職位</td>
        <td class="td-height" colspan="" style="border: 1px solid #000000">特長(zhǎng)</td>
        <td colspan="3" style="border: 1px solid #000000"></td>
    </tr>
    <tr>
        <td style="border: 1px solid #000000">自<br/>我<br/>總<br/>結(jié)</td>
        <td colspan="7" style="height:320px;border: 1px solid #000000"><p>自我總結(jié)111</p></td>
    </tr>
    <tr>
        <td style="border: 1px solid #000000">在<br/>校<br/>期<br/>間<br/>獲<br/>獎(jiǎng)<br/>情<br/>況</td>
        <td colspan="7" style="height: 320px;border: 1px solid #000000"><p>獲獎(jiǎng)</p></td>
    </tr>
    <tr>
        <td style="border: 1px solid #000000" rowspan="2">學(xué)<br/>生<br/>在<br/>校<br/>表<br/>現(xiàn)<br/>情<br/>況</td>
        <td colspan="7" style="height: 300px;">
            <p>在?;厩闆r111</p>
        </td>
    </tr>
    <tr>
        <td colspan="8">
            <span style="width: 100%;">班主任簽字:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>&nbsp;&nbsp;&nbsp;&nbsp;年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日</span></span>
        </td>
    </tr>
    <tr>
        <td style="height: 50px;border: 1px solid #000000;" colspan="4">系 部 推 薦 意 見</td>
        <td style="height: 50px;border: 1px solid #000000;" colspan="4"><p>學(xué) 院 推 薦 意 見</p></td>
    </tr>
    <tr>
        <td style="height: 200px;border: 1px solid #000000;" colspan="4">
            <div style="height: 150px;text-align: right;">
                <p>簽&nbsp;&nbsp;&nbsp;&nbsp;章&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
                <p>年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日</p>
            </div>
        </td>
        <td style="height: 200px;border: 1px solid #000000;" colspan="4">
            <div style="height: 150px;text-align: right;">
                <p>簽&nbsp;&nbsp;&nbsp;&nbsp;章&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
                <p>年&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;月&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;日</p>
            </div>
        </td>
    </tr>
    </tbody>
</table>
';
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 0, 0, false, 'center', true);
$res = $pdf->Output('example_065.pdf', 'S');
file_put_contents('./bb.pdf', $res);

效果:

image-20201106115157307.png

6)把生成的效果給領(lǐng)導(dǎo)

2.領(lǐng)導(dǎo)過目

1)把html模板給我發(fā)一份,給了,不知道他通過什么生成了pdf文檔。

2)然后給我發(fā)了一份生成的pdf文件,說跟你發(fā)給我的不一樣,我說就是通過這個(gè)模板生成的呀。

3)我估計(jì)領(lǐng)導(dǎo)百度看了一下(他是懂技術(shù)的哦),發(fā)現(xiàn)php通過html生成pdf的教程非常少。

4)最后說,不用改了,測(cè)一下原來的(說明一下,原來的是通過word模板生成word文件)。

3.結(jié)論

以后如果有領(lǐng)導(dǎo)讓你生成pdf文件(技術(shù)棧:php),你可以婉轉(zhuǎn)的拒絕。

最后希望我的博客能幫助到大家。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容