【问题标题】:Google App Scripts Highlight Selected Text谷歌应用脚​​本突出显示选定的文本
【发布时间】:2021-09-25 01:59:59
【问题描述】:

我正在编写一个应用程序脚本,并且正在尝试创建一个突出显示特定文本的函数。代码的结果是我突出显示了整行,而不仅仅是文本。

之前:

之后:

我想要什么:

这是我的代码:

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);   
  }
}

【问题讨论】:

    标签: javascript google-apps-script google-docs


    【解决方案1】:

    我相信你的目标如下。

    • 您想在 Google 文档中突出显示选定的文本。

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

    修改脚本:

    当您使用此脚本时,请在 Google Document 上选择一个文本并运行该脚本。

    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)的方法将背景颜色和粗体反映到所选文本中。

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

    参考资料:

    【讨论】:

    • 太棒了!我以前没有见过...range,我不确定那里发生了什么。但它有效并且很棒。谢谢!
    • @gus 感谢您的回复。我很高兴你的问题得到了解决。关于...range,... 是扩展语法。 Ref 在上面的脚本中,...range 表示e.getStartOffset(), e.getEndOffsetInclusive()。
    猜你喜欢
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多