探討Java 將Markdown文件轉(zhuǎn)換為Word和PDF文檔
Markdown 憑借其簡(jiǎn)潔易用的特性,成為創(chuàng)建和編輯純文本文檔的常用選擇。但某些時(shí)候我們需要更加精致的展示效果,例如在專業(yè)分享文檔或打印成離線使用的紙質(zhì)版時(shí),就需要將Markdown文件以其他固定的文檔格式呈現(xiàn)。通過(guò)將 Markdown 轉(zhuǎn)換為 Word 和 PDF 格式,可以得到更多的格式設(shè)置,確??缙脚_(tái)的兼容性,并能夠創(chuàng)建出專業(yè)的文檔。本文將探討如何使用 Java 將 Markdown 格式轉(zhuǎn)換為 Word 和 PDF 格式。
- 使用 Java 將 Markdown 文件轉(zhuǎn)換為 Word 文檔
- 使用 Java 將 Markdown 文件轉(zhuǎn)換為 PDF 文件
- 自定義生成文檔的頁(yè)面設(shè)置
本文采用的方法需要 Spire.Doc for Java 庫(kù)的支持。
使用 Java 將 Markdown 文件轉(zhuǎn)換為 Word 文檔
Markdown 格式轉(zhuǎn)換為 Word 或 PDF 文檔格式,可以通過(guò)調(diào)用 Document.loadFromFile(String: fileName, FileFormat.Markdown) 方法加載 Markdown 文件,以及使用 Document.saveToFile(String: fileName, FileFormat: fileFormat) 方法保存為 Word 或 PDF 文檔來(lái)簡(jiǎn)單完成。需要注意的是,由于 Markdown 文件中的圖片是以鏈接形式存儲(chǔ)的,如果希望在轉(zhuǎn)換后保留圖片,還需進(jìn)行額外處理。
Markdown 文件轉(zhuǎn)換為 Word 文檔的具體步驟如下:
- 導(dǎo)入必要的模塊。
- 創(chuàng)建 Document 類的實(shí)例。
- 使用 Document.loadFromFile(String: fileName, FileFormat.Markdown) 方法加載 Markdown 文件。
- 通過(guò) Document.saveToFile(String: fileName, FileFormat.Docx) 方法將 Markdown 文件保存為 Word 文檔。
- 釋放資源。
代碼示例:
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class MarkdownToWord {
public static void main(String[] args) {
// 創(chuàng)建一個(gè) Document 實(shí)例
Document doc = new Document();
// 加載 Markdown 文件
doc.loadFromFile("示例.md", FileFormat.Markdown);
// 將 Markdown 文件保存為 Word 文檔
doc.saveToFile("output/Markdown轉(zhuǎn)Word.docx", FileFormat.Docx);
doc.dispose();
}
}原Markdown文件:

轉(zhuǎn)換結(jié)果:

使用 Java 將 Markdown 文件轉(zhuǎn)換為 PDF 文件
只需在 Document.saveToFile() 方法的格式參數(shù)中使用 FileFormat.PDF 枚舉,即可直接將 Markdown 文件轉(zhuǎn)換為 PDF 文檔。
Markdown 文件轉(zhuǎn)換為 PDF 文檔的步驟如下:
- 導(dǎo)入必要的模塊。
- 創(chuàng)建 Document 類的實(shí)例。
- 使用 Document.loadFromFile(String: fileName, FileFormat.Markdown) 方法加載 Markdown 文件。
- 利用 Document.saveToFile(String: fileName, FileFormat.PDF) 方法將 Markdown 文件保存為 PDF 文檔。
- 釋放資源。
代碼示例:
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
public class MarkdownToPDF {
public static void main(String[] args) {
// 創(chuàng)建一個(gè) Document 實(shí)例
Document doc = new Document();
// 加載 Markdown 文件
doc.loadFromFile("示例.md");
// 將 Markdown 文件保存為 PDF 文件
doc.saveToFile("output/Markdown轉(zhuǎn)PDF.pdf", FileFormat.PDF);
doc.dispose();
}
}轉(zhuǎn)換結(jié)果:

自定義生成文檔的頁(yè)面設(shè)置
除了默認(rèn)樣式轉(zhuǎn)換外,我們還可以在轉(zhuǎn)換前利用 PageSetup 類下的方法進(jìn)行頁(yè)面設(shè)置,從而控制生成文檔的頁(yè)面邊距、頁(yè)面大小等屬性。
自定義生成文檔頁(yè)面設(shè)置的步驟如下:
- 導(dǎo)入必要的模塊。
- 創(chuàng)建 Document 類的實(shí)例。
- 使用 Document.loadFromFile(String: fileName, FileFormat.Markdown) 方法加載 Markdown 文件。
- 通過(guò) Document.getSections().get(0) 方法獲取第一章節(jié)。
- 使用 PageSetup 類下的方法設(shè)定頁(yè)面大小、方向及邊距。
- 通過(guò) Document.saveToFile(String: fileName, FileFormat.PDF) 方法將 Markdown 文件保存為 PDF 文檔。
- 釋放資源。
代碼示例:
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.PageSetup;
import com.spire.doc.Section;
import com.spire.doc.documents.MarginsF;
import com.spire.doc.documents.PageOrientation;
import com.spire.doc.documents.PageSize;
public class PageSettingMarkdown {
public static void main(String[] args) {
// 創(chuàng)建一個(gè) Document 實(shí)例
Document doc = new Document();
// 加載 Markdown 文件
doc.loadFromFile("示例.md");
// 獲取第一個(gè)節(jié)
Section section = doc.getSections().get(0);
// 設(shè)置頁(yè)面尺寸、方向和邊距
PageSetup pageSetup = section.getPageSetup();
pageSetup.setPageSize(PageSize.Letter);
pageSetup.setOrientation(PageOrientation.Landscape);
pageSetup.setMargins(new MarginsF(100, 100, 100, 100));
// 將 Markdown 文件保存為 PDF 文件
doc.saveToFile("output/Markdown轉(zhuǎn)PDF.pdf", FileFormat.PDF);
doc.dispose();
}
}本文通過(guò)分步指南及代碼示例展示了如何將 Markdown 文件轉(zhuǎn)換為 Word 文檔和 PDF 文件。
欲了解更多文檔處理與轉(zhuǎn)換技巧,請(qǐng)前往 Spire.Doc for Java 教程。
到此這篇關(guān)于Java 將Markdown文件轉(zhuǎn)換為Word和PDF文檔的文章就介紹到這了,更多相關(guān)Java Markdown轉(zhuǎn)Word和PDF文檔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入了解Spring Boot2.3.0及以上版本的Liveness和Readiness功能
這篇文章主要介紹了Spring Boot2.3.0及以上版本的Liveness和Readiness功能示例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
SpringCloud feign無(wú)法注入接口的問(wèn)題
這篇文章主要介紹了SpringCloud feign無(wú)法注入接口的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
SpringAMQP消息隊(duì)列實(shí)戰(zhàn)教程
這篇文章主要介紹了SpringAMQP消息隊(duì)列的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-02-02
Java ForkJoin 框架全面解析:分而治之的并行編程藝術(shù)
本文介紹了Java Fork/JoinJoin框架用于并行執(zhí)行任務(wù)的思想、核心組件和使用方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2026-05-05
Java springboot接口迅速上手,帶你半小時(shí)極速入門(mén)
這篇文章主要給大家介紹了關(guān)于SpringBoot實(shí)現(xiàn)API接口的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-09-09
springboot?jpa?實(shí)現(xiàn)返回結(jié)果自定義查詢
這篇文章主要介紹了springboot?jpa?實(shí)現(xiàn)返回結(jié)果自定義查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02

