c#如何在Word中获取标准字体样式对象



我正在将*.html文件中的可变文本插入Word文档,并且必须使插入文本的字体(名称和大小(适应文档的其余部分。我有一个可行的解决方案,但我不喜欢这样做,所以我正在搜索另一种方法,从Word应用程序中获得标准字体名称和大小。另一个问题是NameLocal可以使用不同的语言。因此,我还需要另一种方法来查找Headers。我已经尝试过Style.Type,但它的值始终为"1"到目前为止我的代码:

foreach (Word.Style style in Globals.ThisAddIn.Application.ActiveDocument.Styles)
{
if (style.NameLocal.Equals("Normal")) // find correct style object
{
float size = style.Font.Size;
string font = style.Font.Name;
foreach (Word.Paragraph paragraph in Globals.ThisAddIn.Application.ActiveDocument.Paragraphs)
{
if (paragraph.Range.get_Style().NameLocal.Contains("Heading")) // find all headers
{
paragraph.Range.Font.Size = size;
paragraph.Range.Font.Name = font;
}
}
break;
}
}

我之所以不简单地更改样式,是因为页眉仍然标记为页眉。我对atm 一无所知

对于内置样式,Word对象模型提供枚举WdBuiltinStyle。使用它而不是string值(样式的本地名称(可以使指定样式语言独立。此外,内置样式将始终存在于文档中,因此无需循环文档的Styles集合来获得特定样式。

例如:

Word.Document doc = Globals.ThisAddin.Application.ActiveDocument;
Word.Style style = doc.Styles[Word.WdBuildinStyle.wdStyleNormal];
float size = style.Size;
string font = style.Font.Name;
foreach (Word.Paragraph paragraph in doc)
{
if (paragraph.Range.get_Style() = Word.WdBuildinStyle.wdStyleHeading1)
{
paragraph.Range.Font.Size = size;
paragraph.Range.Font.Name = font;
}
}

最新更新