How to Merge Word Documents and Generate TOC in .NET Core DocIO?
Syncfusion® DocIO is a .NET Word Library used to create, read, edit, and convert Word documents programmatically without Microsoft Word or interop dependencies. Using this library, you can merge Word documents and generate TOC in the Word document using C#.
Steps to merge Word documents and generate TOC in the Word document using C#:
- Create a new C# .NET Console application project.
- Install the Syncfusion.DocIO.Net.Core and Syncfusion.DocIORenderer.Net.Core NuGet packages as a reference to your project from NuGet.org.
Updating TOC makes use of Word to PDF assemblies. So, we recommend you to use Word to PDF Assemblies or NuGet packages as a reference in your application.
Starting with v16.2.0.x, if you reference Syncfusion® assemblies from a trial setup or from the NuGet feed, include a license key in your projects. Refer to the link to learn about generating and registering a Syncfusion® license key in your application to use the components without a trial message.
- Include the following namespaces in Program.cs file.
C#
using Syncfusion.DocIO.DLS;
using Syncfusion.DocIO;
using Syncfusion.DocIORenderer;
- Use the following code snippet in Program.cs file, to merge Word documents and generate TOC in the Word document.
C#
// Get the Source document names from the folder.
string[] sourceDocumentNames = Directory.GetFiles(@"../../../Data/");
// Create a WordDocument instance for the destination document.
using (WordDocument destinationDocument = new WordDocument())
{
// Add a section and paragraph to the destination document.
IWSection section = destinationDocument.AddSection();
IWParagraph paragraph = section.AddParagraph();
// Appends the TOC field with LowerHeadingLevel and UpperHeadingLevel to determine the TOC entries.
paragraph.AppendTOC(1, 3);
// Merge each source document to the destination document.
foreach (string subDocumentName in sourceDocumentNames)
{
// Open the source document files as a stream.
using (FileStream sourceDocumentPathStream = new FileStream(Path.GetFullPath(subDocumentName), FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
// Open the source documents.
using (WordDocument sourceDocument = new WordDocument(sourceDocumentPathStream, FormatType.Docx))
{
// Set the break-code of the first section of the source document as NoBreak to avoid importing from a new page.
sourceDocument.Sections[0].BreakCode = SectionBreakCode.NoBreak;
// Import the contents of the source document at the end of the destination document.
destinationDocument.ImportContent(sourceDocument, ImportOptions.UseDestinationStyles);
}
}
}
// Update the table of contents.
destinationDocument.UpdateTableOfContents();
// Save the destination document.
using (FileStream outputStream = new FileStream(@"../../../Output.docx", FileMode.Create, FileAccess.Write))
{
destinationDocument.Save(outputStream, FormatType.Docx);
}
}
You can download a complete working sample to merge Word documents and generate TOC in the Word document from GitHub.
Take a moment to peruse the documentation where you can find basic Word document processing options along with features like mail merge, merge, split, and compare Word documents, find and replace text in the Word document, protect Word documents, and most importantly, the PDF and Image conversions with code examples.
Conclusion
I hope you enjoyed learning about how to merge Word documents and generate TOC in .NET DocIO.
You can refer to our ASP.NET Core DocIO feature tour page to learn about its other groundbreaking feature representations and documentation, and how to quickly get started with configuration specifications. You can also explore our ASP.NET Core DocIO example to understand how to create and manipulate data.
For current customers, you can check out our components from the License and Downloads page. If you are new to Syncfusion®, you can try our 30-day free trial to check out our other controls.
If you have any queries or require clarifications, please let us know in the comments section below. You can also contact us through our support forums, Direct-Trac, or feedback portal. We are always happy to assist you!