Swagger文档转html和pdf格式_亲测成功

Swagger文档转html和pdf格式_亲测成功

spring maven项目 使用Swagger作为接口文档时,可以导出html和pdf格式.

maven项目pom.xml引入
	     <properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>

		<asciidoctor.input.directory>${project.basedir}/src/docs2/asciidoc</asciidoctor.input.directory>
		<generated.asciidoc.directory>${project.build.directory}/asciidoc</generated.asciidoc.directory>
		<asciidoctor.html.output.directory>${project.build.directory}/asciidoc/html</asciidoctor.html.output.directory>
		<asciidoctor.pdf.output.directory>${project.build.directory}/asciidoc/pdf</asciidoctor.pdf.output.directory>
	     </properties>


		<!--离线文档-->
		<dependency>
			<groupId>org.springframework.restdocs</groupId>
			<artifactId>spring-restdocs-mockmvc</artifactId>
			<scope>test</scope>
		</dependency>
		<!--生成静态文档-->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-staticdocs</artifactId>
			<version>2.4.0</version>
		</dependency>

		<!--通过Asciidoctor使得asciidoc生成其他的文档格式,例如:PDF 或者HTML5-->
		<plugin>
			<groupId>org.asciidoctor</groupId>
			<artifactId>asciidoctor-maven-plugin</artifactId>
			<version>1.5.3</version>
			<!-- Include Asciidoctor PDF for pdf generation -->
			<!--生成PDF-->
			<dependencies>
				<dependency>
					<groupId>org.asciidoctor</groupId>
					<artifactId>asciidoctorj-pdf</artifactId>
					<version>1.5.0-alpha.14</version>
				</dependency>
				<!-- Comment this section to use the default jruby artifact provided by the plugin -->
				<dependency>
					<groupId>org.jruby</groupId>
					<artifactId>jruby-complete</artifactId>
					<version>1.7.21</version>
				</dependency>
			</dependencies>

			<!-- Configure generic document generation settings -->
			<!--文档生成配置-->
			<configuration>
				<sourceDirectory>${asciidoctor.input.directory}</sourceDirectory>
				<sourceDocumentName>index.adoc</sourceDocumentName>
				<attributes>
					<doctype>book</doctype>
					<toc>left</toc>
					<toclevels>3</toclevels>
					<numbered></numbered>
					<hardbreaks></hardbreaks>
					<sectlinks></sectlinks>
					<sectanchors></sectanchors>
					<generated>${generated.asciidoc.directory}</generated>
				</attributes>
			</configuration>
			<!-- Since each execution can only handle one backend, run
               			separate executions for each desired output type -->
			<!--因为每次执行只能处理一个后端,所以对于每个想要的输出类型,都是独立分开执行-->
			<executions>
				<!--html5-->
				<execution>
					<id>output-html</id>
					<phase>test</phase>
					<goals>
						<goal>process-asciidoc</goal>
					</goals>
					<configuration>
						<backend>html5</backend>
						<outputDirectory>${asciidoctor.html.output.directory}</outputDirectory>
					</configuration>
				</execution>
				<!--pdf-->
				<execution>
					<id>output-pdf</id>
					<phase>test</phase>
					<goals>
						<goal>process-asciidoc</goal>
					</goals>
					<configuration>
						<backend>pdf</backend>
						<outputDirectory>${asciidoctor.pdf.output.directory}</outputDirectory>
					</configuration>
				</execution>
			</executions>
		</plugin>
根据 swagger2 生成文档
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
public class Swagger2Test {

        /**
         * 生成AsciiDocs格式文档
         */
        @Test
        public void generateAsciiDocs() throws Exception {
            //    输出Ascii格式
            Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
                    .withMarkupLanguage(MarkupLanguage.ASCIIDOC)
                    .withOutputLanguage(Language.ZH)
                    .withPathsGroupedBy(GroupBy.TAGS)
                    .withGeneratedExamples()
                    .withoutInlineSchema()
                    .build();

            Swagger2MarkupConverter.from(new URL("http://localhost:8080/server/v2/api-docs"))
                    .withConfig(config)
                    .build()
                    .toFolder(Paths.get("src/docs/asciidoc/generated"));
        }

	/**
         * 生成AsciiDocs格式文档,并汇总成一个文件
         */
        @Test
        public void generateAsciiDocsToFile() throws Exception {
            //    输出Ascii到单文件
            Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
                    .withMarkupLanguage(MarkupLanguage.ASCIIDOC)
                    .withOutputLanguage(Language.ZH)
                    .withPathsGroupedBy(GroupBy.TAGS)
                    .withGeneratedExamples()
                    .withoutInlineSchema()
                    .build();

            Swagger2MarkupConverter.from(new URL("http://localhost:8080/server/v2/api-docs"))
                    .withConfig(config)
                    .build()
                    .toFile(Paths.get("src/docs/asciidoc/generated/all"));
        }

}
把文档转成html和pdf文档
maven命令 clean test -Dmaven.test.skip=true

inner-verify-server项目中使用到Swagger文档转html和pdf功能

参考链接:
成功了转pdf和html
https://blog.csdn.net/fly910905/article/details/79131755
https://www.leftso.com/blog/402.html
http://www.spring4all.com/article/699
https://www.cnblogs.com/yanqin/p/9145941.html
https://blog.csdn.net/samt007/article/details/79846966
https://www.cnblogs.com/sjshare/p/9350135.html

相关推荐

  1. Swagger文档htmlpdf格式_成功

    2024-03-31 06:52:05       38 阅读
  2. 爬取某乎专栏文章html格式,并pdf保存

    2024-03-31 06:52:05       37 阅读
  3. linux下安装mysql主从搭建_成功

    2024-03-31 06:52:05       33 阅读
  4. list树形,可用

    2024-03-31 06:52:05       39 阅读
  5. html pdf

    2024-03-31 06:52:05       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 06:52:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 06:52:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 06:52:05       82 阅读
  4. Python语言-面向对象

    2024-03-31 06:52:05       91 阅读

热门阅读

  1. 【极简主义的深度学习】01 概览深度学习

    2024-03-31 06:52:05       32 阅读
  2. Spring Boot 使用详解

    2024-03-31 06:52:05       34 阅读
  3. 数据仓库的发展历程

    2024-03-31 06:52:05       36 阅读
  4. Docker常用命令

    2024-03-31 06:52:05       42 阅读
  5. 自动驾驶汽车:计算机视觉的前沿应用

    2024-03-31 06:52:05       41 阅读
  6. Visitor Pattern

    2024-03-31 06:52:05       31 阅读
  7. 可视化学习:实现Canvas图片局部放大镜

    2024-03-31 06:52:05       47 阅读
  8. .NET RSA加密算法实现

    2024-03-31 06:52:05       40 阅读