在 Apps 脚本中用 "Page Break" 元素替换文本关键字

Replace a text keyword with a "Page Break" element in Apps Script

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

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

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

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

假设“%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 方法。但是,要使用它,您需要首先拆分包含搜索模式的文本元素,以便分页符可以位于两个文本之间。 (文本元素不能包含任何其他元素。)