在Apps脚本中将text关键字替换为“Page Break”元素

时间:2018-03-22 06:29:57

标签: google-apps-script google-docs

我想用分页符替换特定的文本关键字。这是我尝试过的:

body.findText("%PAGE_BREAK%").getElement().appendPageBreak()

body.replaceText("%PAGE_BREAK%", "").asBody().appendPageBreak()

我正在尝试编辑某处有%page_break%的现有文档,并将其替换为实际的分页元素。

1 个答案:

答案 0 :(得分:2)

以下内容足以假设"%page_break%"出现在段落的末尾,或者出现在自己的段落中。脚本在文本中搜索此模式,并将PageBreak元素附加到包含找到的文本的元素(段落)的末尾。然后它删除了模式。

function pageBreaks() {
  var searchPattern = "%page_break%";
  var body = DocumentApp.getActiveDocument().getBody();
  var found = body.findText(searchPattern); 
  while (found) {
    found.getElement().getParent().appendPageBreak();
    found = body.findText(searchPattern, found);
  }
  body.replaceText(searchPattern, "");
}

在段落中放置分页符没有多大意义,但Google Docs支持此功能,并且有Paragraph.insertPageBreak方法。但是,要使用它,您需要首先拆分包含搜索模式的Text元素,以便分页符可以介于两个文本之间。 (Text元素不能包含任何其他元素。)