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
它将编译并执行以生成以下输出 −
格式化已成功完成
带有格式化文本的幻灯片显示如下 −

