Convert EPUB to DOCX in C#

DOCX is a well-known format for Microsoft Word documents. This format is popular because it supports a wide range of formatting features and offers users a variety of options to write any type of document. DOCX files can be opened with Word 2007 and lateral versions but not with the earlier versions of MS Word, which support DOC file extensions. EPUB to DOCX conversion is often required to take advantage of DOCX format for specific user tasks.

In this article, you find information on how to convert EPUB to DOCX using ConvertEPUB() methods of the Converter class and how to apply DocSaveOptions and ICreateStreamProvider parameters.

Online EPUB Converter

You can convert EPUB to other formats with Aspose.HTML for .NET API in real time. First, load an EPUB file from your local drive and then run the example. The save options in the example are set by default. You will immediately receive the conversion result as a separate file.

                
            

If you want to convert EPUB to DOCX programmatically, please see the following C# code examples.

EPUB to DOCX by two lines of code

The static methods of the Converter class are primarily used as the easiest way to convert an EPUB file into various formats. For example, you can convert EPUB to DOCX in your C# application literally with two lines of code!

1// Open an existing EPUB file for reading
2using var stream = File.OpenRead(DataDir + "input.epub");
3
4// Invoke the ConvertEPUB() method to convert EPUB to DOCX           
5Converter.ConvertEPUB(stream, new DocSaveOptions(), Path.Combine(OutputDir, "convert-by-two-lines.docx"));

Convert EPUB to DOCX

To convert EPUB to DOCX, you should follow a few steps:

  1. Open an existing EPUB file. In the example, we use the OpenRead() method of System.IO.FileStream class to open and read EPUB files from the file system at the specified path.
  2. Create an instance of the DocSaveOptions class.
  3. Use the ConvertEPUB() method of the Converter class to save EPUB as a DOCX file. You need to pass the EPUB file stream, DocSaveOptions, and output file path to the ConvertEPUB() method for EPUB to DOCX conversion.

The following C# code snippet shows how to convert EPUB to DOCX using Aspose.HTML for .NET.

 1// Open an existing EPUB file for reading
 2using var stream = File.OpenRead(DataDir + "input.epub");
 3
 4// Prepare a path to save the converted file 
 5string savePath = Path.Combine(OutputDir, "input-output.docx");
 6
 7// Create an instance of the DocSaveOptions class
 8var options = new DocSaveOptions();
 9
10// Call the ConvertEPUB() method to convert EPUB to DOCX
11Converter.ConvertEPUB(stream, options, savePath);

Save Options – DocSaveOptions Class

Aspose.HTML for .NET allows converting EPUB to DOCX using default or custom save options. DocSaveOptions usage enables you to tune the rendering process; you can specify the page size, margins, resolutions, CSS, etc.

PropertyDescription
FontEmbeddingRuleThis property gets or sets the font embedding rule. Available values are Full and None. The default value is None.
CssGets a CssOptions object which is used for configuration of CSS properties processing.
DocumentFormatThis property gets or sets the file format of the output document. The default value is DOCX.
PageSetupThis property gets a page setup object and uses it for configuration output page-set.
HorizontalResolutionSets horizontal resolution for output images in pixels per inch. The default value is 300 dpi.
VerticalResolutionSets vertical resolution for output images in pixels per inch. The default value is 300 dpi.

To learn more about DocSaveOptions, please read the Fine-Tuning Converters article.

Convert EPUB to DOCX using DocSaveOptions

With Aspose.HTML for .NET, you can convert EPUB to DOCX format programmatically with full control over a wide range of conversion parameters. To convert EPUB to DOCX with DocSaveOptions specifying, you should follow a few steps:

  1. Open an existing EPUB file.
  2. Create a new DocSaveOptions object and specify the required save options.
  3. Use the ConvertEPUB() method to save EPUB as a DOCX file. You need to pass the EPUB file stream, DocSaveOptions, and output file path to the ConvertEPUB() method for EPUB to DOCX conversion.

The following example shows how to use DocSaveOptions and create a DOCX file with custom save options:

 1// Open an existing EPUB file for reading
 2using var stream = File.OpenRead(DataDir + "input.epub");
 3
 4// Prepare a path to save the converted file 
 5string savePath = Path.Combine(OutputDir, "input-options.docx");
 6
 7// Create an instance of DocSaveOptions. Set A5 as a page-size  
 8var options = new DocSaveOptions();
 9options.PageSetup.AnyPage = new Page(new Aspose.Html.Drawing.Size(Length.FromInches(8.3f), Length.FromInches(5.8f)));            
10
11// Call the ConvertEPUB() method to convert EPUB to DOCX
12Converter.ConvertEPUB(stream, options, savePath);

In the example, we use the OpenRead() method of System.IO.FileStream class to open and read source files from the file system at the specified path. The DocSaveOptions() constructor initializes an instance of the DocSaveOptions class that is passed to ConvertEPUB() method. The ConvertEPUB() method takes the stream, options, output file path savePath and performs the conversion operation. The DocSaveOptions class provides numerous properties that give you full control over a wide range of parameters and improve the process of converting EPUB to DOCX format. In the example, we use the PageSetup property that specifies the page size of the DOCX document.

Output Stream Providers

If it is required to save files in the remote storage (e.g., cloud, database, etc.) you can implement ICreateStreamProvider interface to have manual control over the file creating process. This interface is designed as a callback object to create a stream at the beginning of the document/page (depending on the output format) and release the early created stream after rendering the document/page.

Aspose.HTML for .NET provides various types of output formats for rendering operations. Some of these formats produce a single output file (for instance PDF, XPS), others create multiple files (Image formats JPG, PNG, etc.).

The example below shows how to implement and use your own MemoryStreamProvider in the application:

 1class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
 2{
 3    // List of MemoryStream objects created during the document rendering
 4    public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
 5
 6    public Stream GetStream(string name, string extension)
 7    {
 8        // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats
 9        MemoryStream result = new MemoryStream();
10        Streams.Add(result);
11        return result;
12    }
13
14    public Stream GetStream(string name, string extension, int page)
15    {
16        // This method is called when the creation of multiple output streams are required. For instance, during the rendering HTML to list of image files (JPG, PNG, etc.)
17        MemoryStream result = new MemoryStream();
18        Streams.Add(result);
19        return result;
20    }
21
22    public void ReleaseStream(Stream stream)
23    {
24        // Here you can release the stream filled with data and, for instance, flush it to the hard-drive
25    }
26
27    public void Dispose()
28    {
29        // Releasing resources
30        foreach (var stream in Streams)
31            stream.Dispose();
32    }
33}

The following code snippet demonstrates how to convert an EPUB file to a DOCX file using a memory stream.

 1// Create an instance of MemoryStreamProvider
 2using var streamProvider = new MemoryStreamProvider();
 3
 4// Open an existing EPUB file for reading
 5using var stream = File.OpenRead(DataDir + "input.epub");
 6
 7// Prepare a path to save the converted file 
 8string savePath = Path.Combine(OutputDir, "stream-provider.docx");
 9
10// Convert EPUB to DOCX by using the MemoryStreamProvider class
11Converter.ConvertEPUB(stream, new DocSaveOptions(), streamProvider);
12
13// Get access to the memory stream that contains the result data
14var memory = streamProvider.Streams.First();
15memory.Seek(0, SeekOrigin.Begin);
16
17// Flush the result data to the output file
18using (FileStream fs = File.Create(savePath))
19{
20    memory.CopyTo(fs);
21}

You can download the complete examples and data files from GitHub.

Aspose.HTML offers a free online EPUB to DOCX Converter that converts EPUB to DOCX with high quality, easy and fast. Just upload, convert your files and get results in a few seconds!

Text “EPUB to DOCX Converter”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.