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