2013-11-02 55 views
0

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

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?谢谢。

+0

您是否需要将标题属性用于视觉突出显示以外的其他目的?我的意思是创建一个目录或东西?我问这是因为'正常'属性是完全可用的,并没有这种固有的限制......所以它可能是一种可能的解决方法。 –

+0

我想制作一个剧本写作模板,并且出于各种原因,我更喜欢将HEADING1作为SceneHeading风格。作为解决方法,我可以将段落设置为HEADING1,然后根据自定义HEADING1设置属性... – marcomk

回答

0

不幸的是,现在看来这是不可能的,还有一个我认为相关的未解决的问题:issue 2373(状态确认),您可以对其进行演示以获知任何增强功能。

1

我找到了一个workaroud来为用户定义的标题设置一个段落。基本上,您首先使用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似乎是,需要重置属性。根据案件,他们可能会更多。

+0

好的解决方法!感谢您分享,请考虑在问题2373评论中发布。 –