You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GAS结合Google Slides API为搜索到的幻灯片文本添加划线的可行性咨询

需求实现说明

该需求可以实现,Google Slides没有直接提供获取指定文本片段坐标的原生API,但有两种成熟方案可以满足要求:

方案1:使用原生文本样式实现(推荐,实现成本极低)

不需要手动绘制线条,直接给匹配到的文本片段设置删除线属性即可,效果和手动绘制的划线一致,而且会跟随文本位置自动调整,适配文本框移动、内容修改等场景,示例代码如下:

function addStrikethroughToMatchedText() {
  const myPresentation = SlidesApp.getActivePresentation();
  // 可根据需求指定特定幻灯片,这里默认遍历所有幻灯片
  const slides = myPresentation.getSlides();
  slides.forEach(slide => {
    const pageElements = slide.getPageElements();
    pageElements.forEach(elem => {
      if (elem.getPageElementType() === SlidesApp.PageElementType.SHAPE) {
        const shapeText = elem.asShape().getText();
        // 替换为你需要搜索的目标文本
        const matchedTextRanges = shapeText.find("hello");
        matchedTextRanges.forEach(range => {
          // 直接给匹配文本添加删除线样式
          range.getTextStyle().setStrikethrough(true);
        });
      }
    })
  })
}

方案2:手动绘制独立线条

如果你的场景要求必须使用独立的线条元素(不能用文本自带的删除线),可以通过以下逻辑手动计算坐标:

  • 先获取文本框的绝对坐标、内边距、文本字号、字体、行高、对齐方式等基础属性
  • 统计匹配文本起始位置之前所有字符的总宽度,结合当前行高计算出匹配文本的相对坐标,叠加文本框的绝对坐标得到页面级的起止坐标
  • 如果匹配文本跨越多行,需要拆分到每一行分别计算坐标、绘制线条
    该方案实现复杂度较高,需要自行适配不同字体、字号、字间距、换行的场景,没有特殊要求不建议使用。

内容的提问来源于stack exchange,提问作者lucky1928

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:30:01