Powerpoint幻灯片具有可通过VBA访问和修改的内部名称。参见例如Powerpoint:手动设置幻灯片名称
我想通过apache poi访问该名称。我尝试了:
public String getName() {
CTSlide ctSlide = slide.getXmlObject();
String name=ctSlide.getCSld().getName();
return name;
}
但只有当幻灯片名称只有默认名称时,才以这种方式获取空字符串。
在阿帕奇POI中获取(甚至设置)pptx文件的幻灯片名称的正确方法是什么?
默认情况下,幻灯片名称未定义,因此您会收到一个空字符串。如果您使用链接的VBA示例,然后尝试上面的代码,您将获得幻灯片名称。相应的设置器也工作...
由于幻灯片名称只能通过VBA进行修改 - 我会使用幻灯片标题,但当然取决于您的用例。
public static void main(String[] args) throws Exception {
// slide name has been set via VBA ...
FileInputStream fis = new FileInputStream("slidename.pptx");
XMLSlideShow ppt = new XMLSlideShow(fis);
fis.close();
XSLFSlide sl = ppt.getSlides().get(0);
System.out.println(sl.getXmlObject().getCSld().getName());
// set slide name via POI and validate it
sl.getXmlObject().getCSld().setName("new name");
FileOutputStream fos = new FileOutputStream("slidename2.pptx");
ppt.write(fos);
fos.close();
ppt.close();
fis = new FileInputStream("slidename2.pptx");
ppt = new XMLSlideShow(fis);
fis.close();
System.out.println(sl.getXmlObject().getCSld().getName());
ppt.close();
}
我想使用Apache POIJava库将pptx幻灯片拆分为几个幻灯片,每个幻灯片只包含一张幻灯片。 创建一个新的XMLSlideSheet并添加幻灯片,如在几个地方(例如 https://www.tutorialspoint.com/apache_poi_ppt/apache_poi_ppt_merging.htm)所述,对我来说不起作用,因为某些布局没有正确导入:字体被更改,文本的位置被更改等
我有一个场景,我需要从pptx (source.pptx)中复制一些幻灯片,并根据幻灯片中的演示笔记将其下载为单独的pptx文件(output.pptx)。我正在使用apache poi来实现它。这是我的代码。 当我打开创建的output.pptx时,我收到以下错误:“PowerPoint发现output.pptx中的内容有问题,PowerPoint可以尝试修复演示文稿。如果您信任此演示文稿的来源
上下文:C#中的PowerPoint幻灯片有一个属性slide。名称(通常包含任意字符串值)。在我的C#应用程序中,我想使用这个属性来标识幻灯片(幻灯片顺序不可靠)。 问题:如何手动设置幻灯片。PowerPoint应用程序中的Name属性? 我的问题非常像:“如何在PowerPoint幻灯片中命名对象?”,但只是在幻灯片级别上。 任何帮助都将不胜感激。
类似于幻灯片上的对象如何命名和调用 例如,我目前在哪里工作: 我需要做的事情大致如下: 主要是因为幻灯片可能是动态的,并且我不热衷于在每次幻灯片更改时更改每个代码块中每个幻灯片的引用。 老实说,在Powerpoint中找不到任何实际命名幻灯片的功能。我读过关于通过命名标题对象来做到这一点的功能,但这对我来说似乎没有意义,也不适合我。 希望你能帮忙!
问题内容: 到目前为止,我只有一个有效的代码可以从ppt幻灯片笔记中检索文本 但是,如何从pptx幻灯片笔记中检索文本? 问题答案: 经过不断的反复试验,找到了解决方案。
到目前为止,我只有一个从ppt幻灯片笔记中检索文本的工作代码 但如何从pptx幻灯片笔记中检索文本呢?