tcpdf 將網頁生成pdf

需求:須要將HTML頁面生成PDF文檔tcp

開發語言:PHP字體

使用TCPDF第三方類庫進行生成,下載地址:http://sourceforge.net/projects/tcpdf/編碼

核心代碼:spa

 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存在的問題:.net

  問題:當頁面中有表格的時候,有的時候TCPDF不將表格顯示出來,或者是一個黑色的區塊,致使不能正常的顯示。code

  解決辦法:使用TCPDF中的樣式便可解決。blog

<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>

問題:漢字顯示??或者其餘亂碼,不能正常顯示。ci

解決辦法:開發

  該問題分爲兩個,一個是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,'', 字體大小);便可

相關文章
相關標籤/搜索