引入Olivier的chinese.php(點擊下載)php
支持中文,其中有Big5,GB兩種
使用方法也很簡單瀏覽器
$pdf->AddBig5Font(); $pdf->SetFont('Big5','',20)
或框架
$pdf->AddGBFont(); $pdf->SetFont('GB','',20);
PS:若是使用YII框架,可能會出現獲取不到GB_widths的狀況,將$GB_widths放入函數體內便可函數
自帶的字體確定知足不了需求,怎麼自定義呢:
一、字體格式轉換程序(TTF2PT1)
二、TTF2PT1中文支持包
將TTF2PT1解壓到某個文件夾,這裏設定爲「C:\ttf2pt1」。將中文支持包中的ugb.map或ugbk.map複製到該文件夾。
將你想轉換的字體從WINDOWS的FONTS文件夾中複製出來,這裏處理黑體,複製的就是「simhei.ttf」,也複製到上面那個文件夾 中。這樣你的「C:\ttf2pt1」文件夾中應該有如下幾個文件:ttf2pt1.exe、ugbk.map、simhei.ttf。
運行:字體
C:\ttf2pt1\ttf2pt1.exe –a –L ugbk.map+a1 simhei.ttf simhei
運行過程有點長,完成後會在「C:\ttf2pt1」文件夾內生成兩個文件:simhei.afm和simhei.t1a,把 simhei.afm和simhei.ttf複製到你的FPDF類安裝文件夾下的font內,並在該文件夾內新建一個PHP文件,輸入如下代碼:ui
<?php require('./makefont/makefont.php'); MakeFont('./simhei.ttf', './simhei.afm');
運行該文件,生成了兩個文件:simhei.php和simhei.z就能夠,刪掉simhei.ttf,製做字體的任務就完成了,若是想製做多個字體,繼續用這個方法code
include('fpdf/chinese.php'); $pdf=new PDF_Chinese(); $pdf->AddGBFont('simhei','黑體'); $pdf->AddGBFont('simkai','楷體_GB2312'); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('simhei','',20); $pdf->SetXY(15,24); $pdf->Write(10,'顯示黑體字'); $pdf->SetFont('simkai','',20); $pdf->SetXY(15,54); $pdf->Write(10,'顯示楷體字'); $pdf->Output();
PS:用瀏覽器看一下,黑體出來了吧?不過效果彷佛不太讓人滿意,中文沒問題,英文數字,間距出問題。
具體緣由在於chinese.php文件裏,有個變量叫$GB_widths,定義英文字符寬度的,把全部英文、字符寬度所有改爲了480,就能夠了ip