如何使用apache-poi或其他3-rd库更改ppt演示模式?

时间:2018-12-22 08:10:23

标签: java apache-poi

我一直在从事一个需要以“信息亭”演示模式显示PPT文件的项目。 在PPTX文件中,我可以将其像zip文件一样提取并重写presProps.xml,其中包含诸如“ p:showPr useTimings =” 0“ p:present”之类的属性,并且可以通过重写“ p:present”来更改模式。改为“ p:kiosk”。 我刚刚发现我可以使用apache-poi OPCPackage来做到这一点。 (例如How do I edit the presProps.xml file with ApachePoi

但是,在PPT文件中,我无法像上面那样进行操作。有什么方法可以更改PPT文件的显示模式。 还是可以使用apache-poi将PPT文件转换为PPTX文件,以便上述解决方案可以正常工作?

Thx。

1 个答案:

答案 0 :(得分:1)

i=0文件是以二进制文件格式存储的*.ppt文件。这就是org.apache.poi.hslf的用途。入口点是HSLFSlideShow

所有Office二进制格式的共同点是它们是PowerPoint数据记录的流,用于描述文档。对于Record,规范在这里:[MS-PPT]: PowerPoint (.ppt) Binary File Format

根据您的要求,DocumentContainer设置了一个可选的SlideShowDocInfoAtom。可以设置PowerPoint来设置信息亭模式。

可以使用F - fKioskMode (1 bit)通过HSLFSlideShow.getDocumentRecord获得DocumentContainer。但是随后apache poi的支持终止了,因为apache poi Record直到现在还没有实现。

但是使用扩展了SlideShowDocInfoAtom的自己的类SlideShowDocInfoAtom,我们可以实现这一点。

示例:

RecordAtom