zoukankan      html  css  js  c++  java
  • tcpdf 将网页生成pdf

    需求:需要将HTML页面生成PDF文档

    开发语言:PHP

    使用TCPDF第三方类库进行生成,下载地址:http://sourceforge.net/projects/tcpdf/

    核心代码:

     1     public static function writePdf($content)
     2     {
     3         $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
     4         $pdf->SetCreator(PDF_CREATOR);
     5         
     6         $pdf->SetHeaderData("logo.jpg", 70, 'wanglibao Agreement' . '', '');
     7         $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
     8         $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
     9         $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
    10         $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
    11         $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
    12         $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
    13         $pdf->AddPage();
    14         $pdf->setPageMark();
    15         $pdf->SetFont('stsongstdlight', '', 13);
    16         $title = <<<EOD
    17 <h2>标题</h2>
    18 EOD;
    19 
    20         $pdf->writeHTML($content, true, false, false, false, '');
    21 //         $pdf->writeHTML($content, true, 0, true, true);
    22 //         $pdf->writeHTMLCell(0, 0, '', '', $content, 0, 1, 0, true, 'C', true);
    23         $pdf->lastPage();
    24         $pdf->Output(date('Y-m-d') . '.pdf', 'I');
    25     }

     TCPDF存在的问题:

      问题:当页面中有表格的时候,有的时候TCPDF不将表格显示出来,或者是一个黑色的区块,导致不能正常的显示。

      解决办法:使用TCPDF中的样式即可解决。

    <table cellpadding="1" cellspacing="1" border="1" style="text-align:center;">
        <tr>
            <td>C</td>
            <td>2C</td>
            <td>3C</td>
            <td>4F</td>
        </tr>
        <tr>
            <td>1C</td>
            <td>2C</td>
            <td>3C</td>
            <td>4F</td>
        </tr>
    </table>

    问题:汉字显示??或者其他乱码,不能正常显示。

    解决办法:

      该问题分为两个,一个是PDF标题中汉字出现乱码。方案是设置$pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN,'',PDF_FONT_SIZE_MAIN); 其中PDF_FONT_NAME_MAIN就是设置头部的字体编码。将PDF_FONT_NAME_MAIN设置为msungstdlight即可。

      另一个是页面中出现乱码。同样是设置编码。在$pdf->writeHtml();或者$pdf->Cell();等之前设置$pdf->SetFont(msungstdlight,'', 字体大小);即可

  • 相关阅读:
    OpenStack 数据库操作 demo
    python 实现获取电脑IP、主机名、Mac地址
    openvswitch BFD 简介
    Python 获取主机名
    OpenvSwitch完全使用手册
    ovs datapath笔记
    openstack 实用命令
    表示数值的字符串 牛客网 剑指Offer
    反转单词顺序列 牛客网 剑指Offer
    第一个只出现一次字符的位置 牛客网 剑指Offer
  • 原文地址:https://www.cnblogs.com/feiqi/p/4778537.html
Copyright © 2011-2022 走看看