`

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

阅读更多

本文通过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项目文件夹路径,文件路径可自定义。

 

 

(本文完)

0
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics