在PowerPoint中使用OpenXml嵌入Pdf对于较新版本而言失败

时间:2015-06-10 14:02:54

标签: c# pdf powerpoint openxml ole

我需要通过OpenXml以编程方式在PowerPoint中嵌入Pdf文档。根据这个:Embedding files into Open XML documents using C#可以通过OLE32.StgCreateStorageEx方法创建必要的图片以及oleobject。

不幸的是,这不适用于当前版本的PDF。 在64位操作系统上,这似乎仅适用于Abobe版本9.更高版本失败,错误代码为0x8000FFFF,转换为灾难性故障。测试后这是真实的。即使版本9也不可靠。

作为后备,我使用谷歌的pdfium从第一页创建了一个png。不幸的是,只有一半的方法,因为加入的oleobject与原始的oleobject非常不同。在用户尝试通过在Powerpoint中双击打开嵌入文档之前,这不会受到影响。然后出现一条错误消息,说无法找到该文档的应用程序。

我的问题在这里:

  • 是否有任何关于如何改进程序的信息,即使从不使用版本也能使其工作?
  • 是否有人知道pdf文档的更改对于合并像pdf这样的类似对象是必要的呢?

任何提示都受到高度赞赏

1 个答案:

答案 0 :(得分:0)

最后我让它运行起来。看一下here进行解释。

实际上与Embedding files into Open XML documents using C# 中的代码相比只有一个区别。调用时,必须使用StgCreateStorageEx OLE32.STGFMT.STGFMT_DOCFILE而不是STGFMT_STORAGE。

这使得即使使用较新的Adobe版本也能运行。