• 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,'', 字体大小);即可

  • 相关阅读:
    Codeforces C. Almost Equal (数学规律)
    codeforce D. Shortest Cycle(floyd求最短环)
    Codeforces 1204D2. Kirk and a Binary String (hard version) (dp思路)
    codeforces 1204C Anna, Svyatoslav and Maps(floyd+dp)
    hdu 6214 Smallest Minimum Cut(最小割的最少边数)
    扩展欧几里得求解同余方程(poj 1061)
    poj 3281Dining(网络流 拆点)
    poj 3057(bfs+二分匹配)
    买鱼杂感
    geotrellis使用(十四)导出定制的GeoTiff
  • 原文地址:https://www.cnblogs.com/feiqi/p/4778537.html
Copyright © 2020-2023  润新知