swagger+asciidoctor 导出PDF中文缺失乱码问题解决
程序员文章站
2024-01-27 17:05:46
...
asciidoctor-maven-plugin插件导出pdf中文丢失或乱码
问题描述
在上一篇博客swagger自动生成PDF和HTML格式的API文档 中,我们使用swagger成功导出了pdf和html静态文档,但是发现PDF格式的文档存在中文丢失或者乱码问题,本篇博客专门解决该问题。
问题思路
中文丢失或乱码,无非就是编码或者是字体文件导致的,后面查询了相关资料发现,asciidoctor-maven-plugin导出PDF所依赖的asciidoctorj-pdf工具包,里面自带的字体文件对中文支持不是很好,所以我们只要将他的字体文件替换掉就可解决这个问题。
问题解决
【一】在maven仓库找到该工具包并找到字体文件所在位置
首先找到jar包:
我的路径在:D:\maven\repository\org\asciidoctor\asciidoctorj-pdf\1.5.0-alpha.10.1下面
找到jar之后,打开字体文件路径:asciidoctorj-pdf-1.5.0-alpha.10.1.jar\gems\asciidoctor-pdf-1.5.0.alpha.10\data\fonts
【二】替换字体文件
在fonts下面有以.ttf结尾的字体文件,在themes下面是指定主题的配置文件,使用哪个字体文件,就是在这里指定的,我们先把自己下载好的字体文件加进去:
【三】修改主题配置文件
再修改asciidoctorj-pdf-1.5.0-alpha.10.1.jar\gems\asciidoctor-pdf-1.5.0.alpha.10\data\themes下面的default-theme.yml配置文件:
【四】修改完,运行命令
修改完成之后,保存,再去执行生成命令:
mvn asciidoctor:process-asciidoc
mvn generate-resources
修改成果
修改前:
修改后:
可以看到,新生成的PDF文件没有再出现乱码和字体丢失现象,问题完美解决!
推荐阅读
-
swagger+asciidoctor 导出PDF中文缺失乱码问题解决
-
Mysql中文乱码以及导出为sql语句和Excel问题解决_MySQL
-
ABP进阶教程10 - PDF导出中文乱码
-
ABP进阶教程10 - PDF导出中文乱码
-
Ireport生成pdf格式的报表中的中文乱码问题解决办法
-
解决html导出pdf中文乱码问题的正确姿势
-
MySQL中文乱码以及导出为sql语句和Excel问题解决
-
Mysql中文乱码以及导出为sql语句和Excel问题解决_MySQL
-
Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]_MySQL
-
MySQL中文乱码以及导出为sql语句和Excel问题解决