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