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() 回傳預期的計數;將缺少的樣式表加入資源資料夾。 |
| 大型頁面發生 OutOfMemoryError | HTML 大且資源眾多 | 增加 JVM 堆積或在轉換前將 HTML 拆分為較小段落。 |
常見問答
Q: 可以直接將即時 URL 轉換,而不先儲存 HTML 嗎?
A: 可以。使用 Jsoup 或 HttpClient 下載頁面內容,然後將字串傳入 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