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

  • 相关阅读:
    SQL SERVER全面优化
    Mysql常见问题及优化
    Mysql相关问答
    Activiti动态设置办理人扩展
    Activiti流程编辑器针对自定义用户角色表优化改造
    taskService 流程任务组件
    activiti 工作流 动态 设置 指定 节点任务人、责任人、组 的实现方式
    千万级规模高性能、高并发的网络架构经验分享
    B树,B+树,红黑树应用场景AVL树,红黑树,B树,B+树,Trie树
    Mybatis源码分析
  • 原文地址:https://www.cnblogs.com/feiqi/p/4778537.html
Copyright © 2011-2022 走看看