繁体   English   中英

我可以自动将标题文本添加到 Google 文档文件的页脚吗?

[英]Can I add Heading text to the footer in a Google Docs file automatically?

我有一份包含大约 20 章的文档,分为 60 多页。 每个新章节都从新页面的顶部开始。 我想做的是自动将活动章节标题添加到该页面的页脚。 我知道这种行为在 Microsoft Word 中是可能的,但我在 Google Docs 中找不到。

可以通过插入分节符手动完成,但这对我来说很不方便,因为我想在超过 1000 个不同的文档中使用这个过程。

例子:

第 1 章称为“测试章节”,从第 1 页开始 第 2 章称为“另一章”,从第 4 页开始

然后在第 1、2 和 3 页页脚应包含文本“测试章节”。 在第 4 页,页脚应包含文本“另一章”。

先感谢您!

不幸的是,这仍然不可用,并且自错误发布以来没有更新。

我一直在尝试通过 Apps 脚本来规避这个问题,但由于页脚和页眉被视为一个问题,因此一直没有合适的解决方案。

默认情况下,更改页脚部分将适用于所有页脚部分,如果它们由分节符分隔,则它们不是按页面排序,而是按添加到文档中的顺序排列,因此会很棘手,需要您按此顺序添加它们以使我的代码正常工作。

Object 订购:

命令

BODY_SECTION之后,文档的下一个孩子应该交替HEADER_SECTION然后FOOTER_SECTION

笔记:

  • Logger.log 部分代码显示了您的文档的 object 顺序是什么。 如果它看起来像上面的顺序,那么下面的代码将起作用。

代码:

function setHeaderAsFooter() {
  var d = DocumentApp.getActiveDocument();
  var p = d.getBody().getParent(); 
  
  for ( var i = 0; i < p.getNumChildren(); i += 1 ) {
    var c = p.getChild(i);
    var t = c.getType();
    // Check what type is the object
    // Comment out if-block below to see if what is the object order in your document
    Logger.log(t); 
    // Every header you encounter, set it as footer value of the next object
    if ( t === DocumentApp.ElementType.HEADER_SECTION) {
      var f = c.getNextSibling(); 
      f.asFooterSection().setText(c.asHeaderSection().getText());
    }
  }
}

如果它们不在HEADER -> FOOTERBODY之后的交替顺序中,则上面的代码将不起作用。

很可能,这不是您希望的答案,所以我真诚地道歉。 我希望这个答案至少能以任何方式帮助你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM