0

我正在编写一个脚本来选择包含光标的段落,将文本设置为大写并将段落标题更改为 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);
}

有没有办法将段落设置为“当前”标题1?谢谢。

4

2 回答 2

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 似乎是需要重置的属性。根据情况,它们可能更多。

于 2013-11-03T15:55:32.963 回答
0

不幸的是,目前这似乎是不可能的,我认为有一个未解决的问题是相关的:问题 2373(已确认状态),您可以加注星标以了解任何增强功能。

于 2013-11-02T18:35:32.283 回答