使用Apache POI拆分pptx幻灯片
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Apache POI拆分pptx幻灯片相关的知识,希望对你有一定的参考价值。
我想通过使用Apache POI Java库将pptx幻灯片分成几个幻灯片,每个幻灯片只包含一张幻灯片。
创建一个新的XMLSlideSheet并按照几个地方描述添加幻灯片(例如https://www.tutorialspoint.com/apache_poi_ppt/apache_poi_ppt_merging.htm)对我来说不起作用,因为某些布局未正确导入:更改了字体,更改了文本的位置等。
- 问题:如何在将幻灯片导入新的XMLSlideShow时,不仅可以导入内容和主布局,还可以导入主题?
有效的一件事是为每张幻灯片导入一次pptx文件,然后迭代所有幻灯片,删除除一张幻灯片之外的所有幻灯片。但是,到目前为止,这种方法的缺点是,生成的pptx-one-slide-file的文件大小与带有x幻灯片的大输入幻灯片一样大。因此,通过XMLSlideShow - > removeSlide(slideID)删除幻灯片似乎不会从幻灯片中删除所有图像,关系等。
- 问题:除去一张幻灯片后,如何删除XMLSlideshow中不再需要的所有部分?
谢谢您的帮助!
答案
- 首先打开完整的pptx并逐个删除幻灯片。这样您可以保留主幻灯片和其他属性。
- 您可以尝试在幻灯片的形状上循环并删除它们,如下所示:
for (shape: slide.getShapes()) { slide.removeShape(shape) }
以上是关于使用Apache POI拆分pptx幻灯片的主要内容,如果未能解决你的问题,请参考以下文章
如何将 PowerPoint 演示文稿文件拆分为每个文件中包含一张幻灯片的文件
在 python-pptx 中使用循环创建多张幻灯片并将数据帧写入幻灯片