1

我为 Microsoft PowerPoint 开发了一个自定义插件。我的插件需要将大量二进制数据存储到 PowerPoint 演示文稿中。我将此二进制数据作为 base 64 编码字符串存储到 PowerPoint 演示文稿标签中。我发现,当演示文稿在其标签中包含大量数据(如 10 多兆字节)时,PowerPoint 在保存演示文稿时似乎正在泄漏内存。因此,当多次保存此类演示文稿时,PowerPoint 甚至会耗尽系统内存并崩溃。

我开发了一个非常简单的 C# 插件来隔离问题。创建新演示文稿时,它将 50 兆字节的二进制数据存储到演示文稿中:

private void Application_AfterNewPresentation(PowerPoint.Presentation presentation)
{
    int tagLength = 5 * 1000 * 1000;
    StringBuilder largeTagValue = new StringBuilder();
    largeTagValue.Capacity = tagLength + 2;
    for (int i = 0; i < tagLength; i++)
    {
        largeTagValue.Append("A");
    }
    largeTagValue.Append("\0");
    string largeTagValueString = largeTagValue.ToString();
    for (int i = 0; i < 10; i++)
    {
        presentation.Tags.Add("LARGE_TAG" + i.ToString(), largeTagValueString);
    }
}

运行此插件后,我什至可以禁用它以确保它不再执行任何操作。接下来,我多次保存演示文稿,并且每次保存演示文稿时,进程列表中的 PowerPoint 内存使用量都会增加。

完整的源代码和示例演示文稿可在此处获得

有谁知道这是一个 PowerPoint 错误还是有任何解决方法?...

或者,也许还有另一种方法可以将相对大量的数据存储到 PowerPoint 演示文稿中?

4

1 回答 1

0

更多的搜索发现了这一点......首先看看 Todd Main 的答案,以大致了解需要什么:

是否可以将一些数据添加到 Word 文档中?

于 2013-03-27T14:38:33.270 回答