fpdf中文乱码,添加字符集

中文乱码

引入Olivier的chinese.php(点击下载)

支持中文,其中有Big5,GB两种
使用方法也很简单

$pdf->AddBig5Font(); 
$pdf->SetFont('Big5','',20)

$pdf->AddGBFont(); 
$pdf->SetFont('GB','',20); 

PS:如果使用YII框架,可能会出现获取不到GB_widths的情况,将$GB_widths放入函数体内即可

添加字符集

自带的字体肯定满足不了需求,怎么自定义呢:
1、字体格式转换程序(TTF2PT1)
2、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文件,输入以下代码:

<?php     
require('./makefont/makefont.php');     
MakeFont('./simhei.ttf', './simhei.afm');     

运行该文件,生成了两个文件:simhei.php和simhei.z就可以,删掉simhei.ttf,制作字体的任务就完成了,如果想制作多个字体,继续用这个方法

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,就可以了

转载于:https://www.cnblogs.com/attitudeY/p/7300212.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值