如何使用 GroupDocs.Parser 在 Java 中從 DOCX 提取 HTML

如果您需要在保留樣式的同時 extract html from docx 檔案,您來對地方了。無論您是正在構建基於網頁的編輯器、內容管理管道,或僅僅需要在瀏覽器中顯示豐富的文件內容,提取 HTML 格式的文字都是常見需求。在本教程中,我們將使用 GroupDocs.Parser for Java 完整演示整個過程,向您展示如何 extract html text javaconvert docx html java,以及 read formatted text java,僅需幾行程式碼。

快速解答

  • 應該使用哪個函式庫? GroupDocs.Parser for Java(最新版本)——支援超過 30 種格式,且可在不完整載入記憶體的情況下處理高達 500 MB 的檔案。
  • 我可以從 DOCX 提取 HTML 嗎? 是 —— 呼叫 new FormattedTextOptions(FormattedTextMode.Html),API 會回傳乾淨的 HTML 標記。
  • 我需要授權嗎? 免費試用金鑰可用於評估;正式上線則需永久授權。
  • 支援哪個 Java 版本? JDK 8 或以上;此函式庫完全相容於 Java 11、17 以及更新的 LTS 版本。
  • 對大型檔案是否具備記憶體效能? 絕對是 —— 使用 try‑with‑resources 以及串流 API,即使是 300 頁的文件,記憶體使用量也能保持在 50 MB 以下。

「extract html from docx」是什麼?

從 DOCX 檔案提取 HTML 意味著將文件的富文字元素轉換為標準 HTML 標記。 此轉換會保留標題、表格、清單、粗體/斜體樣式以及嵌入的圖片,讓您能直接將內容嵌入網頁或後續基於 HTML 的工作流程,而無需手動重新格式化。

為什麼使用 GroupDocs.Parser for Java?

GroupDocs.Parser 提供高階 API,抽象化 Office Open XML 格式的複雜性。它支援 parse document html java 超過 30 種輸入格式,在一般伺服器上能於 5 秒內處理數百頁檔案,且內建記憶體管理功能,使 JVM 佔用量保持低位。

前置條件

  • GroupDocs.Parser for Java ≥ 25.5
  • Maven(或其他建置工具)用於管理相依性
  • JDK 8 或更新版本(建議使用 Java 11 以上)
  • IDE,例如 IntelliJ IDEA 或 Eclipse
  • 具備基本的 Java I/O 串流知識

設定 GroupDocs.Parser for Java

Maven 設定

將儲存庫與相依性加入您的 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>

直接下載

或者,從 GroupDocs.Parser for Java 釋出版 下載最新的 JAR。

取得授權

  • 免費試用: 從 GroupDocs 入口網站取得試用金鑰。
  • 臨時授權: 評估期間使用臨時授權 —— 相關說明請參閱 GroupDocs 臨時授權頁面
  • 完整購買: 為正式使用購買永久授權。

實作指南 – 提取 HTML 格式文字

概觀

以下步驟示範如何從 DOCX 檔案 extract html text java,將所有格式保留為乾淨的 HTML 標記。

如何使用 GroupDocs.Parser 提取 docx 的 html?

使用 Parser 載入 DOCX 檔案,並透過 FormattedTextOptions 請求 HTML 輸出。API 以串流方式處理內容,即使是 300 頁的文件也能在 5 秒內完成,同時將記憶體使用量控制在 50 MB 以下。此方法免除中間轉換或第三方 Office 安裝的需求。

步驟 1:匯入必要類別

Parser 類別負責載入文件,而 FormattedTextOptionsFormattedTextMode 控制輸出格式。

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

步驟 2:定義文件路徑

指定欲轉換的 DOCX 檔案之檔案系統路徑。

String documentPath = "YOUR_DOCUMENT_DIRECTORY/sample.docx";

步驟 3:初始化 Parser

Parser 會建立一個代表 DOCX 文件的物件,以供後續處理。

try (Parser parser = new Parser(documentPath)) {
    // Verify that the document supports formatted text extraction.
    if (!parser.getFeatures().isFormattedText()) {
        System.out.println("Document format doesn't support formatted text extraction");
        return;
    }

步驟 4:提取並讀取 HTML 內容

使用 FormattedTextMode.HtmlFormattedTextOptions 告訴解析器回傳 HTML 標記,readToEnd() 取得內容。

    try (TextReader reader = parser.getFormattedText(new FormattedTextOptions(FormattedTextMode.Html))) {
        // Output the entire content as HTML.
        System.out.println(reader == null ? "Formatted text extraction isn't supported" : reader.readToEnd());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

步驟 5:基本初始化範例(可選)

以下最小範例示範載入文件並將提取的 HTML 輸出至主控台。

import com.groupdocs.parser.Parser;

public class ParserSetup {
    public static void main(String[] args) {
        // Initialize parser with document path
        try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/sample.docx")) {
            // Check if formatted text extraction is supported
            if (!parser.getFeatures().isFormattedText()) {
                System.out.println("Document format doesn't support formatted text extraction");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

實務應用

用例 1:網站內容管理系統

將 DOCX 文章轉換為 HTML,以無縫發布且不遺失標題、清單或表格。

用例 2:資料分析與報告

直接從原始文件產生 HTML 報告,保留粗體或彩色文字等視覺提示。

用例 3:自動化文件處理

批次處理大型文件庫,將每個檔案轉換為 HTML,以供搜尋引擎索引或後續分析管線使用。

效能考量

  • Memory Management(記憶體管理): 使用 try‑with‑resources(如範例所示)自動關閉串流並釋放原生資源。
  • Chunked Parsing(分段解析): 對於非常大的 DOCX 檔案,使用 parser.getContainerItem() 讀取單獨的容器,以避免將整個文件載入記憶體。
  • Thread Safety(執行緒安全): 每個執行緒建立獨立的 Parser 實例;此類別非執行緒安全,共用實例可能導致競爭條件。

常見問題與解決方案

問題原因解決方案
reader == null文件格式不支援格式化文字先將檔案轉換為 DOCX 或 PDF
IOException檔案路徑不正確或權限不足確認路徑並確保應用程式具有讀取權限
大型檔案記憶體使用量過高一次載入整個文件以較小的容器解析或串流內容

常見問答

Q: 如何檢查文件是否支援格式化文字提取?
A: 呼叫 parser.getFeatures().isFormattedText() —— 當可進行 HTML 提取時會回傳 true

Q: 哪些文件格式支援 HTML 提取?
A: 支援 DOCX、PPTX、XLSX、PDF 等多種格式。完整列表請參閱 GroupDocs.Parser 文件。

Q: 我可以只提取 DOCX 檔案的特定區段嗎?
A: 可以 —— 使用 parser.getContainerItem() 針對標題、表格或自訂 XML 部分。

Q: 若提取結果為空的 HTML,該怎麼辦?
A: 確認來源檔案確實包含樣式化內容,且使用了 FormattedTextMode.Html

Q: 處理數百份文件時,如何提升效能?
A: 使用平行執行緒進行解析,重複使用單一 JVM,且每個 parser 實例一次僅處理一份文件。

結論

現在您已擁有一份完整、可投入生產環境的 extract html from docx 使用 GroupDocs.Parser for Java 的指南。依照上述步驟,您即可將 HTML 提取整合至任何基於 Java 的工作流程——無論是網站入口、報表引擎或大量轉換管線。亦可探索如影像提取、metadata 讀取與自訂容器處理等額外功能,以進一步豐富您的應用程式。


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

相關教學