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

Embedding Pdf with OpenXml in PowerPoint fails for newer versions

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

遗憾的是,这不适用于当前版本的 PDF。 在 64 位 OS 上,这似乎只适用于 Abobe 版本 9.Higher 版本失败,错误代码为 0x8000FFFF,转化为灾难性故障。 这在之后是真实的测试它。即使是版本 9 也不可靠。

作为后备,我使用 google 的 pdfium 从第一页创建了一个 png。不幸的是,这只是完成了一半,因为合并的 oleobject 与原始对象有很大不同。在用户尝试通过在 Powerpoint 中双击打开嵌入的文档之前,这不会有什么坏处。然后报错,说找不到文档的应用

这是我的问题:

非常感谢任何提示

我终于做到了运行。看看here的解释。

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

这使得 运行 即使是较新的 Adob​​e 版本。