swagger 接口文档转 pdf
步骤
-
1、先把swagger 导出 swagger.json 文件
-
2、windows 目录挂载注意下,比如windows目录
D:\swagger
得写成/D/swagger
,swagger.json 文件 放在D:\swagger
目录下,执行下面的命令,会在D:\swagger
目录下生成swagger.adoc
文件。
docker run --rm -v /D/swagger:/opt swagger2markup/swagger2markup convert -i /opt/swagger.json -f /opt/swagger
- 3、根据产生的adoc文件在当前目录下生成名为“swagger.pdf”的文档。中文会出现乱码,见下面的解决方法。
docker run -it -v /D/swagger:/documents/ asciidoctor/docker-asciidoctor asciidoctor-pdf swagger.adoc
问题:解决 asciidoctor-pdf 中文乱码(都是小矩形)
-
1、在当前swagger.adoc所在文件夹下,创建themes文件夹,放入 cjk-fonts.yml 文件 和 字体 fonts 文件夹;
-
2、下载 googlefonts/noto-cjk 中文字体,注意要选择 “TTF” - “Subset Variable Simplified Chinese (简体中文)” 下的两种字体,保存到 themes/fonts/ 目录下。
不出意外的话,两个字体的文件名为:
NotoSansCJKsc-VF.ttf
一般字体
NotoSansMonoCJKsc-VF.ttf
等宽字体
- 3、新建 themes/cjk-fonts.theme 文件:
extends: default
font:
catalog:
merge: true
Noto Sans CJK SC: NotoSansCJKsc-VF.ttf
Noto Sans Mono CJK SC: NotoSansMonoCJKsc-VF.ttf
fallbacks:
- Noto Serif
base:
text-align: left
font-family: Noto Sans CJK SC
codespan:
font-family: Noto Sans Mono CJK SC
kbd:
font-family: $codespan-font-family
code:
font-family: $codespan-font-family
- 4、进入容器
docker run -it -v /D/swagger:/documents/ asciidoctor/docker-asciidoctor bash
# 在当前swagger.adoc所在文件夹下,创建themes文件夹,放入 cjk-fonts.yml 文件 和 字体 fonts 文件夹,然后执行下面的命令:
asciidoctor-pdf -r asciidoctor-diagram -r asciidoctor-pdf -a scripts=cjk -a pdf-theme=./themes/cjk-fonts.yml -a pdf-fontsdir='./themes/fonts;GEM_FONTS_DIR' swagger.adoc