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

posted @ 2022-12-08 17:48  bhxuwei  阅读(1103)  评论(0)    收藏  举报