中文乱码

引入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. python3之json模块使用

    1. json模块介绍 json是python自带的操作json的模块. python序列化为json时的数据类型转换关系: python格式 json格式 dict(复合类型) object lis ...

  2. Batch Gradient Descent vs. Stochastic Gradient Descent

    梯度下降法(Gradient Descent)是用于最小化代价函数的方法. When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0 ...

  3. docker使用现有容器生成新的镜像

    /*运行docker run后 --则进入该容器里了 我们做一些变更,比如安装一些东西 ,然后针对这个容器进行创建新的镜像 */ 基本形式: docker commit -m "change ...

  4. CRF++进行中文分词实例

    工具包:https://taku910.github.io/crfpp/#tips 语料:http://sighan.cs.uchicago.edu/bakeoff2005/ 安装: 1)下载linu ...

  5. 64_p3

    perl-Locale-Msgfmt-0.15-17.fc26.noarch.rpm 12-Feb-2017 03:11 20558 perl-Locale-PO-0.27-6.fc26.noarch ...

  6. 在浏览器中输入www.baidu.com后执行的全过程

    链接 http 请求过程——当我们在浏览器输入 www.baidu.com,然后回车之后的详解. 1)域名解析(域名 www.baidu.com变为 ip 地址). 1.浏览器搜索自己的DNS缓存(维 ...

  7. 123.Best Time to Buy and Sell Stock III---dp

    题目链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/description/ 题目大意:与122题类似,只是这 ...

  8. android 动态改变控件位置和大小 .

    动态改变控件位置的方法: setPadding()的方法更改布局位置. 如我要把Imageview下移200px:             ImageView.setPadding( ImageVie ...

  9. java基础2 判断语句:if ... else 语句和 switch 语句

    一.if ... else 判断语句 1.if ... else 判断语句的格式 1.1.格式一 if(判断条件){ 执行不满足条件的语句 } 1.2.格式二 if(判断语句){ 满足条件的语句 }e ...

  10. MySQL 和 Oracle 主键自增长

    1.MySQL 1)建表 auto_increment:每插入一条数据,客户表(customers)的主键id就自动增1,如下所示 create table customers -- 创建客户表 ( ...