范围文本上的Office Addin自定义属性

时间:2016-11-08 16:24:58

标签: vsto office-interop openxml office-addins office-automation

我想知道是否可以向我的Word加载项中的简单范围文本或段落文本添加其他属性。为简单起见,请参阅下面的代码,我可以使用文本填充文档,但另外我想存储其他但幕后信息以及该文本。最终,当这些文档经过处理阶段时,我希望这些使用Open Xml SDK读取这些自定义属性。

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");

        }

编辑:

理想情况下,我们的属性将位于生成的RunProprties中: enter image description here

1 个答案:

答案 0 :(得分:1)

不,你不能这样做。你可以使用内容控件或文本框来完成它。

对于ContentControl,您可以使用Tag(如果这类似于来源,它可能必须是唯一的,尽管描述似乎意味着它意味着您需要的目的)或{ {3}}

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.

对于文本框(Title),您可以使用ShapeAlternativeText

请注意,如果将文档另存为HTML,则更改标题(在两种情况下)或AlternativeText都可能会影响文档的显示方式。