【发布时间】:2020-04-30 15:46:58
【问题描述】:
我正在使用 Apache POI 来修改 pptx。我想一次更改整个 pptx 的字体。
我知道在 Powerpoint 中这可以通过更改主题的字体来实现(如果幻灯片都使用这些字体),但我无法通过 Apache POI 使其工作。
到目前为止,我发现我可以使用例如设置单个 XSLFTextRun 的字体系列。 run.setFontFamily(HSSFFont.FONT_ARIAL)。
编辑:我发现 XSLFSlideMaster 的 XSLFTheme 类确实有一个 getMajorFont() 和一个 getMinorFont() 方法。我认为这些可能是我需要更改的字体,但这些字段没有设置器。
感谢您的帮助!
【问题讨论】:
-
最佳实践是将所有字体实例键入字体主题。然后你只需要更新主题来改变格式。
-
@JohnKorchok 感谢您的回答。在我尝试修改的演示文稿中,我使用的是我创建的幻灯片母版中的字体。因此,在 PowerPoint 中,我可以通过更改幻灯片母版中的字体来一次修改整个演示文稿的字体。现在我正在尝试对 Apache POI 做同样的事情。
-
不清楚到底是什么需求。您可以使用XMLSlideShow.getSlideMasters 从幻灯片中获取幻灯片母版。但是每个master定义了多个布局。那么是否需要更改所有布局中所有占位符的所有字体设置?你到底在
PowrPointsGUI做什么来实现你想要的帽子? -
@AxelRichter 我编辑了这个问题(希望)让它更清楚。
标签: java apache-poi powerpoint