Gradle环境下导出Swagger为PDF (3)

修改主题文件,将mplus1p-regular-fallback.ttf替换为自己下载的字体文件的名称。

M+ 1p Fallback: normal: your-font.ttf bold: your-font.ttf italic: your-font.ttf bold_italic: your-font.ttf

由于手动指定了字体文件的路径,所以除了中文以外,还需要将源码中的其他字体文件一并复制到${pdfFontsDir}文件夹。如果不愿意使用官方的字体,也可以考虑将default-theme.yml中其他的字体文件都修改为自己想要的文件。

保持task genPdf不变,再次运行即可生成PDF文件,生成的文件默认路径为${build}/docs/asciidocPdf

小结

asciidoctor-gradle-plugin的方式可以支持配置字体与主题,通过配置不仅规避了中文无法显示的问题,同时使用起来也更加简单。需要注意的是,采用此种方案生成出的文档会在封面写有项目的版本号,此版本号为build.gradle中的version,而非SwaggerConfig类中的version。

官方提供了很多配置,可以自行参考官方文档查看。

build.gradle完整文件参考:

buildscript { ext { springbootVersion = '2.1.6.RELEASE' } repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public' } } dependencies { classpath "org.springframework.boot:spring-boot-gradle-plugin:${springbootVersion}" } } plugins { id 'org.asciidoctor.jvm.pdf' version '2.2.0' } repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public' } } apply plugin: 'java' apply plugin: 'maven' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group 'com.jptangchina' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 targetCompatibility = 1.8 ext { asciiDocOutputDir = file("${buildDir}/asciidoc") pdfFontsDir = file("${buildDir}/fonts") pdfThemesDir = file("${buildDir}/themes") swaggerVersion = '2.9.2' } dependencies { compile 'org.springframework.boot:spring-boot-starter-web' compile "io.springfox:springfox-swagger2:${swaggerVersion}" compile "io.springfox:springfox-swagger-ui:${swaggerVersion}" compile 'io.github.swagger2markup:swagger2markup:1.3.3' testCompile 'org.springframework.boot:spring-boot-starter-test' testCompile 'org.springframework.restdocs:spring-restdocs-mockmvc' } test { systemProperty 'io.springfox.staticdocs.outputDir', asciiDocOutputDir } pdfThemes { local 'basic', { styleDir = pdfThemesDir styleName = 'default' } } asciidoctorPdf{ sourceDir(asciiDocOutputDir.absolutePath) sources { include "swagger.adoc" } fontsDir(pdfFontsDir.absolutePath) theme("basic") } task genPdf(type: Test, dependsOn: test) { include '**/*SwaggerTest.class' exclude '**/*' dependsOn(asciidoctorPdf) } 参考

https://github.com/Swagger2Markup/swagger2markup
https://github.com/Swagger2Markup/spring-swagger2markup-demo

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdydy.html