Изменение выравнивания внутри ContentControl с помощью Office.js - PullRequest
0 голосов
/ 23 мая 2018

У меня есть следующий код:

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');, а затем доступ к свойству после синхронизации контекста).

Как правильно это сделать?

1 Ответ

0 голосов
/ 23 мая 2018

Мне немного легче "загружать" переменную, а не контекст, но в любом случае это работает.

Вы загружаете '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();
    });
});
...