swagger通過swagger2markup導出PDF和HTML文檔
本文由個人總結,如需轉載使用請標明原著及原文地址
寫這篇文章的主要原因是,我以前寫了篇spring-boot整合swagger的文章,我文章中沒有提到任何導出相關的部分,畢竟我工作中沒那個需求,我自己一人寫vue+spring-boot的項目,實際上連swagger都沒怎麼用到。
但是,但是說的纔是重點,可能百度搜索的關鍵詞在CSDN裏的文章推薦裏出現,導致很多人跑到我那篇文章,沒看標題沒看內容就留言什麼“導出呢?導出呢?” “逐漸忘掉標題...” →_→ 我是很無語,好吧雖然對我沒啥用,還是爲鍵盤俠們去找個swagger導出給你們吧,這次是有“導出”兩個字了,裏面的坑我也基本都挖過一遍了
希望大家有時間多自己動手做做,像這個框架的坑,純百度也才半天就能全整完,有時間的話,可以自己做做技術的整合,對你走在程序員的道路上會有很大幫助
本文主要講通過swagger2markup導出pdf和html文檔
對於不看標題的孩子們我也爲你們準備了導出word文檔的地址 叫爸爸 和 demo 再叫一聲,左邊兩個神奇的字符是超鏈接,請自行看大佬們的文檔,自行填坑,我個人比較討厭10種人,一種是不看標題的,一種是看不懂中文的中國人,所以超鏈接才寫的那麼個性
先上個效果圖
1.下載Swagger2Markup Demo
git地址:Swagger2Markup Demo (我也不知道是不是官方的,如果不是留言下,畢竟大佬們做個框架不容易)
這是下載下來的基礎目錄,關於gradle可以不用管,有興趣可以自行了解,我稍微查了下,應該是和maven一樣的依賴倉庫管理軟件,正常我們java都用maven的吧
2.導入依賴
<dependencis>部分大多在默認的maven倉庫中就能下載的到
除了ch.netzwerg.paleo-core和<plugin>裏的包是由https://repo.spring.io/libs-milestone管理的
2.1所以給你2種辦法一種
是在maven的conf的setting里加<mirror>,因爲這裏我不是用這種方法,所以就給個截圖你們自己填上去了
2.2另一種是在maven中加repositories
<repositories>
<repository>
<id>jcentral</id>
<name>bintray</name>
<url>https://repo.spring.io/libs-milestone</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
<repositories> 和 <dependencis>平級
╮(╯▽╰)╭ 不知道你們能不能下,反正我是這樣下載下來了,不行就去配<mirror>鏡像,不會問度娘
3.執行命令生成pdf和html
依賴都下好,pom.xml裏沒有報錯後,使用mvn clean test命令,項目會自動打包
直接到spring-swagger2markup-demo項目目錄下用cmd執行命令就行
如果提示mvn不是內部外部命令配置下maven的環境變量就好
如果說java compile ... jre rather than jdk 那麼配置下環境變量 JAVA_HOME
4.中文丟失問題解決
asciidoctor作者大大好像不是中國人,所以這個框架導出的pdf和html大部分中文會顯示空白
原因在於asciidoctor的默認生成字體不支持中文,所以中文顯示空白
╮(╯▽╰)╭ 所以我們可以把自己的字體強行塞進去,讓她生出我們中國的孩子
如果你實在懶得動手,那就下載吧,我個人還是支持多動手asciidoctorj-pdf-1.5.0下載
4.1把字體放入壓縮包
先找到asciidoctor的jar包
maven倉庫路徑\repository\org\asciidoctor\asciidoctorj-pdf\1.5.0-alpha.16
路徑和版本可能和我的不一樣,自己對應更換
然後用壓縮文件打開jar包
asciidoctorj-pdf-1.5.0-alpha.16.jar\gems\asciidoctor-pdf-1.5.0.alpha.16\data\fonts
4.2修改asciidoctor的配置文件
同樣用壓縮軟件打開剛纔那個jar包,目錄轉到
asciidoctorj-pdf-1.5.0-alpha.16.jar\gems\asciidoctor-pdf-1.5.0.alpha.16\data\themes
用記事本打開default-theme.yml
更換font -> catalog -> Noto Serif 裏的四個字體,和你之前放在data目錄下的字體文件名一致
然後壓縮文件會問“default-theme.yml內容改變了,是否更新到壓縮文件中” →_→ 當然選是了 不然你打開這個文件是開着玩的
然後回到spring-swagger2markup-demo項目目錄下用cmd執行命令
mvn asciidoctor:process-asciidoc
mvn generate-resources
執行成功後再次執行mvn clean test 就可以得到支持中文的pdf和html文件了~~~~
建議大家多動動手,這樣才能在禿頭的路上漸行漸遠,都拿現成的東西來用,你就失去了程序員的價值了,這句話主要留給某些鍵盤俠
參考文獻
1.https://blog.csdn.net/gongxsh00/article/details/80508963
2.https://blog.csdn.net/qq_29534483/article/details/81235081