我有以下代码:
Word.run(context => {
var range = context.document.getSelection();
var cc = range.insertContentControl();
var ccRange = cc.insertHtml(myContent, 'replace');
// ...
工作正常。如果我将文档对齐设置为Justified
,则新ContentControl内的内容也将为Justified
。我知道用户可以简单地选择内容并更改对齐,但我需要默认将其设置为Left
。
我知道如何处理字体以确保它遵循与文档相同的样式,为此我有这个代码紧跟上面的代码:
// ...
context.load(range, 'font');
context.load(ccRange, 'font');
context.sync().then(() => {
ccRange.font.color = range.font.color;
ccRange.font.highlightColor = range.font.highlightColor;
ccRange.font.name = range.font.name;
ccRange.font.size = range.font.size;
// ...
基于这个例子,我想有一种类似的方法可以改变ContentControl中的对齐方式,但到目前为止我都失败了。
如果我理解正确,ContentControl具有paragraphs
属性,并且单个段落具有alignment
属性,因此我猜测这是我需要的,但我的几次尝试在访问它时没有产生任何结果(例如context.load(cc, 'paragraphs');
,然后在上下文同步后访问该属性)。
这样做的正确方法是什么?
答案 0 :(得分:1)
我发现它更容易'#34;加载"变量而不是上下文但两种方式都有效。
您加载'paragraphs'
就像使用'font'
一样。您也可以使用'paragraphs, font'
同时加载它们,以使事情变得更简单。
例如,此代码将插入ContentControl
,插入一些HTML内容并将alignment
设置为'centered'
:
return Word.run(function (context) {
let range = context.document.getSelection();
let cc = range.insertContentControl();
let ccRange = cc.insertHtml('<b>Hello World</b>', 'Replace');
ccRange.load('font, paragraphs');
return context.sync().then(() => {
ccRange.paragraphs.items[0].alignment = 'Centered';
return context.sync();
});
});