演示文稿中的文本可以使用 XSLFTextRun 类的方法进行格式化.为此,您必须通过选择其中一个幻灯片布局来创建 XSLFTextRun 类对象,如下所示 :
//create the empty presentation XMLSlideShow ppt = new XMLSlideShow();//getting the slide master objectXSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];//select a layout from specified listXSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);//creating a slide with title and content layoutXSLFSlide slide = ppt.createSlide(slidelayout);//selection of title place holderXSLFTextShape body = slide.getPlaceholder(1);//clear the existing text in the slidebody.clearText();//adding new paragraphXSLFTextParagraph paragraph = body.addNewTextParagraph();//creating text run objectXSLFTextRun run = paragraph.addNewTextRun();
您可以使用 setFontSize()设置演示文稿中文字的字体大小.
run.setFontColor(java.awt.Color.red);run.setFontSize(24);
以下代码段显示如何将不同的格式样式(粗体,斜体,下划线,删除线)应用于演示文稿中的文本.
//change the text into bold formatrun.setBold(true);//change the text it to italic formatrun.setItalic(true)// strike through the textrun.setStrikethrough(true);//underline the textrun.setUnderline(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 { //creating an empty presentation XMLSlideShow ppt = new XMLSlideShow(); //getting the slide master object XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0]; //select a layout from specified list XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT); //creating a slide with title and content layout XSLFSlide slide = ppt.createSlide(slidelayout); //selection of title place holder XSLFTextShape body = slide.getPlaceholder(1); //clear the existing text in the slide body.clearText(); //adding new paragraph XSLFTextParagraph paragraph = body.addNewTextParagraph(); //formatting line 1 XSLFTextRun run1 = paragraph.addNewTextRun(); run1.setText("This is a colored line"); //setting color to the text run1.setFontColor(java.awt.Color.red); //setting font size to the text run1.setFontSize(24); //moving to the next line paragraph.addLineBreak(); //formatting line 2 XSLFTextRun run2 = paragraph.addNewTextRun(); run2.setText("This is a bold line"); run2.setFontColor(java.awt.Color.CYAN); //making the text bold run2.setBold(true); paragraph.addLineBreak(); //formatting line 3 XSLFTextRun run3 = paragraph.addNewTextRun(); run3.setText(" This is a striked line"); run3.setFontSize(12); //making the text italic run3.setItalic(true); //strike through the text run3.setStrikethrough(true); paragraph.addLineBreak(); //formatting line 4 XSLFTextRun run4 = paragraph.addNewTextRun(); run4.setText(" This an underlined line"); run4.setUnderline(true); //underlining the text paragraph.addLineBreak(); //creating a file object File file = new File("TextFormat.pptx"); FileOutputStream out = new FileOutputStream(file); //saving the changes to a file ppt.write(out); out.close(); }}
将上述代码保存为 TextFormating.java ,然后编译并执行它从命令提示符如下 :
$javac TextFormating.java$java TextFormating
它将编译并执行以生成以下输出 :
Formatting completed successfully
格式化文本的幻灯片显示如下 :