我有一个使用OpenXml生成文档的C#程序。它使用以下方法用值替换书签:编辑Word书签更改字体
private void FillBookmark(BookmarkStart bookmark, string value)
{
var text = new Text(value);
bookmark.RemoveAllChildren();
IEnumerable<OpenXmlElement> elementsAfter = bookmark.ElementsAfter();
IEnumerable<OpenXmlElement> insideBookmark = elementsAfter.TakeWhile(element => !(element is BookmarkEnd));
foreach (OpenXmlElement element in insideBookmark)
{
element.RemoveAllChildren();
}
OpenXmlElement previousSibling = bookmark.PreviousSibling();
while (previousSibling is BookmarkStart || previousSibling is BookmarkEnd)
{
previousSibling = previousSibling.PreviousSibling();
}
var container = new Run(text);
previousSibling.AppendChild(container);
}
在这个特定的word文档中,使用的字体是Raleway。有几个书签,执行此方法后,两个书签使用Calibri字体。我试图重写这些书签,以确保它们在Raleway中,但它们继续变为Calibri。
这怎么可能?