swagger+asciidoctor 导出PDF中文缺失乱码问题解决

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文件没有再出现乱码和字体丢失现象,问题完美解决!

猜你喜欢

转载自blog.csdn.net/qq_29534483/article/details/81235081
今日推荐