使用docx4j在pptx中嵌入PDF的问题

时间:2013-08-23 18:33:47

标签: java pdf powerpoint docx4j

我必须在运行时在pptx幻灯片中附加pdf文件。

尝试以下方法:

在pptx幻灯片中附加了pdf文件(插入 - >对象 - > Adob​​e Acrobat文档)。 使用以下代码访问oleobject:

OleObjectBinaryPart oleObjectBinaryPart = new OleObjectBinaryPart(new PartName("/ppt/embeddings/oleObject1.bin"));

使用以下代码更新oleObjectBinaryPart:

oleObjectBinaryPart.setBinaryData(reportBlob.getBinaryStream());

使用新的oleobject更新pptx:

pptMlPackage.getParts().getParts().put(new PartName("/ppt/embeddings/oleObject1.bin"), oleObjectBinaryPart);
pptMlPackage.save(new File("C:/test_report/pptx_out.pptx"));

执行此代码后,生成的pptx_out.pptx文件没有任何错误。但是在尝试在powerpoint 2010中打开嵌入式pdf时,我遇到了以下错误:

  

无法找到服务器应用程序,源文件或项目,或返回了未知错误。您可能需要重新安装服务器应用程序。

更新时,oleobject是否存在问题?

1 个答案:

答案 0 :(得分:0)

您不能只将PDF附加为二进制blob;它必须是正确的OLE格式。

进一步查看this discussion