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。