Google 应用脚本突出显示所选文本

Google App Scripts Highlight Selected Text

我正在编写一个应用程序脚本,我正在尝试制作一个突出显示特定文本片段的功能。代码的结果是我突出显示了整行,而不仅仅是文本。

之前:

之后:

我想要的:

这是我的代码:

function myFun4(){
  var selection = DocumentApp.getActiveDocument().getSelection();
  if(selection){
    var el = selection.getRangeElements();
    Logger.log(el[0].getElement().getAttributes());
    var el0 = el[0].getElement();
    Logger.log(el0.asText());
    var highlightStyle = {};
    highlightStyle[DocumentApp.Attribute.BOLD] = true;
    highlightStyle[DocumentApp.Attribute.BACKGROUND_COLOR] = '#FFFF00';
    el0.setAttributes(highlightStyle);   
  }
}

我相信你的目标如下。

  • 您想在 Google 文档中突出显示 select 编辑的文本。

这样的话,下面的修改怎么样?

修改后的脚本:

当您使用此脚本时,请 select 在 Google 文档和 运行 脚本上添加文本。

function myFun4(){
  var selection = DocumentApp.getActiveDocument().getSelection();
  if(selection){
    selection.getRangeElements().forEach(e => {
      var range = [e.getStartOffset(), e.getEndOffsetInclusive()];
      e.getElement().asText()
        .setBackgroundColor(...range, '#FFFF00')
        .setBold(...range, true);
    });
  }
}
  • 在此修改中,使用setBackgroundColor(startOffset, endOffsetInclusive, color)setBold(startOffset, endOffsetInclusive, bold)的方法将背景颜色和粗体反映到select编辑的文本中。

  • 在您的脚本中,更改了段落的样式。我认为这可能是您遇到问题的原因。

参考文献: