【问题标题】:How to replace text in a PowerPoint (.ppt) document?如何替换 PowerPoint (.ppt) 文档中的文本?
【发布时间】:2010-02-24 09:29:48
【问题描述】:

有哪些解决方案?我只知道用 Apache POI 替换 Word (.doc) 文件中的书签的解决方案?

是否还可以更改 .doc 和 .ppt 文档中的图像、布局、文本样式?

我考虑替换 Word 和 PowerPoint 文档中的区域以进​​行批量处理。

平台:MS-Office 2003

【问题讨论】:

    标签: replace powerpoint placeholder contentplaceholder


    【解决方案1】:

    您的平台限制是什么?

    显然,Apache POI 至少可以帮助您到达那里。

    Microsoft 自己的 COM API 相当强大,并记录在 here 中。如果 a) 您没有在服务器(多用户、多线程)环境中运行,我建议您使用它们; b) 您可以在生产机器上安装正确版本的 powerpoint; c) 您可以针对 COM 对象模型进行编码。

    【讨论】:

    • 我对平台限制很灵活。最好的一个是免费的许可证,适用于每个文档工作框架。 ;) 抽象 COM 对象模型的 Web 服务可能是一种方式。
    • 你也可以使用 OpenOffice,我已经在我的帖子中添加了信息。
    【解决方案2】:

    有点贵,但Aspose.Slides 是一个非常强大的用于处理 PowerPoint 文件的库

    【讨论】:

    • 一个开源解决方案是 docx4j,它现在也可以操作 pptx 文件。它的 Java,使用 JAXB。
    【解决方案3】:

    如果您选择使用其他 Office 套装,以下是可能的解决方案列表:

    使用 POI 您无法编辑 .pptx 文件格式,但您不依赖于系统上安装的应用程序。相反,其他两个选项使用其他应用程序,但它们绝对更适合处理演示文稿。顺便说一下,OpenOffice 与旧格式具有更好的兼容性。此外,如果您使用 UNO,您将有多种语言选择,UNO 可用于 Java、C++、Python 和其他语言。

    【讨论】:

    • POI 是唯一的解决方案吗?格式更改(.ppt => .pptx)是怎么回事?听说 POI 在 UTF-8、Formatting 等方面有问题。
    • 嗯,我在网上看到过不同的库可以处理 .ppt 文件,但是在更改文档时,它们毫无用处。另一种解决方案可能是使用 OpenOffice 或 PowerPoint API 来更改文档,我不知道该解决方案是否适合您。
    【解决方案4】:

    我的经验不是直接使用 Power Point,但实际上我已经推出了自己的 WordML (XML) 生成器。它 a) 删除了对 Word 的所有依赖项,b) 非常快 c) 让我从头开始构建文档。

    但要创建它需要做很多工作。而且我只是在创建一个只写的实现。

    我对 Power Point 不太熟悉,所以这是推测,但您可以通过阅读 XML(Power Point 2003??)和/或破解 Office Open XML 文件(压缩的 XML)来自行开发,然后使用 XPath 处理数据,然后将所有内容保存回磁盘。

    这不适用于旧的基于 OLE 复合文档的 Power Point 文件。

    【讨论】:

      【解决方案5】:

      我以前做过类似的事情:以编程方式访问和操作 PowerPoint 演示文稿。当我这样做的时候,它都是在 C++ 中使用 COM 的,但类似的原则也适用于 C#/VB .NET 应用程序,因为它们很容易进行 COM 互操作。

      您要查找的内容称为 Office 文档模型。基本上,Office 应用程序以编程方式将其文档公开为定义其内容的对象树。这些对象可通过 API 访问,您可以操作它们、添加新对象以及执行任何其他您想要的处理。它非常强大;您可以使用它来操作文档的几乎所有方面。但是您需要安装 Office 和 Visual Studio 才能使用它。

      一些链接:

      希望这会有所帮助!

      【讨论】:

        【解决方案6】:

        显然,新用户每次发布只能包含一个链接。多么蹩脚! :)

        这是我想要包含的另一个链接:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-19
          • 1970-01-01
          相关资源
          最近更新 更多