FPDF中文多字体解决方案
2010-12-03 10:17
501 查看
中午找到了一个不错的在PHP中生成PDF的类,叫FPDF,下午研究时突然想到:如果能有多种字体,比如说黑体、楷体、仿宋等等,是不是更方便些呢!原来FPDF支持自己制作多字体!
上午已经下载了FPDF类和中文包,显示单一字体的中文应该没有问题了,现在需要多下载两个东西(最后两个附件就是了):
1、字体格式转换程序(TTF2PT1)
2、TTF2PT1中文支持包
[align=left] 将TTF2PT1解压到某个文件夹,这里设定为“C:\ttf2pt1”。将中文支持包中的ugb.map或ugbk.map复制到该文件夹。[/align]
[align=left] 将你想转换的字体从WINDOWS的FONTS文件夹中复制出来,这里处理黑体,复制的就是“simhei.ttf”,也复制到上面那个文件夹 中。这样你的“C:\ttf2pt1”文件夹中应该有以下几个文件:ttf2pt1.exe、ugbk.map、simhei.ttf。[/align]
[align=left] 运行:C:\ttf2pt1\ttf2pt1.exe –a –L ugbk.map+a1 simhei.ttf simhei[/align]
[align=left] 运行过程有点长,完成后会在“C:\ttf2pt1”文件夹内生成两个文件:simhei.afm和simhei.t1a,把 simhei.afm和simhei.ttf复制到你的FPDF类安装文件夹下的font内,并在该文件夹内新建一个PHP文件,输入以下代码:[/align]
[align=left] [/align]
[align=left] 运行该文件,戒烟如你的屏幕上显示了一大堆Warning,说什么东西missing,不要管它,只要又生成了两个文件:simhei.php和simhei.z就可以,删掉simhei.ttf,制作字体的任务就完成了,如果想制作多个字体,继续用这个方法。[/align]
[align=left] 使用范例:[/align]
上午已经下载了FPDF类和中文包,显示单一字体的中文应该没有问题了,现在需要多下载两个东西(最后两个附件就是了):
1、字体格式转换程序(TTF2PT1)
2、TTF2PT1中文支持包
[align=left] 将TTF2PT1解压到某个文件夹,这里设定为“C:\ttf2pt1”。将中文支持包中的ugb.map或ugbk.map复制到该文件夹。[/align]
[align=left] 将你想转换的字体从WINDOWS的FONTS文件夹中复制出来,这里处理黑体,复制的就是“simhei.ttf”,也复制到上面那个文件夹 中。这样你的“C:\ttf2pt1”文件夹中应该有以下几个文件:ttf2pt1.exe、ugbk.map、simhei.ttf。[/align]
[align=left] 运行:C:\ttf2pt1\ttf2pt1.exe –a –L ugbk.map+a1 simhei.ttf simhei[/align]
[align=left] 运行过程有点长,完成后会在“C:\ttf2pt1”文件夹内生成两个文件:simhei.afm和simhei.t1a,把 simhei.afm和simhei.ttf复制到你的FPDF类安装文件夹下的font内,并在该文件夹内新建一个PHP文件,输入以下代码:[/align]
[align=left] [/align]
<?php require('./makefont/makefont.php'); MakeFont('./simhei.ttf', './simhei.afm'); ?>
[align=left] 运行该文件,戒烟如你的屏幕上显示了一大堆Warning,说什么东西missing,不要管它,只要又生成了两个文件:simhei.php和simhei.z就可以,删掉simhei.ttf,制作字体的任务就完成了,如果想制作多个字体,继续用这个方法。[/align]
[align=left] 使用范例:[/align]
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();
相关文章推荐
- Linux/centos 5.x 中文字体解决方案
- Eclipse Indigo 3.7 中文字体偏小解决方案: Consolas 微软雅黑混合字体!
- ACTIVITI在LINUX下查看流程图片中文字体出现乱码的解决方案
- Flash Builder 4.6中文字体过小解决方案
- Linux 中文字体终极解决方案之一
- ubuntu英文环境下中文字体显示很难看的解决方案(基于ubuntu12.04)
- Flash中文字体嵌入终极解决方案
- Eclipse Indigo 3.7 中文字体偏小解决方案: Consolas 微软雅黑混合字体!
- Ctex CJK 中文字体颜色深浅解决方案
- 英文版的windows 10,中文字体难看的解决方案
- Linux版Sublime Text中文不能正常显示的解决方案(修改字体)
- Linux/centos中文字体解决方案
- Eclipse中中文注释字体太小的解决方案
- 使用matplotlib绘图时中文字体的解决方案
- 网页使用中文字体的两种解决方案
- Silverlight 2 Beta 2 中文字体完全解决方案
- centos 中文字体解决方案
- ireport引入到项目无法解析字体及pdf无法显示中文的解决方案
- iText生成pdf中文字体解决方案
- [Win7 x64]Eclipse Indigo 3.7 中文字体偏小解决方案: Consolas 微软雅黑混合字体!