Apache POI PPT - 格式化文本

可以使用 XSLFTextRun 类的方法格式化演示文稿中的文本。为此,您必须通过选择以下幻灯片布局之一来创建 XSLFTextRun 类对象 −

//创建空演示文稿
XMLSlideShow ppt = new XMLSlideShow();

//获取幻灯片母版对象
XSLFSlideMaster slideMaster = ppt.getSlideMasters().get(0);

//从指定列表中选择一个布局
XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);

//创建具有标题和内容布局的幻灯片
XSLFSlide slide = ppt.createSlide(slidelayout);

//选择标题占位符
XSLFTextShape body = slide.getPlaceholder(1);

//清除幻灯片中的现有文本
body.clearText();

//添加新段落
XSLFTextParagraph passage = body.addNewTextParagraph();

//创建文本运行对象
XSLFTextRun run = passage.addNewTextRun();

您可以使用 setFontSize() 设置演示文稿中文本的字体大小。

run.setFontColor(java.awt.Color.red);
run.setFontSize(24);

以下代码片段显示了如何将不同的格式样式(粗体、斜体、下划线、删除线)应用于演示文稿中的文本。

//将文本更改为粗体格式
run.setBold(true);

//将文本更改为斜体格式
run.setItalic(true)

//删除文本
run.setStrikethrough(true);

//为文本加下划线
run.setUnderlined(true);

要在段落之间设置换行符,请使用 XSLFTextParagraph 类的 addLineBreak(),如下所示 −

paragraph.addLineBreak();

下面给出了使用上述所有方法格式化文本的完整程序 −

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class TextFormating {
   public static void main(String args[]) throws IOException {
        //创建一个空的演示文稿
        XMLSlideShow ppt = new XMLSlideShow();
        
        //获取幻灯片母版对象
        XSLFSlideMaster slideMaster = ppt.getSlideMasters().get(0);
        
        //从指定列表中选择一个布局
        XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
        
        //创建带有标题和内容布局的幻灯片
        XSLFSlide slide = ppt.createSlide(slidelayout);
        
        //选择标题占位符
        XSLFTextShape body = slide.getPlaceholder(1);
        
        //清除幻灯片中的现有文本
        body.clearText();
        
        //添加新段落
        XSLFTextParagraph passage = body.addNewTextParagraph();
        
        //格式化第 1 行
        
        XSLFTextRun run1 = passage.addNewTextRun();
        run1.setText("这是一条彩色线");
        
        //设置文本颜色
        run1.setFontColor(java.awt.Color.red);
        
        //设置文本字体大小
        run1.setFontSize(24.0);
        
        //移动到下一行
        passage.addLineBreak();
        
        //格式化第 2 行
        
        XSLFTextRun run2 = passage.addNewTextRun();
        run2.setText("This is a bold line");
        run2.setFontColor(java.awt.Color.CYAN);
        
        //使文本变为粗体
        run2.setBold(true);
        passage.addLineBreak();
        
        //格式化第 3 行
        
        XSLFTextRun run3 = passage.addNewTextRun();
        run3.setText(" This is a striked line");
        run3.setFontSize(12.0);
        
        //使文本变为斜体
        run3.setItalic(true);
        
        //删除文本
        run3.setStrikethrough(true);
        passage.addLineBreak();
        
        //格式化第 4 行
        
        XSLFTextRun run4 = passage.addNewTextRun();
        run4.setText(" 这是一条下划线");
        run4.setUnderlined(true);
        
        //给文本加下划线
        passage.addLineBreak();
        
        //创建文件对象
        File file = new File("TextFormat.pptx");
        FileOutputStream out = new FileOutputStream(file);
        
        //将更改保存到文件
        ppt.write(out);
        out.close();
   }
}

将上述代码保存为 TextFormating.java,然后从命令提示符编译并执行,如下所示 −

$javac TextFormating.java
$java TextFormating

它将编译并执行以生成以下输出 −

格式化已成功完成

带有格式化文本的幻灯片显示如下 −

Formatting Text