Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
To convert EPUB to DOCX in C#, open the EPUB file as a stream, create DocSaveOptions, and call Converter.ConvertEPUB() with the stream, options, and output path or stream provider.
DOCX is the modern Microsoft Word document format. EPUB to DOCX conversion is useful when a C# application needs to turn eBook content into an editable Word document while preserving page layout, CSS-driven formatting, images, and document structure as much as the output format allows.
Before running the examples, install and configure Aspose.HTML for .NET in your project. The complete C# example project is available in the Aspose.HTML for .NET GitHub repository.
The static
Converter class provides the shortest path from an EPUB file stream to a DOCX file. The example below opens an EPUB file and converts it to DOCX with default DocSaveOptions.
1// Convert EPUB to DOCX using C#
2
3// Open an existing EPUB file for reading
4using FileStream stream = File.OpenRead(DataDir + "input.epub");
5
6// Invoke the ConvertEPUB() method to convert EPUB to DOCX
7Converter.ConvertEPUB(stream, new DocSaveOptions(), Path.Combine(OutputDir, "convert-by-two-lines.docx"));Use this pattern when the default DOCX output is enough. For custom page setup, font embedding, or output streams, use the workflows below.
A typical file-based conversion uses a readable EPUB file stream, a DocSaveOptions object, and Converter.ConvertEPUB(). The conversion writes a DOCX file to the specified output path.
The workflow is:
File.OpenRead() or another readable stream.DocSaveOptions instance.Converter.ConvertEPUB(stream, options, savePath) to write the DOCX file.The following C# code converts an EPUB file to DOCX.
1// Convert EPUB to DOCX using C#
2
3// Open an existing EPUB file for reading
4using FileStream stream = File.OpenRead(DataDir + "input.epub");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "input-output.docx");
8
9// Create an instance of the DocSaveOptions class
10DocSaveOptions options = new DocSaveOptions();
11
12// Call the ConvertEPUB() method to convert EPUB to DOCX
13Converter.ConvertEPUB(stream, options, savePath);DocSaveOptions, and call Converter.ConvertEPUB(stream, options, savePath).DocSaveOptions.PageSetup; see
Resize Document During Conversion.DocSaveOptions.FontEmbeddingRule when the DOCX file should include fonts.DocumentFormat value, which is DOCX.ICreateStreamProvider and pass it to the conversion workflow.Use
DocSaveOptions when the output DOCX needs custom rendering settings. The options object is passed to ConvertEPUB() and controls how EPUB content is rendered to a Word document.
| Option | Use it to control |
|---|---|
FontEmbeddingRule | Font embedding in the output document. Available values are Full and None; the default value is None. |
Css | CSS processing behavior through CssOptions. |
DocumentFormat | The output document format. The default value is DOCX. |
PageSetup | Page size, margins, and page layout settings. |
HorizontalResolution and VerticalResolution | Output resolution values used by the rendering process. The default value is 300 dpi for each property. |
The following example creates a DOCX file with custom DocSaveOptions.
1// Convert EPUB to DOCX with custom settings using C#
2
3// Open an existing EPUB file for reading
4using FileStream stream = File.OpenRead(DataDir + "input.epub");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "input-options.docx");
8
9// Create an instance of DocSaveOptions. Set A5 as a page-size
10DocSaveOptions options = new DocSaveOptions();
11options.PageSetup.AnyPage = new Page(new Aspose.Html.Drawing.Size(Length.FromInches(8.3f), Length.FromInches(5.8f)));
12
13// Call the ConvertEPUB() method to convert EPUB to DOCX
14Converter.ConvertEPUB(stream, options, savePath);In this example, DocSaveOptions is passed to Converter.ConvertEPUB() together with the EPUB stream and output path. The sample configures page setup for the generated DOCX document.
Use ICreateStreamProvider when the conversion output should be written through streams instead of only to a file path. This is useful for memory-based workflows, remote storage, databases, and services that decide where the rendered output is stored.
Aspose.HTML for .NET provides different output formats for rendering operations. Some formats produce a single output file, such as PDF, XPS, and DOCX. Image formats can produce one or more files depending on the document and rendering settings.
The MemoryStreamProvider class below implements ICreateStreamProvider and keeps generated streams in memory.
1// Implement a custom MemoryStream provider for advanced control over HTML rendering output streams
2
3class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
4{
5 // List of MemoryStream objects created during the document rendering
6 public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
7
8 public Stream GetStream(string name, string extension)
9 {
10 // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats
11 MemoryStream result = new MemoryStream();
12 Streams.Add(result);
13 return result;
14 }
15
16 public Stream GetStream(string name, string extension, int page)
17 {
18 // 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.)
19 MemoryStream result = new MemoryStream();
20 Streams.Add(result);
21 return result;
22 }
23
24 public void ReleaseStream(Stream stream)
25 {
26 // Here you can release the stream filled with data and, for instance, flush it to the hard-drive
27 }
28
29 public void Dispose()
30 {
31 // Releasing resources
32 foreach (MemoryStream stream in Streams)
33 stream.Dispose();
34 }
35}The following example converts EPUB to DOCX with MemoryStreamProvider.
1// Convert EPUB to DOCX in C# using memory stream
2
3// Create an instance of MemoryStreamProvider
4using MemoryStreamProvider streamProvider = new MemoryStreamProvider();
5
6// Open an existing EPUB file for reading
7using FileStream stream = File.OpenRead(DataDir + "input.epub");
8
9// Prepare a path to save the converted file
10string savePath = Path.Combine(OutputDir, "stream-provider.docx");
11
12// Convert EPUB to DOCX by using the MemoryStreamProvider class
13Converter.ConvertEPUB(stream, new DocSaveOptions(), streamProvider);
14
15// Get access to the memory stream that contains the result data
16MemoryStream memory = streamProvider.Streams.First();
17memory.Seek(0, SeekOrigin.Begin);
18
19// Flush the result data to the output file
20using (FileStream fs = File.Create(savePath))
21{
22 memory.CopyTo(fs);
23}The ConvertEPUB(Stream, DocSaveOptions, ICreateStreamProvider) overload takes the EPUB source stream, DOCX save options, and a stream provider used to create the output stream.
Use the online EPUB to DOCX Converter for quick manual conversion. Use Aspose.HTML for .NET when EPUB to DOCX conversion must run inside a C# application, service, or document pipeline.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.