本文通过Java代码示例介绍如何来高亮和替换PPT幻灯片中的指定文本内容。
程序环境:编译环境为IntelliJ IDEA,引入Spire.Presentation.jar 3.9.0,JDK版本为1.8.0;
示例1:高亮PPT中的指定文本
class="java" name="code">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项目文件夹路径,文件路径可自定义。
?
?
(本文完)