SpringBoot集成MD2File實(shí)現(xiàn)Markdown轉(zhuǎn)PDF的示例代碼
Gitee 地址: https://gitee.com/cevin15/MD2File
一、MD2File簡(jiǎn)介
MD2File 實(shí)現(xiàn)了 Markdown 文檔導(dǎo)出為 word、pdf、html 等格式文件。
優(yōu)點(diǎn):
- 代碼非常簡(jiǎn)潔,引入 Maven 依賴(lài)之后,通過(guò)一行代碼就可以實(shí)現(xiàn) Markdown 文件的轉(zhuǎn)換。
- 支持大部分 Markdown 的基礎(chǔ)語(yǔ)法(包括表格等)。
缺點(diǎn):
- 暫不支持多級(jí)列表、圖片、下劃線。
- 暫不支持多個(gè)空行,如果需要可以使用全角空格 “ ” 來(lái)實(shí)現(xiàn)。
- 小編親測(cè),2800 字的 Markdown 轉(zhuǎn) PDF 耗時(shí)在 1s 左右,速度沒(méi)有達(dá)到毫秒級(jí)。
二、代碼實(shí)現(xiàn)
2.1 Maven依賴(lài)
<dependency>
<groupId>com.youbenzi</groupId>
<artifactId>MD2File</artifactId>
<version>1.0.2</version>
</dependency>
2.2 Java代碼
public static void main(String[] args) {
try {
// 導(dǎo)出文本
long start = System.currentTimeMillis();
System.out.println("開(kāi)始執(zhí)行。。。");
FileFactory.produce(new File("D:\\test.md"), "D:\\test.docx");
FileFactory.produce(new File("D:\\test.md"), "D:\\test.pdf");
FileFactory.produce(new File("D:\\test.md"), "D:\\test.html");
long end = System.currentTimeMillis();
System.out.println("耗時(shí):" + 1.0 * (end - start) / 1000 + " s");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
//markdown轉(zhuǎn)html
System.out.println(MDUtil.markdown2Html("執(zhí)行結(jié)束"));
}
執(zhí)行結(jié)果如下所示:

2.3 轉(zhuǎn)換結(jié)果
轉(zhuǎn)換前:
# 標(biāo)題一
## 標(biāo)題二
### 標(biāo)題三
> 引用內(nèi)容測(cè)試
**加粗內(nèi)容測(cè)試**
*斜體內(nèi)容測(cè)試*
<u>下劃線內(nèi)容測(cè)試</u>
無(wú)序列表測(cè)試:
* 無(wú)序列表測(cè)試1
* 無(wú)序列表測(cè)試2
* 無(wú)序列表測(cè)試3
有序列表測(cè)試:
1. 有序列表測(cè)試1
2. 有序列表測(cè)試2
3. 有序列表測(cè)試3
```java
// 代碼塊測(cè)試
public static void main(String[] args) {
System.out.println("Hello World.");
}
```

轉(zhuǎn)換后:

到此這篇關(guān)于SpringBoot集成MD2File實(shí)現(xiàn)Markdown轉(zhuǎn)PDF的示例代碼的文章就介紹到這了,更多相關(guān)SpringBoot MD2File實(shí)現(xiàn)Markdown轉(zhuǎn)PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatisFlex各種鏈?zhǔn)絪ql寫(xiě)法小結(jié)
本文主要介紹了mybatisFlex各種鏈?zhǔn)絪ql寫(xiě)法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
深入探討Java應(yīng)用性能監(jiān)控與調(diào)優(yōu)的工具鏈構(gòu)建
這篇文章主要來(lái)和大家將深入探討Java應(yīng)用性能監(jiān)控與調(diào)優(yōu)的完整工具鏈,從傳統(tǒng)的單機(jī)分析工具JProfiler到現(xiàn)代化的分布式監(jiān)控系統(tǒng)Prometheus,希望能幫助開(kāi)發(fā)者和運(yùn)維人員構(gòu)建全方位的性能監(jiān)控體系2025-06-06
lazy?init控制加載在Spring中如何實(shí)現(xiàn)源碼分析
這篇文章主要為大家介紹了lazy?init控制加載在Spring中如何實(shí)現(xiàn)源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Springboot使用@WebListener?作為web監(jiān)聽(tīng)器的過(guò)程解析
這篇文章主要介紹了Springboot使用@WebListener作為web監(jiān)聽(tīng)器的過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
java中的常見(jiàn)幾種發(fā)送http請(qǐng)求實(shí)例
在Java編程中,發(fā)送HTTP請(qǐng)求是一個(gè)常見(jiàn)需求,常用的方法有四種:HttpURLConnection、URLConnection、HttpClient以及Socket,其中,使用HttpClient方式時(shí),需要添加額外的庫(kù)支持2024-11-11
Java設(shè)計(jì)模式之訪問(wèn)模式(Visitor者模式)介紹
這篇文章主要介紹了Java設(shè)計(jì)模式之訪問(wèn)模式(Visitor者模式)介紹,本文講解了為何使用Visitor模式、如何使用Visitor模式、使用Visitor模式的前提等內(nèi)容,需要的朋友可以參考下2015-03-03
Java中EasyPoi導(dǎo)出復(fù)雜合并單元格的方法
這篇文章主要介紹了Java中EasyPoi導(dǎo)出復(fù)雜合并單元格的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

