在编辑PowerPoint文档时,出于美观或实际需求考虑,我们有时会对某个幻灯片中的文本字体样式进行设置,比如,改变字体名称/字体大小,更改字体颜色,给字体加粗,添加下划线或设置斜体。当需要设置的文本很多,手动逐一进行上述操作会很麻烦,本文就将介绍一种很方便快捷的方式——通过后端调用Java代码进行自动操作。
操作工具:Free S for Java (可在E-iceblue中文官网获取,解压后在lib文件夹下找到S.jar,然后将其手动添加到Java项目中;或者是创建Maven仓库,在文件中键入以下代码进行产品导入)
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>;/url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>;/artifactId> <version>5.1.0</version> </dependency> </dependencies>
代码示例
以下是代码操作步骤:
- 创建Presentation实例并使用Pre()方法加载PowerPoint示例文档;
- 使用Pre().get()方法获取指定幻灯片,并用ISlide接口提供的方法获取指定文本形状;
- 使用IAu()方法获取TextFrame对象,再使用ITextFrameProperties接口提供的方法获取这个对象中的指定段落;
- 使用Paragra().get()方法获取段落中的文本内容;
- 使用FillFormat.setFillType(FillFormatType value)方法设置文本内容的填充类型,使用ColorFormat.setColor(ColorType value)方法设置填充颜色;
- 用同样的方法可以指定其他文本形状,以及设置指定段落中字体形式。比如,字体加粗,设置斜体,添加下划线,更改字体名称及大小;
- 最后使用Pre()方法保存结果文档至指定路径。
import com..*; import com..drawing.FillFormatType; import java.awt.*; public class ChangeFontStyles { public static void main(String[] args) throws Exception { //创建Presentation实例 Presentation presentation = new Presentation(); //加载PowerPoint示例文档 pre("C:\\Users\\Tina\\Desktop\\;); //获取第一个文本形状 IAutoShape shape1 = (IAutoShape) pre().get(0).getShapes().get(0); //获取形状中的第一个段落并更改其字体颜色 ParagraphEx paragraph = ().getParagraphs().get(0); for (int i = 0; i < ().getCount(); i++) { PortionEx textRange = ().get(i); ().getFill().setFillType); ().getFill().getSolidColor().setColor); } //获取第二个文本形状 IAutoShape shape2 = (IAutoShape) pre().get(0).getShapes().get(1); //获取形状中的第一个段落并将其文字加粗,设置斜体和下划线 paragraph = ().getParagraphs().get(0); for (int i = 0; i < ().getCount(); i++) { PortionEx textRange = ().get(i); ().isBold); ().isItalic); ().setTextUnderlineType); } //获取形状中的第6个段落并更改其字体名称及大小 paragraph = ().getParagraphs().get(5); for (int i = 0; i < ().getCount(); i++) { PortionEx textRange = ().get(i); ().setEastAsianFont(new TextFont("黑体")); ().setFontHeight(30f); } //保存结果文档到指定路径 pre("outpu;, FileFormat.PPTX_2013); } }