我正在使用外接程序将纯文本段落插入到我的Word文档中,但是我想在此段落的某些单词上放置内容控件while插入此段落。有什么办法可以做到这一点,还是只有在插入文本之后内容控件才能起作用?
是的,有可能通过修改该工具提供的示例,在Script Lab中编写,如以下代码片段所示。
诀窍是使用(至少)两个范围,一个用于文本,另一个用于内容控件,如下面的代码片段所示,并在最后的屏幕快照中进行了说明。
说明
起始点是对应于目标区域的range
(本示例假设整个文档)。然后将其“复制”到新的range
对象,以插入要插入的文本(本示例假定该文本应位于现有内容的末尾)。
将新文本内容(直到需要内容控件的位置插入到新的段落中(“在新行中”)-字符串开头的\n
。
然后在内容控件的文本范围的末尾实例化一个新的range
。它已插入,格式化并为其分配了文本。
然后将文本目标range
设置为内容控制范围的after,并附加文本“追加”。
代码
await Word.run(async (context) => {
let rngDoc = context.document.body.getRange("Content");
let rngTarget = rngDoc.getRange("End");
rngDoc.load("text");
await context.sync();
console.log(rngDoc.text);
rngTarget.insertText("\nStart: ", "Start");
let rngCC = rngTarget.getRange("End");
let cc = rngCC.insertContentControl();
cc.appearance = Word.ContentControlAppearance.boundingBox;
cc.insertText("In content control", "Replace");
rngTarget = rngCC.getRange("After");
rngTarget.insertText(" End.", "After");
await context.sync();
console.log("Content controls inserted: " );
});
结果