Google Apps脚本 - 迭代段落中的字词

tmo*_*226 5 javascript google-docs google-apps-script

所以基本上我有一个带有下划线文字的段落,但并非所有文字都加下划线.我希望能够遍历所选文本并更改UN加下划线文本的文本大小.

基本上我希望带下划线的文本更加突出.有没有办法迭代段落并检查每个单词是否加下划线?GAS中的文本元素有一个isUnderlined()函数,但这对我没有好处,因为我只知道如何抓取整个元素.

感谢您的帮助!对不起,如果这令人困惑.如果需要,我可以解释更多.

小智 3

最简单的方法是遍历段落中的每个字符。

function notUnder() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var paragraph = body.getChild(0); //Analyze the first paragraph in document
  var txt = paragraph.asParagraph().getChild(0); //assumes the paragraph only has text
  var len = txt.asText().getText().length;
  for (var i = 0; i<len; i++) {
    var isUnder = txt.asText().isUnderline(i);
    if (!isUnder) {
      txt.asText().setFontSize(i,i,10); //sets the character to font size 10 if is not underlined
    };
  };
};
Run Code Online (Sandbox Code Playgroud)

这将使所有不带下划线的字符的字体大小为 10。如果一个单词只有一个带下划线的字符,则该单词中的所有其他字符的大小将为 10。这可以实现不同的行为,但只是一个起点。 ..