0

Я хотел бы узнать, можно ли добавить дополнительные атрибуты в простой текст диапазона или текст абзаца из моего надстройки Word. Для простоты см. Код ниже, где я могу заполнить документ текстом, но, кроме того, я хотел бы сохранить дополнительную информацию, кроме как за кулисами, вместе с этим текстом. В конечном итоге я хочу, чтобы эти атрибуты читали эти пользовательские атрибуты, используя Open Xml SDK, когда эти документы проходят стадию обработки.Office Addin Custom Attributes on Range Text

private void AddAttributedContent(string documentContent) 
     { 
      var doc = Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveDocument); 
      var range = doc.Range(); 
      range.Font.Size = 12; 
      range.Font.Name = "Calibri"; 
      range.Underline = Word.WdUnderline.wdUnderlineSingle; 
      range.Text = documentContent; 
      // range.AddOpenXmlProperty("MyProp", "MyValue"); 

      var para = doc.Paragraphs.Add(); 
      para.Range.Text = documentContent; 
      //para.AddCustomProperty("MyProp", "MyVal"); 

     } 

Edit:

В идеале наша собственность будет сидеть внутри результирующих RunProprties: enter image description here

ответ

1

Нет, вы не можете сделать это. Возможно, вы могли бы сделать это с помощью элемента управления контентом или текстового поля.

Для ContentControl, вы могли бы использовать Tag (если это, как источники, это, вероятно, должен быть уникальным, хотя описание, кажется, подразумевает, что это означало для этой цели вам нужно) или Title.

The Tag property is different from the Title property in that a tag is never displayed while a user edits a document. Instead, developers can use it to store a value for programmatic manipulation while the document is opened. 

Для текстового поля (а Shape), вы можете использовать AlternativeText или Title.

Обратите внимание, что изменение названия (в обоих случаях) или AlternativeText, вероятно, повлияет на способ отображения документа, если вы сохраните его как HTML.

+1

Word закладки также являются хорошим вариантом (с использованием имени закладки, аналогичного тегу управления содержимым) –

+0

Крис, оцените быстрый ответ. Мы рассмотрели ContentControls, и пока они не обеспечивают визуальный внешний вид, а окно их свойств не содержит достаточных параметров форматирования. Например, я хочу, чтобы что-то отформатировалось как десятичное с точностью до 2. Я думал, что цель «Open XML» заключается в том, что мы могли бы расширить наше решение? См. Снимок экрана из полученного Xml. В идеале мы просто добавим наш материал в «RunProperties». Если это невозможно, можно ли изменить эстетику ContentControl и переопределить его диалог свойств? – Mike

+0

Эй, Дирк, спасибо. Мы хотели бы сохранить больше атрибутов, связанных с частью встроенного контента. См. Снимок экрана, который я приложил. Этот «RunProprerties» идеален. Как я могу писать на него? – Mike