Also preserve italics with ….
Now produce final content.# 使用 GroupDocs.Editor for Java 從 Word 文件提取資源
如果你正尋找 如何程式化提取資源 從 Word 檔案,你來對地方了。在本指南中,我們將示範如何在 Java 中載入 Word 文件、編輯它,並提取圖像、字型與 CSS——正是你自動化文件處理流程所需的步驟。
你將學會:
- 如何使用 GroupDocs.Editor load word document java
- 如何使用 extract images java 以及其他嵌入資產
- 如何使用 extract css java 以重複使用樣式
- 最佳實踐方式將這些資源儲存至磁碟
- 實際案例:提取資源可節省時間與精力
準備好簡化你的文件工作流程了嗎?讓我們開始吧!
快速解答
- 「如何提取資源」是什麼意思? 它指的是以程式方式從 Word 檔案中抽取圖像、字型、CSS 等資源。
- 哪個程式庫在 Java 中處理此功能? GroupDocs.Editor for Java。
- 我需要授權嗎? 免費試用可用於測試;正式環境需購買完整授權。
- 我可以處理 DOCX 與 DOC 檔案嗎? 可以,兩者皆受支援。
- 大型文件使用是否安全? 可以,但建議使用批次處理並妥善釋放記憶體。
什麼是 Word 文件中的資源提取?
資源提取是從 Word 檔案中取得嵌入項目(如圖片、自訂字型與樣式表)的過程,讓這些資源可以被重新使用、歸檔或轉換至其他應用程式。
為什麼使用 GroupDocs.Editor for Java?
GroupDocs.Editor 提供高階 API,抽象化 Office Open XML 格式的複雜性。它讓你專注於 如何提取資源,而不必處理低階的 ZIP 操作或 XML 解析。
前置條件
- Maven(或直接下載 JAR)用於管理相依性。
- JDK 8+ 已安裝於開發機器上。
- 使用 IntelliJ IDEA 或 Eclipse 等 IDE 進行 Java 程式編寫與執行。
設定 GroupDocs.Editor for Java
將儲存庫與相依性加入你的 pom.xml:
<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 下載最新的 JAR。
取得授權
- Free Trial: 完美用於探索 API。
- Temporary License: 從 GroupDocs Temporary License Page 取得臨時授權。
- Full License: 購買後即可無限制在正式環境使用。
基本初始化
建立指向 Word 檔案的 Editor 實例:
String inputFilePath = "YOUR_DOCUMENT_DIRECTORY";
Editor editor = new Editor(inputFilePath, new WordProcessingLoadOptions());
如何從 Word 文件提取資源
以下將實作分為三個邏輯步驟:載入/編輯、提取與儲存。
步驟 1:載入並準備文件以供編輯
// Initialize editor and edit options
String inputFilePath = "YOUR_DOCUMENT_DIRECTORY";
Editor editor = new Editor(inputFilePath, new WordProcessingLoadOptions());
WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.setFontExtraction(FontExtractionOptions.ExtractAll);
EditableDocument beforeEdit = editor.edit(editOptions);
FontExtractionOptions.ExtractAll 旗標保證每個嵌入字型皆可被提取。
步驟 2:提取圖像、字型與樣式表
List<IImageResource> images = beforeEdit.getImages();
List<FontResourceBase> fonts = beforeEdit.getFonts();
List<CssText> stylesheets = beforeEdit.getCss();
這三個呼叫會分別取得各類資源的集合,供後續處理使用。
步驟 3:將提取的資源儲存至磁碟
String outputFolderPath = "YOUR_OUTPUT_DIRECTORY";
for (int i = 0; i < images.size(); i++) {
IImageResource oneImage = images.get(i);
File outputFile = new File(outputFolderPath + oneImage.getFilenameWithExtension());
oneImage.save(outputFile.getAbsolutePath());
}
for (int i = 0; i < fonts.size(); i++) {
FontResourceBase oneFont = fonts.get(i);
File outputFile = new File(outputFolderPath + oneFont.getFilenameWithExtension());
oneFont.save(outputFile.getAbsolutePath());
}
for (int i = 0; i < stylesheets.size(); i++) {
CssText oneStylesheet = stylesheets.get(i);
File outputFile = new File(outputFolderPath + oneStylesheet.getFilenameWithExtension());
oneStylesheet.save(outputFile.getAbsolutePath());
}
每個迴圈會將對應的資源寫入 outputFolderPath,並保留原始檔名。
步驟 4:直接取得資源內容(可選)
如果需要原始位元組或 Base64 字串——例如在 HTML 電子郵件中嵌入圖像——可使用:
InputStream ms = images.get(0).getByteContent(); // raw bytes
String base64EncodedResource = images.get(0).getTextContent(); // Base64 string
常見問題與解決方案
| Issue | Why it Happens | Fix |
|---|---|---|
| OutOfMemoryError on large files | Resources are loaded into memory all at once. | Process documents in smaller batches and call editor.dispose() after each file. |
| Missing fonts after extraction | Font extraction disabled in options. | Ensure editOptions.setFontExtraction(FontExtractionOptions.ExtractAll) is set. |
| Images saved with wrong extension | Some images lack proper MIME type detection. | Verify oneImage.getFilenameWithExtension() before saving; rename if necessary. |
常見問答
Q: GroupDocs.Editor 是否相容所有 Word 檔案格式?
A: 是的,支援 DOCX、DOC 以及其他 Microsoft Word 格式。
Q: 我可以從受密碼保護的文件中提取資源嗎?
A: 當然可以。建立 Editor 時,透過 WordProcessingLoadOptions 提供密碼即可。
Q: API 在處理極大型文件時表現如何?
A: 已針對速度進行最佳化,但對於超大檔案,我們建議將文件切分或分段順序處理。
Q: 我能將此整合至 Spring Boot 或其他 Java 框架嗎?
A: 可以。API 與框架無關,只需加入相依性並在需要的地方注入 Editor。
Q: 若只想提取圖像而不需要字型或 CSS,該怎麼做?
A: 只呼叫 beforeEdit.getImages(),跳過字型與 CSS 的提取步驟即可。
結論
現在你已掌握使用 GroupDocs.Editor for Java 如何提取資源 的完整、可投入生產環境的操作流程。透過載入文件、設定編輯選項,並遍歷返回的資源集合,你可以輕鬆自動化檔案歸檔、範本建立與動態內容產生等工作。
後續步驟:
- 嘗試不同的
WordProcessingEditOptions以微調提取行為。 - 結合雲端儲存 SDK,直接將資源上傳至 S3 或 Azure Blob。
- 探索 GroupDocs 轉換 API,將提取的資產轉換成其他格式。
最後更新: 2026-02-16
測試版本: GroupDocs.Editor 25.3 for Java
作者: GroupDocs