2

我正在寻找一个开源 pptx 阅读器(在 C# 中首选)来修改它并将其放入 3D 引擎(客户请求),或者至少是一个基础教程。我已经在谷歌上搜索过,但找不到任何有用的资源。

我知道可以通过阅读 pptx 文件文档 (ECMA) 创建一个新的阅读器,但这似乎是一个巨大的项目,如果我能够在一些现有代码上构建这个组件,我会更喜欢。

4

4 回答 4

6

您的选择

使用的最佳选择实际上取决于您需要做的修改。如果您希望能够大量操作 PowerPoint 演示文稿、绘制新形状、旋转形状、添加图表、添加幻灯片或母版幻灯片等,您可能会发现像 Aspose.Slides 库(专有)这样的抽象层非常有用。

如果您不想为库付费,OpenXML可以在 .NET 中使用这些格式。它们允许您操作 PPTX 文档的各个方面,而无需 Interop/COM,因为它们在 PPTX 中解析 XML。

从个人经验来看,两者都使用过,Aspose 是一个更简单的解决方案,但它提供了一些开销,当然也有成本。OpenXML 路线使用起来很轻松,但需要一些学习曲线。

最后但并非最不重要的一点是,您可以看看NetOffice,它实现了类似于 Aspose 的功能,它更轻一些,功能也有所减少。它还涵盖其他格式,并且不需要在计算机上安装 Office。

总结您的选择:

我的建议

如果您需要做一些简单的修改(例如提取幻灯片、在某处更改一些文本、替换图像),我会选择 OpenXML。

如果您想以定制的方式绘制幻灯片,我会选择 Aspose。我在一个 50.000 LoC 应用程序中使用 Aspose,使用 WCF 构建了数十万个 PowerPoint 幻灯片(有时最多 100 张幻灯片)。Aspose 一直在绘制每张幻灯片并生成所有形状。生成一张牌大约需要 4-5 秒。Aspose 的加载和 Aspose 的小问题可能很烦人(一个人可以在大约 200 毫秒内处理一张幻灯片)。此外,Aspose 演示文稿不可序列化,如果您想以某种形式缓存结果,这很烦人。

如果您想阅读 PPTX 并以某种方式将其转换为图像,Aspose.Slides 是一个不错的选择,因为它允许您将 PPTX 幻灯片转换为 SVG,然后您可以进行处理。请注意,那里有一些 PPTX2SVG 引擎 (XSLT),但我知道的引擎是用 Java (Apache) 编写的。

笔记

我提到的库都是 .NET/C# 环境的库。这些库和技术都不需要 office/interop/com 安装。

于 2013-07-09T12:47:26.613 回答
4

老实说,这不是一件容易的事。我尝试为 Presentation Designer 执行此操作,但目前没有很多解决方案。我使用了 Office Open XML SDK 2.5。这比手动处理 XML 要好得多,但也没有picknick。如果你有一些钱,你可以使用:http ://www.aspose.com/.net/powerpoint-component.aspx 我不知道它有多好。

我知道这不是好消息,但 Powerpoint 受到的关注明显少于 Excel,因此资源稀缺。

于 2013-07-02T14:29:34.557 回答
1

正如已经指出的那样,没有干净和简单的解决方案。在我看来,您仅限于 2 个选择:

  1. 使用微软自己的 / VSTO。还有这里的信息。这可能会让您头疼,但可能是唯一能让您访问所需的 PowerPoint 功能的方法。
  2. 使用开放 XML。这已经被覆盖了。这可能会更容易使用,但可能无法访问您需要的功能。

除此之外,恐怕您将不得不创建更多“手动”的东西。

于 2013-07-08T15:48:34.810 回答
1

您没有说应用程序是否可以访问 Internet,但假设是,您可能会考虑使用公共 REST API 将 PPTX 转换为您需要的任何格式。可能还有更多,但这里有一些提供此功能:

有些有免费套餐,您可以每天进行一定数量的转换而无需支付使用费。Aspose for Cloud 有一个 .Net SDK,但对于 REST API,客户端的语言并不重要。

于 2013-07-02T16:59:11.230 回答