欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 高亮和替换PPT幻灯片中的指定文本

程序员文章站 2022-03-01 20:46:21
...

本文通过Java代码示例介绍如何来高亮和替换PPT幻灯片中的指定文本内容。

程序环境:编译环境为IntelliJ IDEA,引入Spire.Presentation.jar 3.9.0,JDK版本为1.8.0;

示例1:高亮PPT中的指定文本

import com.spire.presentation.*;
import java.awt.*;

public class FindAndHighlightText {
    public static void main(String[]args) throws  Exception{
        //加载PowerPoint文档
        Presentation ppt = new Presentation();
        ppt.loadFromFile("input.pptx");

        //获取张幻灯片
        ISlide slide = ppt.getSlides().get(2);

        //遍历所有形状
        for (Object shape : slide.getShapes())
        {
            if (shape instanceof IAutoShape)
            {
                //设置文本高亮选项
                TextHighLightingOptions options = new TextHighLightingOptions();
                options.setWholeWordsOnly(false);
                options.setCaseSensitive(true);

                //使用hightLightText()方法高亮形状中的指定文本
                ((IAutoShape) shape).getTextFrame().highLightText("原创" , Color.yellow, options);
            }
        }

        //保存结果文档
        ppt.saveToFile("HighlightSpecifiedText.pptx", FileFormat.PPTX_2013);
        ppt.dispose();
    }
}

 

示例2:替换PPT中的指定文本

import com.spire.presentation.*;

import java.util.HashMap;
import java.util.Map;

public class FindAndReplaceText {
    public static void main(String[] args) throws Exception{
        //加载PowerPoint文档
        Presentation ppt = new Presentation();
        ppt.loadFromFile("input.pptx");

        //获取张幻灯片
        ISlide slide = ppt.getSlides().get(2);

        //创建Map对象
        Map map = new HashMap();

        //将需要被替换和用于替换的文本以键值的形式添加到Map
        map.put("服务","Service");
        map.put("团结","Unity");

        //替换幻灯片中的文本
        replaceText(slide,map);

        //保存文档
        ppt.saveToFile("ReplaceText.pptx", FileFormat.PPTX_2013);
    }

    /**
     * 替换指定幻灯片中的文本
     * slide指定幻灯片
     * map以键值的形式存储需要被替换和用于替换的文本
     */
    public static void replaceText(ISlide slide, Map map) {
        for (Object shape : slide.getShapes())
        {
            if (shape instanceof IAutoShape)
            {
                for (Object paragraph : ((IAutoShape) shape).getTextFrame().getParagraphs())
                {
                    ParagraphEx paragraphEx = (ParagraphEx)paragraph;
                    for (Object key : map.keySet())
                    {
                        if (paragraphEx.getText().contains(key.toString()))
                        {
                            paragraphEx.setText(paragraphEx.getText().replace(key.toString(), map.get(key).toString()));
                        }
                    }
                }
            }
        }

    }
}

 

需要注意的是:程序代码中的源文档及结果文档路径为IDEA项目文件夹路径,文件路径可自定义。

 

 

(本文完)