microsoft office interop word:如何知道一个段落是否是标题

microsoft office interop word: how to know if a paragraph is a caption

我正在用 C# 编写 VSTO add-ins 来解析 Office Word 文档。

我必须检查文档的每张图是否都有标题标签。 我设法知道段落何时包含图:

var activeDoc = Globals.ThisAddIn.Application.ActiveDocument;


for (int i = 0; i < activeDoc.Paragraphs.Count; i++)
{
    Paragraph par = activeDoc.Paragraphs[i + 1];

    if (par.Range.InlineShapes.Count == 1)
    {
        // the paragraph has an image
    }
}

但我看不出有什么方法可以知道该段落是标题还是简单文本。

我尝试使用 CaptionLabels 但它 returns 标题的类型 [图、Table、方程] 而不是我文档中的所有标题。

我 运行 进行了快速测试,作为标题的段落应用了称为 'Caption' (par.Style.NameLocal) 的内置样式,如果该名称始终为 'Caption' (或者您将其作为参数提供)然后您可以区分 non-caption 段落和字幕。

作为提示:编写一些测试代码并放置一个断点来检查 objects 并找出它们的独特之处。在这种情况下,paragraph/range 样式是 'Caption'。这是最有效的方法。