Extract table of contents from Microsoft Office Word documents

To extract table of contents from Microsoft Office Word document GetToc method is used. Table of contents is generated by paragraphs with H1-H9 build-in styles.

GetToc method returns a collection of TocItem objects. TocItem.GetText method returns a text from the chapter to which table of contents item refers (without sub-chapters). For example, “Heading 1.2” from the page

returns the following text:

“Heading 2” from the page:

returns the following text:

Here are the steps to extract a text by an item of table of contents:

  • Instantiate Parser object for the initial document;
  • Call GetToc method and obtain the collection of TocItem objects;
  • Iterate through the collection and extract a text.

The following example shows how to extract a text by an item of table of contents:

// Create an instance of Parser class
using (Parser parser = new Parser(Constants.SampleDocxWithToc))
{
    // Get table of contents
    IEnumerable<TocItem> tocItems = parser.GetToc();
    // Iterate over items
    foreach (TocItem tocItem in tocItems)
    {
        // Print the text of the chapter
        using (TextReader reader = tocItem.GetText())
        {
            Console.WriteLine("----");
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}

More resources

GitHub examples

You may easily run the code above and see the feature in action in our GitHub examples:

Free online document parser App

Along with full featured .NET library we provide simple, but powerful free Apps.

You are welcome to parse documents and extract data from PDF, DOC, DOCX, PPT, PPTX, XLS, XLSX, Emails and more with our free online Free Online Document Parser App.