I have a word document which contains a custom property ("MyCustomProperty"). I would like to use C# to insert a DOCPROPERTY field with formatting and highlighting. This is what I have tried...
var myCustomProperty = "MyCustomProperty";
foreach (Microsoft.Office.Interop.Word.Section section in Document.Sections)
{
var headerRange = section.Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
foreach(Word.Field field in headerRange.Fields)
{
if(field.Type == Word.WdFieldType.wdFieldDocProperty
&& field.Code.Text.Contains(myCustomProperty))
{
//already has the header
return;
}
}
headerRange.Collapse(Word.WdCollapseDirection.wdCollapseStart);
var f = (Word.Field)headerRange.Fields.Add(headerRange,
Word.WdFieldType.wdFieldDocProperty,
myCustomProperty,
true);
f.Code.Font.Name = this.FontName;
f.Code.Font.Size = this.FontSize;
f.Code.Font.Bold = (int)this.IsBold;
f.Code.Font.Italic = (int)this.IsItalic;
f.Code.HighlightColorIndex = Word.WdColorIndex.wdYellow;
f.Update();
f.Code.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
f.Code.InsertParagraphAfter();
}
When I run this code, the field gets added to the header and is right-aligned. But the font, size, and weight are all default (Calibri (body), 11, not bold, not italic). The text is not highlighted.
What I would like is for the field to be added, right-aligned, on a line by itself, with the font, size and weight I've configured.
What am I doing wrong?