中文乱码

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

fpdf中文乱码,添加字符集的更多相关文章

  1. docker-compose 修改zabbix images 添加微信报警插件 时间同步 中文乱码 添加grafana美化zabbix

    我们先来看一下我们要修改得  zabbix.yaml           github   https://github.com/bboysoulcn/awesome-dockercompose ve ...

  2. ubuntu中文乱码--添加中文字符集

    在Ubuntu支持中文后(方法见上篇文章),默认是UTF-8编码,而Windows中文版默认是GBK编码.为了一致性,通常要把Ubuntu的默认 编码改为GBK.当然你也可以不改,但这会导致我们在两个 ...

  3. mysq查询语句包含中文以及中文乱码,字符集 GBK、GB2312、UTF8的区别

    一.查看mysql 字符集设置情况 使用Navicat for Mysql查看工具,打开命令列界面,输入show variables like '%char%';如下图,查看当前mysql字符集设置情 ...

  4. Oracle中文乱码,字符集问题处理

    1. 右键计算机,选择属性,增加环境变量 NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 2.进入注册表,依次单击HKEY_LOCAL_MACHINE --> ...

  5. windows上java中文乱码-指定字符集 -Dfile.encoding=UTF-8

    jvm启动中增加参数: -Dfile.encoding=UTF-8 重启即可.

  6. (原创)Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)

    « CloudStack+XenServer详细部署方案(10):高级网络功能应用 (总结)CentOS Linux 5.x在GPT分区不能引导的解决方法 » 2013-1 11 (原创)Linux下 ...

  7. eclipse中添加进新的java项目中文乱码

    eclipse中添加进新的java项目中文乱码 添加学习的一些项目进eclipse中,结果其中的中文注释都变成了乱码 右击项目,点最下面的属性,出来新得弹框 在文本文件编码部分可以发现是GBK格式,选 ...

  8. 增加UBUNTU字符集 解决中文乱码问题

    对GBK,GB2312,GB18030字符集的支持是UBUNTU中文乱码的罪魁祸首,其实我们可以在保持UTF-8为默认编码的条件下添加对这几个编码的支持,以解决中文乱码问题. 我想这个问题肯定有其他人 ...

  9. mysql5.5字符集设置的一点变化(对于中文乱码问题,需要设置mysql字符集)

    工作中因为字符集问题没少头疼,还犯过一次错误,还好拯救及时,没有发生重大事故,唉,弄清楚点还是非常有必要的: 例如我的工作环境为CTR+redhat5+mysql5.5 在导入sql语句的时候必须要注 ...

随机推荐

  1. Vue SPA 首屏加载优化实践

    写在前面 本文记录笔者在Vue SPA项目首屏加载优化过程中遇到的一些坑及优化方案! 我们以 vue-cli 工具为例,使用 vue-router 搭建SPA应用,UI框架选用 element-ui ...

  2. $.when()方法翻译2

    mac不知道为何,文章字数一多,浏览器就重启.只好分开写了. In the event a Deferred was resolved with no value, the corresponding ...

  3. 002利用zabbix监控某个目录大小

    近期,因为JMS的消息堆积导致ApacheMQ频率故障(消息没有被消费掉,导致其数据库达到1.2G,JMS此时直接挂掉),很是郁闷!刚好自 己在研究zabbix.既然zabbix如此强大,那么它可以监 ...

  4. mac 上 sublime text2 快捷键

    打开/前往: ⌘T 前往文件 ⌘⌃P 前往项目⌘R 前往 method⌘⇧P 命令提示⌃G 前往行⌃ ` python 控制台 编辑:⌘L 选择行 (重复按下将下一行加入选择)⌘D 选择词 (重复按下 ...

  5. 《跟老齐学Python Django实战》读后感

    1.说一下这本书,讲解的很细致,内容选取足够入门Django. 2.在学习这本书要注意的几点: <1>如果你想跟着敲这本书的代码必须要安装:Django版本1.10.1(当然也可以玩玩新版 ...

  6. linux 下配置文件目录/etc/sysconfig

    /etc/sysconfig/目录详解 2010-06-19 11:12 6693人阅读 评论(1) 收藏 举报 桌面环境debugging防火墙serviceunix语言 /etc/sysconfi ...

  7. Debian系网络配置 /etc/network/interfaces

    说Debian系的网卡配置跟Redhat系很不一样,Redhat是放在/etc/sysconfig/network-scripts目录下面的一大堆文件里面,要修改?你一个一个文件来过吧.Debian系 ...

  8. hexdump related.

    hexdump format strings Tue 13 December 2005 In tips. Ian Wienand More from the "things you'd le ...

  9. html5多媒体Video/Audio

    video:    1.常见的视频格式 视频的组成部分:画面.音频.编码格式 视频编码:H.264.theora.VP8(google开源)      2.常见的音频格式     编码:AAC.MP3 ...

  10. Rule Compilation error xxx cannot be resolved

    说明:在eclipse中部署服务器时不报错,但在dos窗口中部署时报如下异常 原因:规则引擎drl文件文件中两个含义相同的变量的中文注释(只能用//,不能使用/**xxx*/或/*xxx*/)要保持相 ...