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中文乱码解决-手动添加字体文件相关推荐

  1. pd4ml中文乱码解决

    问题:linux服务器上运行springboot项目,使用pd4ml生成pdf时,中文乱码. 解决方法 项目根目录下创建文件夹fonts, 并将pd4ml-1.0.0 对应的jar包和.tff 字体文 ...

  2. 解决Ubuntu下matplotlib中文乱码问题-以添加宋体:simsun为例

    解决Ubuntu下matplotlib中文乱码问题-以添加宋体:simsun为例 先从simsun官网上下载宋体字体库 : 查看matplotlib配置文件位置: import matplotlibp ...

  3. [Ubuntu18.04遇到的问题及解决办法]缺失字体如何手动添加字体

    @[TOC][Ubuntu18.04遇到的问题及解决办法] 缺失字体如何手动添加字体 大家在使用Ubuntu时,可能会遇到系统缺失字体的问题,比如,安装WPS会提示缺失simsun,wingdings ...

  4. Kylin 10 安装达梦数据库 图形界面乱码 最小修正解决(一个字体文件)

    Kylin 10 安装达梦数据库 图形中文界面乱码 最小修正解决(一个字体文件) 一. Kylin 10 测试图形界面(无xclock,xmanager passive模式) 二. Kylin 10 ...

  5. Pandas导出CSV文件中文乱码解决方法

    问题描述: 使用to_csv方法导出CSV文件,文件出现中文乱码 解决方法: 在使用to_csv时在参数中加入参数encoding='utf_8_sig' 关于原理,请参考以下文章: utf-8和ut ...

  6. Web前端——VScode打开html文件中文乱码解决办法

    VScode打开html文件中文乱码解决办法 1.打开VScode后,依次点击 文件 >> 首选项 >> 设置 2.打开设置后,依次点击 文本编辑器 >> 文件(或 ...

  7. 初次使用Ubuntu18.04遇到的问题——笔记2(Ubuntu18.04 缺失字体如何手动添加字体+Ubuntu18.04 右键怎么添加新建空白文本文件+Ubuntu18.04 如何创建文件夹的快)

    目录 碎碎念: Ubuntu18.04 缺失字体如何手动添加字体 首先需要找到缺少的字体文件: 找到缺失的字体文件后的添加过程: 1. 找到字体位置 2. 拷贝字体 3. 建立字体索引信息并更新缓存 ...

  8. putty 中文乱码解决方法

    putty 中文乱码解决方法 方法一: 打开putty主程序,选择window-〉Appearance-〉Font settings-〉Change...,选择Fixedsys字体,字符集选择CHIN ...

  9. 【转】QT中使用MYSQL中文乱码解决方法

    [转]QT中使用MYSQL中文乱码解决方法 Linux下乱码解决办法: 1.在QT程序的main.cpp的main函数中添加红色字那三句: int main(int argc, char *argv[ ...

最新文章

  1. VTK修炼之道7_三维场景基本要素:光照
  2. GraphPad Prism 的统计显著性报告中*或**或**的含义是什么?
  3. GDCM:串联/提取DICOM文件的测试程序
  4. Java与C#平台通信 WCF CXF SOAP
  5. 集群环境下的Session共享
  6. String.valueOf()
  7. 量子计算机功率,量子计算功耗知多少
  8. Python进阶_mysql(1)
  9. chrome浏览器导出书签 如何导入收藏夹
  10. turtle模块还能这样玩?(一条条金龙鱼、雨景)
  11. android 中LayoutInflater 的使用
  12. Ubuntu下安装-有道词典
  13. js高程读书笔记(1-3章)
  14. 静态库与动态库的区别与优缺点
  15. 苹果macOS 13 Ventura beta版如何转成正式版?如何将 MacOS Beta 版更新为正式版?
  16. 三星Galaxy S21系列5G手机竟成了《天赐的声音》舞台上最亮的星?
  17. UVA 1646 Edge Case
  18. 【python基础】python中常用字符串函数详解
  19. linuxoracle图形界面无法跳出_Linux 7图形化安装Oracle或者其他软件,打不开图形界面的问题 | 信春哥,系统稳,闭眼上线不回滚!...
  20. innodb和myISAM 1075

热门文章

  1. Jira Confluence 在敏捷转型中的重要性
  2. CentOS下载教程
  3. Java开发规范整理
  4. 免费送书 | 《自动化测试实战宝典:Robot Framework + Python从小工到专家》
  5. Java程序设计(Java9版):第0章 绪论(Introduction)
  6. 26个让你沉迷学习无法自拔的app,法考生必备!
  7. UNIX基本操作命令
  8. 将书籍扫描做成电子版在网络上共享,这算不算侵权?
  9. 计算机配置管理模板怎么重装,电脑重装与功能设置.docx
  10. 兆骑科创科创赛事举办,创业大赛活动路演