我正在寻找一个开源的pptx阅读器(首选C#)来修改它并将其放入3D引擎(客户请求),或者至少是基础知识的教程。我已经在谷歌搜索但找不到任何有用的资源。
我知道可以通过阅读pptx文件文档(ECMA)创建一个新的阅读器,但这似乎是一个巨大的项目,我更喜欢,如果我能够在一些现有的代码上构建这个组件。< / p>
答案 0 :(得分:6)
使用的最佳选择实际上取决于您需要进行的修改。如果您希望能够大量操作PowerPoint演示文稿,绘制新形状,旋转形状,添加图表,添加幻灯片或掌握幻灯片等,您可能会发现像Aspose.Slides库(专有)这样的抽象层非常有用。
如果您不想为图书馆付费,可以在.NET中使用OpenXML
格式。它们允许您在不需要Interop / COM的情况下操作PPTX文档的各个方面,因为它们在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安装。
答案 1 :(得分:4)
老实说,这不是一件容易的事。我试图为演示设计师做这件事,并没有太多的解决方案。 我使用的是Office Open XML SDk 2.5。这比手工处理XML要好得多,但也没有picknick。 如果你有钱,可以使用:http://www.aspose.com/.net/powerpoint-component.aspx 我不知道它有多好。
我知道这不是好消息,但是Powerpoint收到的关注度明显低于Excel,因此资源很少。
答案 2 :(得分:1)
您不会说应用程序是否可以访问Internet,但假设它是,您可能会考虑使用公共REST API将PPTX转换为您需要的任何格式。可能会有更多,但这里有一些提供此功能:
有些人拥有免费套餐,您可以每天进行一定数量的转换而无需支付使用费。 Aspose for Cloud有一个.Net SDK,但是使用REST API,客户端的语言并不重要。
答案 3 :(得分:1)
正如已经指出的那样,没有简洁的解决方案。在我看来,你只能选择2个选择:
除此之外,我担心你必须创造更多“手动”的东西。