欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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下面
swagger+asciidoctor 导出PDF中文缺失乱码问题解决
找到jar之后,打开字体文件路径:asciidoctorj-pdf-1.5.0-alpha.10.1.jar\gems\asciidoctor-pdf-1.5.0.alpha.10\data\fonts
swagger+asciidoctor 导出PDF中文缺失乱码问题解决

【二】替换字体文件

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

【三】修改主题配置文件

再修改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中文缺失乱码问题解决

【四】修改完,运行命令

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

mvn asciidoctor:process-asciidoc
mvn generate-resources

修改成果

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