我希望从google doc获取所有属性,如( BOLD,UNDERLINE,FOREGROUND_COLOR,FONT_SIZE 等)。但是在使用getAttributes时我得到NULL值。 以下是我的代码。
var fields = doc.getNamedRanges("myFields");
var lastFontColor;
for(var i = 0; i < fields.length; i++)
{
var rangeElement = fields[i].getRange().getRangeElements()[0];
var obj= rangeElement.getElement().asText().editAsText();
var element= rangeElement.getElement().asText();
var atts = obj.getAttributes();
for (var att in atts)
{
Logger.log("value of " + att + ":" + atts[att]);
}
}
我得到的输出: -
FONT_SIZE:
null
ITALIC:null
STRIKETHROUGH:null
FOREGROUND_COLOR:#0000ff
\前面的颜色来自某些元素 BOLD:null
如果有其他方法可以,请告诉我。
答案 0 :(得分:1)
不幸的是,这是Google文档中反复出现的问题。一些样式属性返回&#39; null&#39;除非在代码中明确设置。
例如,在执行下面的文档绑定脚本后,我得到了&#39; null&#39; PAGE_MARGIN和PAGE_WIDTH显示正确值时FONT_SIZE,FONT_FAMILY和其他一些属性的值:
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var styles = body.getAttributes();
Logger.log(styles);
但是,如果在脚本中显式设置这些属性,则记录body.getAttributes()的输出将返回这些新值
var styles = {};
styles[DocumentApp.Attribute.FONT_FAMILY] = "Times New Roman";
styles[DocumentApp.Attribute.FONT_SIZE] = 16;
body.setAttributes(styles);