admin管理员组文章数量:1594755
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包,楼主小白还没弄,你们可以去试试
版权声明:本文标题:pd4ml中文乱码解决-手动添加字体文件 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728203463a1149679.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论