Available for: UI for ASP.NET MVC | UI for ASP.NET AJAX | UI for Blazor | UI for WPF | UI for WinForms | UI for Xamarin | UI for WinUI | UI for ASP.NET Core | UI for .NET MAUI

New to Telerik Document Processing? Download free 30-day trial

Docx

DOCX, a part of Office Open XML, is a zipped, XML-based file format developed by Microsoft for representing word processing document and is one of the supported formats by RadWordsProcessing. It is the default target format for Microsoft Word since Microsoft Office 2007.

DocxFormatProvider is compliant with the latest Office Open XML standard - ECMA-376 4th edition, December 2012.

Using DocxFormatProvider

DocxFormatProvider makes it easy to import and export RadFlowDocument to/from DOCX format, preserving the entire document structure and formatting.

All you have to do in order to use DocxFormatProvider is add references to the assemblies listed below:

  • Telerik.Windows.Documents.Core.dll
  • Telerik.Windows.Documents.Flow.dll
  • Telerik.Windows.Zip.dll

Import

In order to import a DOCX document, you need to use the Import() method of DocxFormatProvider.

The code in Example 1 shows how to use DocxFormatProvider to import a DOCX document from a file.

Example 1: Import document from a file

Telerik.Windows.Documents.Flow.Model.RadFlowDocument document; 
 
Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider provider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider(); 
 
using (Stream input = File.OpenRead("Sample.docx")) 
{ 
    //document = provider.Import(input); //This method is obsolete since Q4 2024. 
 
    document = provider.Import(input, TimeSpan.FromSeconds(10)); 
} 

And here is how you can import a document from byte array containing the DOCX document:

Example 2: Import document from a byte array

Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider provider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider(); 
 
//Telerik.Windows.Documents.Flow.Model.RadFlowDocument document = provider.Import(input); //This method is obsolete since Q4 2024. 
 
Telerik.Windows.Documents.Flow.Model.RadFlowDocument document = provider.Import(input, TimeSpan.FromSeconds(10)); 

The resulting RadFlowDocument can be manipulated like any code-generated document.

Export

In order to export a document to DOCX, you need to use the Export() method of DocxFormatProvider.

Example 3 shows how to use DocxFormatProvider to export RadFlowDocument to a file.

Example 3: Export a document to a file

Telerik.Windows.Documents.Flow.Model.RadFlowDocument document; 
 
Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider provider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider(); 
 
using (Stream output = File.OpenWrite("Sample.docx")) 
{ 
    document = CreateRadFlowDocument(); // CreateRadFlowDocument() is a custom method that creates a simple instance of RadFlowDocument. You can replace it with the instance you would like to export. 
 
    //provider.Export(document, output); //This method is obsolete since Q4 2024. 
 
    provider.Export(document, output, TimeSpan.FromSeconds(10)); 
} 

You can also export the document to a byte array and preserve it in a database.

Example 4: Export a document to a byte array

Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider provider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider(); 
 
Telerik.Windows.Documents.Flow.Model.RadFlowDocument document = CreateRadFlowDocument(); // CreateRadFlowDocument() is a custom method that creates a simple instance of RadFlowDocument. You can replace it with the instance you would like to export. 
 
//byte[] output = provider.Export(document); //This method is obsolete since Q4 2024. 
 
byte[] output = provider.Export(document, TimeSpan.FromSeconds(10)); 
The resulting documents can be opened in any application that supports DOCX documents.
In this article