Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用docx4j在pptx中嵌入PDF的问题_Java_Pdf_Powerpoint_Docx4j - Fatal编程技术网

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

Java 使用docx4j在pptx中嵌入PDF的问题,java,pdf,powerpoint,docx4j,Java,Pdf,Powerpoint,Docx4j,我必须在运行时将pdf文件附加到pptx幻灯片中 尝试了以下操作: 在pptx幻灯片中附加了一个pdf文件(插入->对象->Adobe Acrobat文档)。 使用以下代码访问对象: OleObjectBinaryPart oleObjectBinaryPart = new OleObjectBinaryPart(new PartName("/ppt/embeddings/oleObject1.bin")); 使用以下代码更新oleObjectBinaryPart: oleObjectBina

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

尝试了以下操作:

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

OleObjectBinaryPart oleObjectBinaryPart = new OleObjectBinaryPart(new PartName("/ppt/embeddings/oleObject1.bin"));
使用以下代码更新oleObjectBinaryPart:

oleObjectBinaryPart.setBinaryData(reportBlob.getBinaryStream());
使用新对象更新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是否有问题?

您不能将PDF作为二进制blob附加;它必须采用正确的OLE格式

见下文