对于较新的版本,在 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 中双击打开嵌入的文档之前,这不会有什么坏处。然后报错,说找不到文档的应用
这是我的问题:
- 有没有关于如何改进程序以使其即使在 never 版本下也能正常工作的信息?
- 有人知道要合并类似 pdf 的对象需要对 pdf 文档进行哪些更改吗?
非常感谢任何提示
我终于做到了运行。看看here的解释。
实际上与Embedding files into Open XML documents using C# 中的代码相比只有一处不同。调用时,必须使用 StgCreateStorageEx OLE32.STGFMT.STGFMT_DOCFILE 而不是 STGFMT_STORAGE.
这使得 运行 即使是较新的 Adobe 版本。
我需要通过 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 中双击打开嵌入的文档之前,这不会有什么坏处。然后报错,说找不到文档的应用
这是我的问题:
- 有没有关于如何改进程序以使其即使在 never 版本下也能正常工作的信息?
- 有人知道要合并类似 pdf 的对象需要对 pdf 文档进行哪些更改吗?
非常感谢任何提示
我终于做到了运行。看看here的解释。
实际上与Embedding files into Open XML documents using C# 中的代码相比只有一处不同。调用时,必须使用 StgCreateStorageEx OLE32.STGFMT.STGFMT_DOCFILE 而不是 STGFMT_STORAGE.
这使得 运行 即使是较新的 Adobe 版本。