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