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

asciidoctor-maven-plugin插件导出pdf中文丢失或乱码

      • asciidoctor-maven-plugin插件导出pdf中文丢失或乱码
      • 问题描述
      • 问题思路
      • 问题解决
        • 【一】在maven仓库找到该工具包并找到字体文件所在位置
        • 【二】替换字体文件
        • 【三】修改主题配置文件
        • 【四】修改完,运行命令
      • 修改成果

问题描述

在上一篇博客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下面
swagger+asciidoctor 导出PDF中文缺失乱码问题解决_第1张图片
找到jar之后,打开字体文件路径:asciidoctorj-pdf-1.5.0-alpha.10.1.jar\gems\asciidoctor-pdf-1.5.0.alpha.10\data\fonts
swagger+asciidoctor 导出PDF中文缺失乱码问题解决_第2张图片

【二】替换字体文件

在fonts下面有以.ttf结尾的字体文件,在themes下面是指定主题的配置文件,使用哪个字体文件,就是在这里指定的,我们先把自己下载好的字体文件加进去:
swagger+asciidoctor 导出PDF中文缺失乱码问题解决_第3张图片

【三】修改主题配置文件

再修改asciidoctorj-pdf-1.5.0-alpha.10.1.jar\gems\asciidoctor-pdf-1.5.0.alpha.10\data\themes下面的default-theme.yml配置文件:
swagger+asciidoctor 导出PDF中文缺失乱码问题解决_第4张图片

【四】修改完,运行命令

修改完成之后,保存,再去执行生成命令:

mvn asciidoctor:process-asciidoc
mvn generate-resources

修改成果

修改前:
swagger+asciidoctor 导出PDF中文缺失乱码问题解决_第5张图片
修改后:
swagger+asciidoctor 导出PDF中文缺失乱码问题解决_第6张图片
可以看到,新生成的PDF文件没有再出现乱码和字体丢失现象,问题完美解决!

你可能感兴趣的:(Spring,Boot相关)