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