將 DOCX 轉換為 Markdown(使用 GroupDocs.Parser Java)

在現代的網路與內容管理情境中,您常常需要 將 docx 轉換為 markdown,以便讓富文字文件變得輕量、可攜且易於呈現。本教學將逐步說明如何使用 GroupDocs.Parser for Java 來執行轉換、取得頁數,並從每一頁擷取 markdown。完成後,您將擁有可直接嵌入任何 Java 服務的生產就緒解決方案。

快速解答

FormattedTextMode.Markdown 是一個列舉值,告訴解析器以 Markdown 格式輸出內容。

  • GroupDocs.Parser 能將 DOCX 轉換為 Markdown 嗎? 可以 – 呼叫 parser.getFormattedText 並傳入 FormattedTextMode.Markdown
  • 如何驗證是否支援 formatted‑text? 使用 parser.getFeatures().isFormattedText()
  • 哪個方法會回傳頁數? parser.getDocumentInfo().getPageCount()
  • 生產環境是否需要授權? 有效的 GroupDocs.Parser 授權會移除評估限制。
  • 哪個建置工具能簡化相依性管理? Maven 是 Java 專案的推薦方案。

什麼是「將 docx 轉換為 markdown」?

將 docx 轉換為 markdown 意指將 Microsoft Word 的樣式、標題、清單、表格與圖片轉換成 Markdown 語法。其結果為純文字標記,靜態網站產生器、Git 儲存庫以及後續處理程序皆可在不帶沉重格式負擔的情況下使用。

為何使用 GroupDocs.Parser 進行此轉換?

GroupDocs.Parser 支援 70 多種輸入與輸出格式——包括 DOCX、PDF、PPTX 與 XLSX,且可處理高達 2 GB 的文件而無需將整個檔案載入記憶體。其串流 API 能在保持低記憶體使用的同時提供高保真度的 markdown,十分適合大規模批次作業。

前置條件

  • Java Development Kit (JDK) 8+ 已安裝。
  • IDE 如 IntelliJ IDEA、Eclipse 或 VS Code。
  • Maven(或手動下載 JAR)用於相依性管理。
  • GroupDocs.Parser 授權(免費試用或購買)。

設定 GroupDocs.Parser(Java 版)

安裝

將 GroupDocs 套件庫與相依性加入您的 pom.xml

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

直接下載

如果您不想使用 Maven,也可以從 GroupDocs.Parser for Java releases 下載最新的 JAR。

取得授權

移除評估限制:

  • 免費試用: 從 GroupDocs 官方網站下載試用授權。
  • 暫時授權: 透過 GroupDocs website 申請。
  • 正式購買: 購買符合您部署需求的正式授權。

基本初始化與設定

Parser 類別是 GroupDocs.Parser 的主要入口點,代表一個文件並提供其內容與中繼資料的存取。建立指向您的 DOCX 檔案的 Parser 實例:

import com.groupdocs.parser.Parser;

try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/sample.docx")) {
    // Code for text extraction or document info retrieval goes here
}

這一行即可開啟文件,並為後續操作做好準備。

實作指南

以下我們將流程分為三個實用功能:檢查支援情況、取得頁數,以及擷取 Markdown。

功能 1:檢查文件是否支援格式化文字擷取

為何重要: 並非所有格式皆支援富文字擷取,呼叫錯誤的 API 可能會拋出例外。

步驟 1.1 – 驗證支援情況

isFormattedText 表示目前的文件類型是否能轉換為格式化標記(如 Markdown)。

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.IDocumentInfo;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;

try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/sample.docx")) {
    if (!parser.getFeatures().isFormattedText()) {
        System.out.println("Document isn't supported for formatted text extraction.");
    }
}

功能 2:取得文件頁數

為何重要: 瞭解頁數可讓您決定是處理整個檔案還是針對特定頁面。

步驟 2.1 – 取得頁數

getPageCount 回傳已開啟文件的總頁數,供分頁邏輯使用。

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.IDocumentInfo;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;

try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/sample.docx")) {
    IDocumentInfo documentInfo = parser.getDocumentInfo();
    
    if (documentInfo.getPageCount() == 0) {
        System.out.println("Document hasn't any pages.");
    } else {
        System.out.println("Page count: " + documentInfo.getPageCount());
    }
}

功能 3:從文件頁面擷取格式化文字(Markdown)

目標: 將每頁內容轉換為 Markdown,您可以將其串接或個別儲存。

步驟 3.1 – 迴圈遍歷頁面並擷取 Markdown

FormattedTextOptions 設定輸出模式,而 TextReader.readToEnd() 會回傳目前頁面的完整 Markdown 字串。

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.IDocumentInfo;
import com.groupdocs.parser.options.FormattedTextOptions;
import com.groupdocs.parser.options.FormattedTextMode;
import com.groupdocs.parser.data.TextReader;
import com.groupdocs.parser.exceptions.UnsupportedDocumentFormatException;

try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/sample.docx")) {
    IDocumentInfo documentInfo = parser.getDocumentInfo();
    
    for (int p = 0; p < documentInfo.getPageCount(); p++) {
        try (TextReader reader = parser.getFormattedText(p, new FormattedTextOptions(FormattedTextMode.Markdown))) {
            System.out.println(reader.readToEnd());
        }
    }
}

關鍵類別說明:

  • FormattedTextOptions 讓您指定輸出模式(此例為 Markdown)。
  • TextReader.readToEnd() 讀取所選頁面的完整格式化內容。

實務應用

使用情境將 docx 轉換為 markdown 的好處
內容管理系統儲存原始 Markdown 以加速渲染與版本控制。
資料分析工具以程式方式解析標題、表格與清單以供分析。
文件轉換服務提供 DOCX → Markdown 作為輕量的 PDF 替代方案。
靜態網站產生器直接將 Markdown 輸入 Jekyll、Hugo 或 Gatsby 工作流程。

效能考量

  • 記憶體管理: 為大型檔案分配足夠的堆積空間(如 -Xmx2g),以避免 OutOfMemoryError
  • 平行處理: 大量轉換時,可將檔案分派至不同執行緒或使用 executor service。
  • 批次處理: 將檔案分批處理以降低 I/O 開銷。

結論

您現在已擁有一套完整、可投入生產的 將 docx 轉換為 markdown 使用 GroupDocs.Parser Java 的指南,包含如何 取得文件頁數 以及安全地從每頁擷取 Markdown。將這些程式碼片段整合至您的服務、自动化批次轉換,或打造直接操作 Markdown 的自訂編輯器。

常見問答

1. 我可以在不使用 Maven 的情況下使用 GroupDocs.Parser 嗎?
可以 – 從 GroupDocs releases page 下載 JAR 檔並加入專案的 classpath。

2. 我該如何處理不支援的文件?
在擷取前務必呼叫 parser.getFeatures().isFormattedText()。若回傳 false,則跳過該檔案或通知使用者。

3. 除了 DOCX,GroupDocs.Parser 還能從哪些格式擷取?
GroupDocs.Parser 支援 PDF、PPTX、XLSX 以及其他多種檔案類型。請參閱官方文件取得完整清單。

常見問題

Q: Markdown 輸出是否完全相容於 GitHub Flavored Markdown?
A: 產生的 Markdown 符合 CommonMark 規範,而 GitHub Flavored Markdown 為其延伸,因此在大多數 GitHub 情境下皆能良好運作。

Q: 我能只擷取 DOCX 檔案的特定區段嗎?
A: 可以 – 結合 getFormattedText 的頁面範圍參數,或在擷取後使用 TextReader 進行內容過濾。

Q: 此函式庫是否支援受密碼保護的 DOCX 檔案?
A: 當在 Parser 建構子中提供密碼時,GroupDocs.Parser 能開啟受密碼保護的文件。

Q: 如何提升數千檔案的擷取速度?
A: 使用執行緒池同時處理檔案,且每個檔案重複使用單一 Parser 實例以降低開銷。

Q: 我可以在哪裡找到更多範例?
A: 官方的 GroupDocs.Parser GitHub 倉庫與文件網站提供更多程式碼範例與使用案例指南。


最後更新: 2026-07-02
測試環境: GroupDocs.Parser 25.5 for Java
作者: GroupDocs

相關教學