google-apps-script - 我可以使用Google Apps脚本为Google文档中的某些单词着色吗?

标签 google-apps-script google-docs

我正在尝试突出显示Google文档中的某些单词。我知道我可以使用document.replace替换文本,但是它仅替换字符串本身,而不格式化。是否可以使用Google Apps脚本用彩色字符串替换字符串?

最佳答案

这是一个更好的解决方案:

function highlightTextTwo() {
  var doc  = DocumentApp.openById('<your document id');
  var textToHighlight = 'dusty death';
  var highlightStyle = {};
  highlightStyle[DocumentApp.Attribute.FOREGROUND_COLOR] = '#FF0000';
  var paras = doc.getParagraphs();
  var textLocation = {};
  var i;

  for (i=0; i<paras.length; ++i) {
    textLocation = paras[i].findText(textToHighlight);
    if (textLocation != null && textLocation.getStartOffset() != -1) {
      textLocation.getElement().setAttributes(textLocation.getStartOffset(),textLocation.getEndOffsetInclusive(), highlightStyle);
    }
  }
}


上一个答案:

关键是能够仅引用您要涂色的单词。

我的解决方案是:

获取包含您要着色的单词的段落文本,删除原始段落,然后再添加文本的每个部分。在将每个部分添加回时,appendText返回对添加的文本的引用,然后可以使用setForegroundColor()指定其颜色:

function highlightText() {
  var doc = DocumentApp.openById('<your document id>');
  var textToHighlight = 'dusty death';
  var textLength = textToHighlight.length;
  var paras = doc.getParagraphs();
  var paraText = '';
  var start;
  for (var i=0; i<paras.length; ++i) {
    paraText = paras[i].getText();
    start = paraText.indexOf(textToHighlight);
    if (start >= 0) {
      var preText = paraText.substr(0, start);
      var text = paraText.substr(start, textLength);
      var postText = paraText.substr(start + textLength, paraText.length);
      doc.removeChild(paras[i]);
      var newPara = doc.insertParagraph(i, preText);
      newPara.appendText(text).setForegroundColor('#FF0000');
      newPara.appendText(postText).setForegroundColor('#000000');
    }
  }
}

关于google-apps-script - 我可以使用Google Apps脚本为Google文档中的某些单词着色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12064972/

相关文章:

javascript - 以编程方式发送电子邮件

google-apps-script - 删除或删除导出为 CSV 的 Google Sheet 脚本的第一行

google-apps-script - 如何获取谷歌文档中行尾字符的位置

iphone - Google 文档 OCR 实现 iPhone

javascript - 使用 JavaScript 将数字缩写(5.2k、1.7m 等)转换为有效整数

google-apps-script - 是否可以使用 Apps 脚本添加归因于 Google 文档中特定文本的评论?

forms - 将日期选择器添加到谷歌电子表格表单

javascript - Google 脚本 xls 附件不显示

google-apps-script - 在脚本中从公共(public)可读的 Google Sheet 获取数据

google-docs - 如何获取谷歌文档的应用程序名称?