可編輯文檔的進階用法

介紹

如果您是一位希望增強文件編輯功能的 .NET 開發人員,GroupDocs.Editor for .NET 提供了一套功能強大的工具。本綜合指南將引導您使用 GroupDocs.Editor 進階使用可編輯文檔,詳細分解每個步驟,以確保您可以充分利用其潛力。

先決條件

在深入了解進階功能之前,請確保您具備以下條件:

  • Visual Studio 安裝在您的開發電腦上。
  • .NET Framework 與 GroupDocs.Editor 相容。
  • 用於 .NET 函式庫的 GroupDocs.Editor。你可以在這裡下載.
  • 有效的 GroupDocs.Editor 許可證。您可以獲得免費試用或購買一個臨時執照.

導入命名空間

首先,請確保在 .NET 專案中匯入必要的命名空間:

using System;
using System.Collections.Generic;
using System.IO;
using GroupDocs.Editor.HtmlCss.Resources;
using GroupDocs.Editor.HtmlCss.Resources.Fonts;
using GroupDocs.Editor.HtmlCss.Resources.Images;
using GroupDocs.Editor.HtmlCss.Resources.Textual;
using GroupDocs.Editor.Options;

第 1 步:建立 EditableDocument 實例

首先,您需要建立一個實例EditableDocument透過載入和編輯支援格式的輸入文件。

string inputFilePath = "YourSampleDocument.docx";
Editor editor = new Editor(inputFilePath, delegate { return new WordProcessingLoadOptions(); });
EditableDocument beforeEdit = editor.Edit(new WordProcessingEditOptions());

在此步驟中,我們載入輸入文件並準備進行編輯。

步驟2:提取文檔資源

EditableDocument包含可以提取和操縱的各種資源。讓我們來分解一下:

步驟 2.1:將整個文件提取為 HTML

您可以產生一個字串,其中包含整個文件及其以 HTML 形式嵌入的所有資源。

string allAsHtmlInsideOneString = beforeEdit.GetEmbeddedHtml();

該字串將非常大,因為它包含以 base64 編碼的樣式表、圖像和字體。

步驟2.2:擷取所有影像

從文件中提取所有圖像。

List<IImageResource> allImages = beforeEdit.Images;

步驟2.3:擷取所有字體

提取文件中使用的所有字體。

List<FontResourceBase> allFonts = beforeEdit.Fonts;

步驟2.4:擷取所有樣式表

以文字格式擷取所有樣式表。

List<CssText> allStylesheets = beforeEdit.Css;

步驟2.5:收集所有資源

透過一次調用收集所有資源。

List<IHtmlResource> allResources = beforeEdit.AllResources;

這包括圖像、字體和樣式表。

步驟2.6:取得HTML標記

取得沒有嵌入資源的文件的 HTML 標記。

string htmlMarkup = beforeEdit.GetContent();

第三步:調整外部鏈接

有時,您需要調整外部連結以指向自訂資源處理程序。操作方法如下:

步驟 3.1:準備自訂前綴

準備將在原始外部連結前面添加的前綴。

string customImagesRequesthandlerUri = "http://example.com/ImagesHandler/id=";
string customCssRequesthandlerUri = "http://example.com/CssHandler/id=";
string customFontsRequesthandlerUri = "http://example.com/FontsHandler/id=";

步驟 3.2:產生帶有前綴的 HTML 標記

產生帶有調整後的連結的 HTML 標記。

string prefixedHtmlMarkup = beforeEdit.GetContent(customImagesRequesthandlerUri, customCssRequesthandlerUri);

步驟 3.3:取得僅正文的 HTML 內容

一些所見即所得編輯器僅處理沒有標題的純 HTML 標記。

string onlyBodyContent = beforeEdit.GetBodyContent();

步驟 3.4:帶有前綴的純正文內容

使用自訂圖像前綴產生僅正文內容。

string prefixedBodyContent = beforeEdit.GetBodyContent(customImagesRequesthandlerUri);

步驟3.5:擷取樣式表

提取文檔中使用的樣式表。

List<string> stylesheets = beforeEdit.GetCssContent();

步驟 3.6:前綴樣式表

使用自訂前綴提取樣式表。

List<string> prefixedStylesheets = beforeEdit.GetCssContent(customImagesRequesthandlerUri, customFontsRequesthandlerUri);

第 4 步:將文件另存為 HTML

將編輯後的文件儲存為 HTML 文件,包括其資源。

string htmlFilePath = Path.Combine("output", Path.GetFileNameWithoutExtension(inputFilePath) + ".html");
beforeEdit.Save(htmlFilePath);

此方法為樣式表、圖像和字體等資源建立一個單獨的目錄。

第 5 步:處理 EditableDocument

可編輯文檔實現IDisposable並提供檢查實例是否已處置的能力。

Console.WriteLine("EditableDocument is {0} disposed", !beforeEdit.IsDisposed ? "not" : "already");

步驟 5.1 處理 Dispose 事件

您也可以訂閱處置事件。

EventHandler someMethod = delegate { Console.WriteLine("Disposing event was spotted!"); };
beforeEdit.Disposed += someMethod;

第 6 步:從 HTML 建立 EditableDocument

從 HTML 文件建立 EditableDocument 的實例。

步驟 6.1:從 HTML 文件

EditableDocument afterEditFromFile = EditableDocument.FromFile(htmlFilePath, null);

步驟 6.2:從 HTML 標記

EditableDocument afterEditFromMarkup = EditableDocument.FromMarkup(htmlMarkup, allResources);

這些實例(afterEditFromFile 和 afterEditFromMarkup)與原始實例(beforeEdit)相同。

第 7 步:手動處置

手動處置您的 EditableDocument 實例。

beforeEdit.Dispose();
afterEditFromFile.Dispose();
afterEditFromMarkup.Dispose();
editor.Dispose();

這確保了資源的正確清理。

結論

GroupDocs.Editor for .NET 提供了以程式設計方式編輯文件的強大工具。透過遵循此逐步指南,您可以有效地管理文件內容、資源和輸出格式。無論您是嵌入資源、調整外部連結或將文件轉換為 HTML,GroupDocs.Editor 都能為您提供進階文件操作所需的功能。

常見問題解答

GroupDocs.Editor 支援哪些格式?

GroupDocs.Editor 支援多種格式,包括 DOCX、XLSX、PPTX 等。

我可以在沒有許可證的情況下使用 GroupDocs.Editor 嗎?

是的,您可以將它與免費試用或一個臨時執照.

如何從文件中提取特定資源?

您可以使用提供的方法來提取圖像、字體和樣式表,例如Images, Fonts, 和Css.

是否可以調整 HTML 輸出中的連結?

是的,您可以透過指定圖像、CSS 和字體的自訂前綴來調整外部連結。

如何將已編輯的文件儲存為 HTML 文件?

使用Save的方法EditableDocument類別將文件儲存為 HTML 文件,包括其資源。