我需要通过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中双击打开嵌入文档之前,这不会受到影响。然后出现一条错误消息,说无法找到该文档的应用程序。
我的问题在这里:
任何提示都受到高度赞赏
答案 0 :(得分:0)
最后我让它运行起来。看一下here进行解释。
实际上与Embedding files into Open XML documents using C# 中的代码相比只有一个区别。调用时,必须使用StgCreateStorageEx OLE32.STGFMT.STGFMT_DOCFILE而不是STGFMT_STORAGE。
这使得即使使用较新的Adobe版本也能运行。