swagger通過swagger2markup導出PDF和HTML文檔

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章