pd4ml中文乱码解决-手动添加字体文件

来源:互联网 发布:游戏编程要学历吗 编辑:程序博客网 时间:2024/05/28 03:02

String path = request.getSession().getServletContext().getRealPath("");pd4ml.useTTF(path+"\\fonts", true);

pd4ml是什么我就不用多说了,首先它是商业软件,要去下jar包是非常困难的,目前我就找到了3个非试用的(试用的转换出来左下角会有水印,pd4ml_demo就是试用的)。你要转换中文,首先pd4ml版本必须是pro(官网说的),

PD4ML.getVersion(); // 静态方法,查看pd4ml版本pd4ml.enableDebugInfo(); //开启转换调试信息

如果调试信息有找字体文件的,说明你的jar包就是pro的

'simsun bold' is not in file:***********reject TTF lookup for: 'simsun bold'
开始用了310的包,用的fonts字体包,中文倒是能解决,但是版本太低,不支持浮动、定位和display,以至于两个块级元素不能放在同一行,于是找了个高版本的(370),虽然支持这些,但是又与低版本的fonts.jar不兼容,中文显示乱码,无耐只好自己解决乱码,资源包在最下面。

首先到项目Web-Info目录下,新建一个fonts文件夹,把字体文件(.ttf)复制进去,再把pd4ml-370fx2pro.jar复制进去,此时还没有配置文件,在fonts文件夹里打开cmd命令行:

java -jar pd4ml-370fx2pro.jar -configure.fonts ../fonts ../fonts

然后就会生成两个配置文件,

在JAVA代码里,将以前的用jar包读取字体的代码 

pd4ml.useTTF(”java:fonts", true);

 改为 

String path = request.getSession().getServletContext().getRealPath("");pd4ml.useTTF(path+"\\fonts", true);


重新部署项目后,如果报 ..\fonts\simsun.ttc (系统找不到指定的路径。)  错误,说明已经能读取配置文件了,打开生成的pd4fonts.properties配置文件

把最下面的一行 font.dir.location=../fonts 删除,再部署项目,就能识别中文了!

需要注意的是,HTML代码声明字体时,尽量用英文,比如

font-family:"宋体";
要写成
font-family: "SimSun";

下面是对照表:

下载链接: 点我

jar包:包含 pd4ml-310b10.jar+fonts.jar,pd4ml-323b2.jar,pd4ml-370fx2pro.jar,ss_css2.jar,

及390pro、381pro、3100pro(最新版本)的试用版及其官方文档

说明:ss_css2.jar必须导入,fonts.jar只是配合310使用解决中文乱码,高版本的fonts.jar包,楼主小白还没弄,你们可以去试试

1 0
原创粉丝点击