使用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)对我来说不起作用,因为某些布局未正确导入:更改了字体,更改了文本的位置等。

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

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

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

谢谢您的帮助!

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

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

以上是关于使用Apache POI拆分pptx幻灯片的主要内容,如果未能解决你的问题,请参考以下文章

如何将 PowerPoint 演示文稿文件拆分为每个文件中包含一张幻灯片的文件

在 python-pptx 中使用循环创建多张幻灯片并将数据帧写入幻灯片

如何使用 VBA 保存 PPTX 文件

python-pptx 将现有ppt的每张幻灯片保存为图片

如何在 Linux 上将 pptx 文件转换为 jpg 或 png(对于每张幻灯片)?

Shiny App - 从上传的 CSV 生成和下载 PPTX 幻灯片