如何使用 Java 格式化 PPT 幻灯片中的文本

问题描述

如何使用 Java 格式化 PPT 幻灯片中的文本。

解决方案

以下是使用 Java 格式化 PPT 幻灯片中的文本的程序。

import java.io.File;
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 FormatTextPPT {
   public static void main(String args[]) throws IOException {

        //创建一个空的演示文稿
        XMLSlideShow ppt = new XMLSlideShow();
        
        //获取幻灯片母版对象
        XSLFSlideMaster slideMaster = ppt.getSlideMasters()[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);
        
        //移动到下一行
        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);
        
        //使文本变为斜体
        run3.setItalic(true);
        
        //删除文本
        run3.setStrikethrough(true);
        passage.addLineBreak();
        
        //格式化第 4 行
        XSLFTextRun run4 = passage.addNewTextRun();
        run4.setText(" 这是一条下划线");
        run4.setUnderline(true);
        
        //给文本加下划线
        passage.addLineBreak();
        
        //创建文件对象
        File file = new File("C:/poippt/FormatedText.pptx");
        FileOutputStream out = new FileOutputStream(file);
        
        //将更改保存到文件
        ppt.write(out);
        out.close();
        System.out.println("PPT created");
    }
}

结果

格式化文本
java_apache_poi_ppt.html