有光标,如何在Google Doc中插入(不附加)段落

时间:2017-06-01 21:55:18

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

我正在为Google文档侧边栏编写一个简单的Google脚本,我面临以下问题:我必须在光标所在的位置插入一些文字

该文本必须是段落,因为它是必须与其他文本分开的特定代码。接下来是代码(工作)

function insertText(actionObject) {
  var cursor = DocumentApp.getActiveDocument().getCursor();

  var stringToInsert = "\nblablabla";

  cursor.insertText(stringToInsert);
}

问题是Google将\n替换为\r,因此它只是一个分隔线,而不是段落。这意味着,我的代码可以正常工作,但从技术角度来看并不如预期。

我不能使用appendParagraph函数,因为它总是在文件的末尾添加它(并且可能需要在文件的中间添加该段落。)

所以,我必须使用Body对象可用的insertParagraph(childIndex, paragraph)方法。但是有了光标,我找不到一种方法可以让我找到我当前的段落位置并在之前插入一个新位置...

有人可以帮我吗?

提前致谢!!

2 个答案:

答案 0 :(得分:1)

要插入段落,请使用insertParagraph(childIndex,text)

function insertMyText(){
  var myText = 'My Text';
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var cursor = doc.getCursor();
  var element = cursor.getElement();
  var container = element.getParent();
  try {
    var childIndex = body.getChildIndex(container);
    body.insertParagraph(childIndex, myText);
  } catch (e) {
    DocumentApp.getUi().alert("There was a problem: " + e.message);
  }
}

答案 1 :(得分:-1)

如果您希望能够将光标放在段落的中间,然后让您插入的文本成为新段落,您可以尝试:

function insertText() {
  var cursor = DocumentApp.getActiveDocument().getCursor();

  var stringToInsert = "\n\nWords to enter\n\n";

  cursor.insertText(stringToInsert);
}

会创建一个新段落,其中包含"要输入的字词"在它之前和之后有一个空行。