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

求Google Docs中将'**'替换为装饰PNG的Apps Script方案

批量替换Google Docs中'**'为装饰PNG的方案

针对你的需求,下面是一套适合编程基础薄弱者的Google Docs操作方案,跟着步骤走即可完成批量替换:

步骤1:打开脚本编辑器

打开目标Google Docs文档,点击顶部菜单栏的「扩展程序」→「Apps Script」,进入脚本编辑页面。

步骤2:替换脚本代码

删除编辑器里默认的所有内容,粘贴以下代码:

function replaceAsterisksWithImage() {
  // 获取当前文档
  const doc = DocumentApp.getActiveDocument();
  const body = doc.getBody();
  
  // 要替换的目标文本:两个星号
  const targetText = '**';
  // 替换为你的装饰PNG链接,改成自己的图片URL
  const imageUrl = 'https://example.com/your-decoration.png';
  
  try {
    // 循环查找并替换所有匹配的**
    let foundElement = body.findText(targetText);
    while (foundElement) {
      const start = foundElement.getStartOffset();
      const end = foundElement.getEndOffsetInclusive();
      const textElement = foundElement.getElement();
      
      // 删除原有的**文本
      textElement.deleteText(start, end);
      // 在原位置插入装饰图片
      textElement.insertInlineImage(start, imageUrl);
      
      // 继续查找下一个**
      foundElement = body.findText(targetText, foundElement);
    }
    DocumentApp.getUi().alert('替换完成!');
  } catch (error) {
    DocumentApp.getUi().alert('替换出错:' + error.message);
  }
}

步骤3:配置图片链接

把代码里的'https://example.com/your-decoration.png'替换成你自己的装饰PNG公开访问链接(图片需能被Google Docs访问,比如存在Google Drive并设为公开共享,或放在可访问的图床)。

步骤4:运行脚本

  1. 点击脚本编辑器顶部的「保存」按钮,给脚本起个简单名字(比如ReplaceAsterisks)。
  2. 点击「运行」按钮,第一次运行会触发权限申请,按提示完成授权(这是脚本访问文档的必要安全操作)。
  3. 授权完成后脚本自动执行,返回文档即可看到所有文本形式的'**'已替换为装饰图片。

可选调整

  • 调整图片大小:若图片尺寸不合适,在插入图片的代码后添加以下两行(按需修改数值):
    const insertedImage = textElement.getChild(start).asInlineImage();
    insertedImage.setWidth(25); // 设置宽度为25像素
    insertedImage.setHeight(25); // 设置高度为25像素
    
  • 只替换选中内容:若只想处理某一章内容,先选中目标区域,再用以下脚本替换原代码:
    function replaceInSelectedText() {
      const doc = DocumentApp.getActiveDocument();
      const selection = doc.getSelection();
      
      if (!selection) {
        DocumentApp.getUi().alert('请先选中要替换的内容!');
        return;
      }
      
      const targetText = '**';
      const imageUrl = 'https://example.com/your-decoration.png';
      
      const selectedElements = selection.getSelectedElements();
      selectedElements.forEach(item => {
        if (item.isPartial()) {
          const textElem = item.getElement().asText();
          const start = item.getStartOffset();
          let text = textElem.getText().substring(start);
          let index = text.indexOf(targetText);
          
          while (index !== -1) {
            textElem.deleteText(start + index, start + index + 1);
            textElem.insertInlineImage(start + index, imageUrl);
            text = textElem.getText().substring(start);
            index = text.indexOf(targetText);
          }
        } else {
          const textElem = item.getElement().asText();
          let found = textElem.findText(targetText);
          while (found) {
            const startOffset = found.getStartOffset();
            const endOffset = found.getEndOffsetInclusive();
            textElem.deleteText(startOffset, endOffset);
            textElem.insertInlineImage(startOffset, imageUrl);
            found = textElem.findText(targetText, found);
          }
        }
      });
      
      DocumentApp.getUi().alert('选中内容替换完成!');
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:20:28