Google文档:按当前文档中的定义设置标题

时间:2013-11-02 15:20:31

标签: google-apps-script google-drive-api google-docs

我正在编写一个脚本来选择包含光标的段落,将文本设置为大写并将段落标题更改为HEADING1。 但是,段落设置为“全局”HEADING1,而不是当前文档中定义的HEADING1。这是代码。

function SetSceneHeading() {
  var cursor = DocumentApp.getActiveDocument().getCursor();
  var element = cursor.getElement();
  var paragraph = [];
  if (element.getType() != 'PARAGRAPH') {
    paragraph = element.getParent().asParagraph();
  }
  else paragraph = element.asParagraph();
  var txt = paragraph.getText();
  var TXT = txt.toUpperCase();
  paragraph.setText(TXT);
  paragraph.setHeading(DocumentApp.ParagraphHeading.HEADING1);
}

有没有办法将段落设置为'当前'HEADING1?感谢。

2 个答案:

答案 0 :(得分:2)

我找到了一个工作区,用于将段落设置为用户定义的标题。基本上,您首先使用setHeading()设置标题,然后将上一个操作搞砸的属性设置为“null”。这样,段落根据用户定义的标题设置。

 function MyFunction ()
 var paragraph = ....
 paragraph.setHeading(DocumentApp.ParagraphHeading.HEADING1);
 paragraph.setAttributes(ResetAttributes());


 function ResetAttributes() {
 var style = {};
 style[DocumentApp.Attribute.FONT_SIZE] = null;
 style[DocumentApp.Attribute.BOLD] = null;
 style[DocumentApp.Attribute.SPACING_BEFORE] = null;
 style[DocumentApp.Attribute.SPACING_AFTER] = null;
 return style;
 }

我做了一些测试,FONT_SIZE BOLD SPACING_BEFORE SPACING_AFTER似乎是需要重置的属性。根据案例,他们可能更多。

答案 1 :(得分:0)

不幸的是,现在看来这是不可能的,我认为有一个公开的问题是相关的:issue 2373(状态已确认),您可以通过它来获取任何增强功能。