本文以Java程序代码为例介绍如何来替换PPT幻灯片中的指定文本。编译环境为IDEA,程序中引入Spire.Presentation.
jar,jdk版本为1.8.0。
详细代码如下:
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()));
}
}
}
}
}
}
}
指定文本前后替换效果对比,如图:
