Aspose.Words or Open XML SDK
Aspose.Words是一種高級Word文檔處理API,用于執行各種文檔管理和操作任務。API支持生成,修改,轉換,呈現和打印文檔,而無需在跨平臺應用程序中直接使用Microsoft Word。
Aspose API支持流行文件格式處理,并允許將各類文檔導出或轉換為固定布局文件格式和最常用的圖像/多媒體格式。
有時我們會遇到以下問題:為什么我們應該使用 Aspose 產品而不是免費的 Open XML SDK?這個問題很容易回答:特性和功能。
Open XML SDK 和 Aspose.Words 不會相互競爭,因為它們滿足完全不同的需求和受眾。Open XML SDK 是一個類庫,它提供了處理 OOXML 文檔的強類型方法。Aspose.Words是一個非常有用的文檔處理庫,它為所有Microsoft Word和其他文檔格式提供了強大的支持。
為什么不開放 XML SDK如果您只需對 DOCX 文檔進行相當簡單的編程操作,那么 Open XML SDK 可能是一個合適的選擇。借助 Open XML SDK,您將能夠輕松地執行簡單的任務,例如生成簡單的 DOCX 文檔或刪除注釋、頁眉/頁腳或提取圖像。
值得注意的是,有些任務可以使用 Open XML SDK 完成,但無法使用 Aspose.Words 完成。例如,如果您需要直接訪問 OOXML XML 文檔的 XML 元素和屬性,則應使用 Open XML SDK。但是,如果您需要對文檔執行復雜的操作(例如以下某些任務),那么使用 Aspose.Words 是您的最佳選擇:
- 支持 DOCX 以外的文檔格式 – DOC、RTF、HTML等
- 通過復制或連接一個或多個文檔的片段來創建文檔,并自動合并每個文檔的結構(例如樣式和列表)
- 提供對復雜操作的訪問,例如查找和替換、插入和更新目錄、公式或字段等
- 生成業務文檔,例如填充有來自各種數據源的數據的訂單或報告
- 在多種流行文檔格式之間轉換文檔,包括轉換為 PDF、XPS 和打印,使其看起來與 Microsoft Word 轉換后的文檔完全相同
- 和別的
在以下部分和文章中,我們將仔細研究 Aspose.Words 提供的一些特性和功能。
安全
與 Open XML SDK 相比,Aspose.Words 軟件可以被認為更安全,因為它是在受控條件下開發的,我們的員工在該特定領域擁有豐富的經驗。
穩定
Aspose 組件經過徹底測試。由于 Aspose 組件被打包到單個 DLL 中,因此無需安裝任何其他部件即可運行。這不僅可以提供 Aspose.Words 的穩定工作,還可以將不可預見情況的風險降低到幾乎為零。
可擴展性和最小的學習曲線
Office Open XML 基于 XML,被譽為一種支持技術。確實,Office Open XML 使得僅使用 XML 類構建文檔處理和生成應用程序成為可能,而無需依賴第三方庫(例如 Aspose.Words)。OOXML 文檔本質上是壓縮的 XML 文件,而 Open XML SDK 是一個類集合,允許您以強類型方式處理 OOXML 文檔的內容。也就是說,Open XML SDK 提供了類來執行此操作,而不是解壓縮文件以提取 XML、將該 XML 加載到 DOM 樹中并直接使用 XML 元素和屬性。
然而,OOXML 規范長達數千頁。開放、標準并不意味著簡單。要正確處理或生成 OOXML 文檔,必須花大力氣學習該格式。因此,使用 Open XML SDK 至少需要了解 Open XML 規范的基本知識,這可能需要很長時間才能學習。
同時,使用 Aspose.Words 的學習曲線很短,因為它的 API 是根據 .NET Framework 設計指南仔細考慮和設計的。這有助于確保文檔元素的易用性和操作性。
特征
我們堅信,在處理 OOXML 文檔(而不是使用 XML 或其他庫)時,使用 Aspose.Words 仍然非常有益。除了使正確處理和生成有效文檔變得更加容易之外,Aspose.Words 還提供了以下重要功能,這是您直接通過 XML 或其他第三方庫處理 OOXML 文件時所沒有的:
- 許多流行文檔格式和打印之間的質量轉換
- 能夠從一個或多個文檔的片段創建文檔,以及使用各種來源的數據填充文檔的能力
- 以編程方式訪問文檔屬性,為用戶提供功能,例如將文檔拆分為多個部分或比較兩個文檔
- 和別的
如上所述,主要原因是功能上的差異。
考慮以下示例。這是一個簡單的段落,包含文本“Hello World”,并且“Hello”一詞是粗體的。現在想象一下,您需要編寫一個程序來搜索文檔中的所有“Hello World”短語并將其替換為“Goodbye Earth”。
加載、修改和保存 XML 文件這一看似簡單的任務看起來不再那么容易。事實上,它已經變得非常復雜。它需要一個不簡單的算法來查找和替換 XML 樹中的平面文本。
以下是 Office Open XML 文檔的片段:
XML
<w:p w:rsidR="00C07F31" w:rsidRDefault="003F6D7A"> <w:r w:rsidRPr="003F6D7A"> <w:rPr> <w:b /> </w:rPr> <w:t>Hello</w:t> </w:r> <w:r> <w:t xml:space="preserve">World.</w:t> </w:r> </w:p>
您是否曾想過為什么標準 XML 類(例如 XmlDocument)不提供查找和替換功能?自己在 Office Open XML 文檔上實現即使是簡單的查找和替換操作也絕非易事,在這種情況下歡迎使用 Aspose.Words。