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