Я хотел бы узнать, можно ли добавить дополнительные атрибуты в простой текст диапазона или текст абзаца из моего надстройки 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:
Word закладки также являются хорошим вариантом (с использованием имени закладки, аналогичного тегу управления содержимым) –
Крис, оцените быстрый ответ. Мы рассмотрели ContentControls, и пока они не обеспечивают визуальный внешний вид, а окно их свойств не содержит достаточных параметров форматирования. Например, я хочу, чтобы что-то отформатировалось как десятичное с точностью до 2. Я думал, что цель «Open XML» заключается в том, что мы могли бы расширить наше решение? См. Снимок экрана из полученного Xml. В идеале мы просто добавим наш материал в «RunProperties». Если это невозможно, можно ли изменить эстетику ContentControl и переопределить его диалог свойств? – Mike
Эй, Дирк, спасибо. Мы хотели бы сохранить больше атрибутов, связанных с частью встроенного контента. См. Снимок экрана, который я приложил. Этот «RunProprerties» идеален. Как я могу писать на него? – Mike