使用Apache POI拆分pptx幻灯片

问题描述 投票:0回答:1

我想通过使用Apache POI Java库将pptx幻灯片分成几个幻灯片,每个幻灯片只包含一张幻灯片。

创建一个新的XMLSlideSheet并按照几个地方描述添加幻灯片(例如https://www.tutorialspoint.com/apache_poi_ppt/apache_poi_ppt_merging.htm)对我来说不起作用,因为某些布局未正确导入:更改了字体,更改了文本的位置等。

  1. 问题:如何在将幻灯片导入新的XMLSlideShow时,不仅可以导入内容和主布局,还可以导入主题?

有效的一件事是为每张幻灯片导入一次pptx文件,然后迭代所有幻灯片,删除除一张幻灯片之外的所有幻灯片。但是,到目前为止,这种方法的缺点是,生成的pptx-one-slide-file的文件大小与带有x幻灯片的大输入幻灯片一样大。因此,通过XMLSlideShow - > removeSlide(slideID)删除幻灯片似乎不会从幻灯片中删除所有图像,关系等。

  1. 问题:除去一张幻灯片后,如何删除XMLSlideshow中不再需要的所有部分?

谢谢您的帮助!

java split apache-poi powerpoint
1个回答
0
投票
  1. 首先打开完整的pptx并逐个删除幻灯片。这样您可以保留主幻灯片和其他属性。
  2. 您可以尝试在幻灯片的形状上循环并删除它们,如下所示:

for (shape: slide.getShapes()) { slide.removeShape(shape) }

© www.soinside.com 2019 - 2024. All rights reserved.