微软办公室互操作词:如何知道一个段落是否是一个标题

问题描述

我正在用 C# 编写一个 VSTO 插件来解析 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,但它返回标题的类型 [图、表格、公式],而不是我文档中的所有标题

解决方法

我进行了一个快速测试,作为标题的段落应用了一个内置样式,称为“标题”(par.Style.NameLocal)如果该名称始终为“标题”(或者您将其作为参数提供),则您可以将非标题段落与​​标题区分开来。

提示:编写一些测试代码并放置一个断点来检查对象并找出它们的独特之处。在这种情况下,段落/范围样式是“标题”。这是最有效的方式imo。