Java:使用 GroupDocs.Editor 將網頁轉換為 Word

webpage to Word 轉換是一個常見需求,當你想把線上內容變成可列印、可編輯的文件時。無論你是要抓取行銷頁面、技術文章或法律聲明,將該 HTML 轉成 DOCX 或 DOCM 都能讓你使用熟悉的 Office 工具進行編輯、分享與存檔。在本指南中,我們將逐步說明如何使用 GroupDocs.Editor for Java 讀取 HTML 檔案、檢查其資源,並將結果同時儲存為 HTML 與 Word 格式。

快速回答

  • What does “convert webpage to word” mean? 它會將 HTML 標記及其資源轉換為可編輯的 Word(DOCX/DOCM)檔案。
  • Which library handles the conversion? GroupDocs.Editor for Java。
  • Do I need a license? 免費試用可用於測試;正式環境需要付費授權。
  • What Java version is required? Java 8 或以上。
  • Can I keep CSS and images? 可以 — 編輯器會在轉換過程中保留已連結的樣式表與圖片。

「convert webpage to word」是什麼?

此過程會讀取網頁的 HTML 原始碼,將任何引用的 CSS 或圖片打包,然後產生保留原始版面與樣式的 Word 處理文件。這讓你能在 Microsoft Word 或其他相容編輯器中進行後續編輯。

為何使用 GroupDocs.Editor for Java?

GroupDocs.Editor 提供高階 API,抽象化了 HTML 的低階解析、資源處理以及格式特有的細節。它經過實戰驗證,支援 DOCX/DOCM,且跨平台運作,無需本機相依性。

前置條件

必要的函式庫、版本與相依性

  • Apache Commons IO – 簡化檔案 I/O。
  • GroupDocs.Editor – 版本 25.3(或最新穩定版)。

環境設定需求

  • 已安裝 JDK 8 或更新版本。
  • 使用 IntelliJ IDEA 或 Eclipse 等 IDE。

知識前提

  • 基本的 Java 與 Maven 專案結構。
  • 熟悉 HTML 檔案及其資料夾布局。

設定 GroupDocs.Editor for Java

Maven 設定

pom.xml 中加入 GroupDocs 儲存庫與相依性:

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

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-editor</artifactId>
        <version>25.3</version>
    </dependency>
</dependencies>

直接下載

或者,你也可以從 GroupDocs.Editor for Java releases 下載最新版本。

取得授權步驟

  • Free Trial: 開始使用試用版以探索 API。
  • Temporary License: 使用限時金鑰以延長評估。
  • Purchase: 取得商業授權以供正式部署使用。

實作指南

以下為逐步說明。每個程式碼區塊皆保持原始教學不變,說明文字則為了清晰度而加以擴充。

功能 1 – 從檔案讀取 HTML 內容

Why this matters: 要將網頁轉換,首先需要將原始 HTML 讀成 String。使用 Apache Commons IO 可一行搞定。

1.1 匯入必要的函式庫

import java.io.File;
import org.apache.commons.io.FileUtils;

1.2 指定檔案路徑

YOUR_DOCUMENT_DIRECTORY 替換為存放來源 HTML 的資料夾路徑。

String htmlFilePath = "YOUR_DOCUMENT_DIRECTORY/sample_html_body.html";

1.3 讀取內容至字串

FileUtils.readFileToString 方法使用 UTF‑8 編碼讀取檔案,保留所有字元。

String content = FileUtils.readFileToString(new File(htmlFilePath), "utf-8");
// Note: This method reads the HTML content as a UTF-8 encoded string, ensuring accurate representation of characters.

功能 2 – 從 HTML 內容初始化 EditableDocument

Why this matters: EditableDocument 為核心物件,將標記與其資源(CSS、圖片)結合,使編輯器能處理完整文件。

2.1 匯入 GroupDocs 函式庫

import com.groupdocs.editor.EditableDocument;

2.2 指定資源資料夾路徑

該資料夾應包含 HTML 所引用的所有 CSS 檔案、圖片或其他資產。

String resourceFolderPath = "YOUR_DOCUMENT_DIRECTORY/sample_html_body_resources";

2.3 初始化 EditableDocument

此呼叫會將 HTML 標記與資源資料夾合併,建立記憶體中的可編輯文件。

EditableDocument inputDoc = EditableDocument.fromMarkupAndResourceFolder(content, resourceFolderPath);
// This method combines the HTML markup with its linked resources to form a complete editable document.

功能 3 – 檢查文件資源

Why this matters: 瞭解樣式表或圖片的數量,可協助決定是否需要額外處理(例如圖片最佳化)。

3.1 計算樣式表與圖片數量

int stylesheetCount = inputDoc.getCss().size();
int imageCount = inputDoc.getImages().size();
// These methods provide insights into how many stylesheets or images are linked within your HTML content.

功能 4 – 將 EditableDocument 儲存為 HTML

Why this matters: 有時在編輯後想保留 HTML 版本,或需要驗證資源是否正確打包。

4.1 匯入儲存選項函式庫

import com.groupdocs.editor.Editor;

4.2 指定 HTML 輸出路徑

String outputHtmlFilePath = "YOUR_OUTPUT_DIRECTORY/_output.html";

4.3 儲存文件為 HTML

save 方法將編輯後的文件寫回磁碟,保留其結構。

inputDoc.save(outputHtmlFilePath);
// This saves all changes made in memory back into a new HTML document, maintaining its editable format and resources.

功能 5 – 將 EditableDocument 儲存為 Word 處理文件(DOCX/DOCM)

Why this matters: 轉換為 DOCX/DOCM 可取得完整可編輯的 Word 檔案,能在 Microsoft Word、LibreOffice 或任何相容編輯器中開啟。

5.1 匯入儲存選項函式庫

import com.groupdocs.editor.options.WordProcessingSaveOptions;
import com.groupdocs.editor.formats.WordProcessingFormats;

5.2 指定 DOCX/DOCM 輸出路徑

String outputDocmFilePath = "YOUR_OUTPUT_DIRECTORY/_output.docm";

5.3 設定儲存選項與格式

此處明確要求 DOCM 格式(具備巨集的 Word 文件)。若需標準文件,可改為 "docx"

WordProcessingFormats saveFormat = WordProcessingFormats.fromExtension("docm");
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(saveFormat);
// Here, we define the desired output format (DOCM) along with any specific saving options needed for conversion.

5.4 儲存文件為 DOCM

我們使用 Editor 類別執行最終轉換。

Editor editor = new Editor(htmlFilePath);
editor.save(inputDoc, outputDocmFilePath, saveOptions);
// This final step converts and saves your HTML content into a fully functional Word document (DOCM).

實務應用

  • Dynamic Report Generation: 從即時儀表板抓取表格,轉換為 Word,並以自動化郵件寄送報告。
  • Content Management Systems: 為文章提供「Export to Word」按鈕,保留樣式與圖片。
  • Legal Document Preparation: 將網路發布的法規轉為可編輯的合約或政策文件。
  • Educational Material Compilation: 將 HTML 頁面的講義彙整成單一學習指南。
  • Business Proposal Creation: 把行銷網頁轉為精緻的 DOCM 提案供客戶使用。

效能考量

  • Optimize Memory Usage: 對於大型 HTML 檔案,可增加 JVM 堆積大小(-Xmx2g)或分段處理文件。
  • Load Resources Asynchronously: 在基於 Web 的工具中,於背景執行緒載入 CSS 與圖片,以保持 UI 響應。

常見問題與解決方案

問題原因解決方案
DOCM 中缺少圖片資源資料夾路徑不正確確認 resourceFolderPath 指向包含所有圖片檔案的資料夾。
轉換後樣式顯示不同CSS 未載入確保 inputDoc.getCss() 回傳預期的計數;將缺少的樣式表加入資源資料夾。
大型頁面發生 OutOfMemoryErrorHTML 大且資源眾多增加 JVM 堆積或在轉換前將 HTML 拆分為較小段落。

常見問答

Q: 可以直接將即時 URL 轉換,而不先儲存 HTML 嗎?
A: 可以。使用 JsoupHttpClient 下載頁面內容,然後將字串傳入 EditableDocument.fromMarkupAndResourceFolder

Q: GroupDocs.Editor 是否同時支援轉換為 DOCX 與 DOCM?
A: 當然支援。只要在 WordProcessingFormats.fromExtension("docx") 中更改副檔名,並調整輸出檔名即可。

Q: 若我的 HTML 參考 CDN 上的外部 CSS,該怎麼辦?
A: 在初始化 EditableDocument 前,先將這些 CSS 檔案下載至資源資料夾,或在啟用網路存取時讓編輯器自行抓取。

Q: 免費試用是否需要授權?
A: 試用版可在無授權金鑰的情況下使用,但限制 30 天且有最大文件大小限制。正式環境請購買授權。

Q: 我可以在 Word 輸出中保留 JavaScript 功能嗎?
A: 不能。Word 處理格式不支援客戶端 JavaScript,只會保留靜態內容與樣式。


最後更新: 2026-02-08
測試環境: GroupDocs.Editor 25.3
作者: GroupDocs