好久没写博客了,今天弄了一个Swagger导出pdf文档的,在网上找解决方案的时候也挺头疼的,那我也整一个吧~(PS:项目怎么搭建swagger我这里就不详说了,所以现在添加的配置和依赖都是基于已经有swagger环境的基础哈!)

第一步:先去github找demo项目,项目地址:https://github.com/Swagger2Markup/spring-swagger2markup-demo,然后主要看一下demo里面pom里面的配置。

把demo的index.adoc拷贝到src/docs/asciidoc

第二步:修改pom.xml文件配置

<properties><java.version>1.8</java.version><swagger2markup.version>1.2.0</swagger2markup.version><asciidoctor.input.directory>${project.basedir}/src/docs/asciidoc</asciidoctor.input.directory><swagger.output.dir>${project.build.directory}/swagger</swagger.output.dir><generated.asciidoc.directory>${project.build.directory}/asciidoc/generated</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><swagger.input>http://localhost:8890/v2/api-docs</swagger.input><jackson.version>2.9.6</jackson.version>
</properties>
<dependencies><dependency><groupId>io.springfox</groupId><artifactId>springfox-staticdocs</artifactId><version>2.6.1</version></dependency><dependency><groupId>org.springframework.restdocs</groupId><artifactId>spring-restdocs-mockmvc</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.module</groupId><artifactId>jackson-module-jsonSchema</artifactId><version>${jackson.version}</version><scope>test</scope></dependency><dependency><groupId>io.github.robwin</groupId><artifactId>assertj-swagger</artifactId><version>0.8.1</version><scope>test</scope></dependency><dependency><groupId>io.github.swagger2markup</groupId><artifactId>swagger2markup-spring-restdocs-ext</artifactId><version>${swagger2markup.version}</version><scope>test</scope></dependency>
</dependencies>

插件配置:

<plugin><groupId>io.github.swagger2markup</groupId><artifactId>swagger2markup-maven-plugin</artifactId><version>${swagger2markup.version}</version><dependencies><dependency><groupId>io.github.swagger2markup</groupId><artifactId>swagger2markup-import-files-ext</artifactId><version>${swagger2markup.version}</version></dependency><dependency><groupId>io.github.swagger2markup</groupId><artifactId>swagger2markup-spring-restdocs-ext</artifactId><version>${swagger2markup.version}</version></dependency></dependencies><configuration><swaggerInput>${swagger.input}</swaggerInput><outputDir>${generated.asciidoc.directory}</outputDir><config><swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage><swagger2markup.pathsGroupedBy>TAGS</swagger2markup.pathsGroupedBy></config></configuration><executions><execution><phase>test</phase><goals><goal>convertSwagger2markup</goal></goals></execution></executions>
</plugin>
<plugin><groupId>org.asciidoctor</groupId><artifactId>asciidoctor-maven-plugin</artifactId><version>1.5.6</version><!-- Include Asciidoctor PDF for pdf generation --><dependencies><dependency><groupId>org.asciidoctor</groupId><artifactId>asciidoctorj-pdf</artifactId><version>1.5.0-alpha.16</version></dependency><dependency><groupId>org.jruby</groupId><artifactId>jruby-complete</artifactId><version>1.7.24</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, runseparate executions for each desired output type --><executions><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><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>

PS:github上面demo  jruby-complete版本是1.7.21,我本地构建会出现io/console not supported; tty will not be manipulated,然后在https://serverfault.com/questions/750107/what-is-io-console-not-supported-tty-will-not-be-manipulated这边文章找到答案,要升级版本。所以这里用到的是1.7.24版本。

PS:先启动项目,这样才能访问到http://localhost:8890/v2/api-docs,获取swagger的json数据,生成pdf。

最后执行mvn clean test命令。

结果如图:

最后出现一个pdf中文问题,参考https://blog.csdn.net/qq_29534483/article/details/81235081,打字打累了,再见!

Swagger导出pdf文档相关推荐

  1. Java和iText导出pdf文档

    一:工程截图: 二:项目运行截图: 三:源代码: Book.java package com.iText.bean;public class Book {private int bookId;// 图 ...

  2. Java导出PDF文档(模板导出和自定义)

    项目场景: 需要导出PDF文档,支持模板导出和自定义文档格式. 场景分析: PDF模板创建可使用表单域创建表单字段,引入数据填充,或者根据实际需要生成html转换成pdf. 解决方案: PDF模板可以 ...

  3. 建标库标准怎么导出pdf_保存和导出PDF文档,这款OCR文字识别软件能做到

    ABBYY FineReader 作为一款强大的OCR文字识别软件,如果能运用到大家的办公中,将能帮助大家将各种格式的PDF文档保存为新的PDF文档.PDF/A格式文档,以及Microsoft Wor ...

  4. 多个ai文件合并成pdf_设计作品集整理必看——在PS与AI中如何快速导出PDF文档

    新的一年 又到了总结作品与寻找新机会的时刻 很多出踏设计之路的新人也跃跃欲试 准备开启自己的设计职业生涯 在总结作品与面试的环节中都少不了作品集的存在.它作为设计师实力展现载体同时也是新人面试设计岗位 ...

  5. 一键导出PDF文档中的高亮文字以及笔记(Python实现)

    需求 最近在阅读一些PDF格式的资料,经常会进行划线并做笔记,我希望这些内容在阅读结束之后能够方便地整理出来并回顾,于是探索了一下到处划线文字和笔记的方法. 首先,我去确认PDF阅读器是否提供了需要的 ...

  6. swagger导出excel文档_将Swagger2文档导出为HTML或markdown等格式离线阅读

    网上有很多<使用swagger2构建API文档>的文章,该文档是一个在线文档,需要使用HTTP访问.但是在我们日常使用swagger接口文档的时候,有的时候需要接口文档离线访问,如将文档导 ...

  7. vue页面导出pdf文档并上传pdf格式给后台

    下载依赖 yarn add html2canvas // 将页面html转换成图片 yarn add jspdf // 将图片生成pdf 定义全局函数,创建htmlToPdf.js文件 import ...

  8. html页面导出文件大小,【实战】通过 JS 将 HTML 导出为 PDF 文档

    背景介绍 某带道术用量确示常构端析以要效开的用,近不老人院信息管理系统项目,甲方要求将财务模块的各种报表导出为PDF文档,方便打印要圈器是天的年编功小还久概据含直这请框结业未商屏页屏随会维气大机域页效 ...

  9. 【Python】PDF文档导出指定章节为TXT

    PDF文档导出指定章节为TXT 需求 要导出3000多个pdf文档的特定章节内容为txt格式(pdf文字可复制). 解决 导出PDF 查了一下Python操作PDF文档的方法,主要是通过3个库,PyP ...

  10. python根据模板生成pdf文件_程序生成word与PDF文档的方法(python)

    程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用free ...

最新文章

  1. hdu2570(贪心)
  2. 关于优酷开放SDK中setOnRealVideoStartListener
  3. 本程序主要实现了一个方阵的求逆与实现了逆矩阵和原矩阵的乘积为单位矩阵
  4. 网上农大计算机应用基础在线作业1答案,东北农业大学网络教育学院计算机应用基础网上作业题及答案.doc...
  5. Android 长按照片保存 工具类
  6. 马哥linux高薪中级-DNS
  7. 网络——获取Web数
  8. 【转】TcpListener和tcpclient使用
  9. Python学习笔记之字典(三)
  10. 再谈JavaScript时钟中的16ms精度问题.
  11. 错误的艺术!20个创意的404错误页面设计
  12. 删除顽固node_modules
  13. 浅谈php之设计模式基础
  14. ubuntu 12.04陷入software center的searching/cancelling...
  15. 拓端tecdat|机器学习:在SAS中运行随机森林
  16. Eclipse主题插件:Eclipse Color Theme
  17. MySQL学习笔记第8课(共10课)
  18. [笔记分享] [Camera] msm8926 camera hal 流程小结
  19. android 基带版本,手机基带是什么?手机的基带版本是什么意思?
  20. 一IT项目经理的总结

热门文章

  1. 使用Echarts在前端页面绘制地图
  2. [渝粤教育] 武汉大学 马克思主义哲学原理精粹九讲 参考 资料
  3. 乔布斯的创新故事_创新工作的真实故事
  4. 本地打印后台处理程序服务没有运行和windows无法连接到打印机拒绝访问
  5. Linux进程管理和服务控制
  6. 常用 ASCII 码对照表
  7. 电脑图片打不开并且显示没有注册类怎么办?
  8. 用计算机画统计图,统计图
  9. Windows7如何显示文件后缀
  10. 瑞斯康达raisecom olt运维常用命令