Convertir HTML a DOCX en C#
Un archivo DOCX es un documento de Microsoft Word que normalmente contiene texto, pero puede contener una amplia gama de datos, incluidas tablas, gráficos rasterizados y vectoriales, vídeos, sonidos y diagramas. El archivo DOCX es altamente editable, fácil de usar y de tamaño manejable. Este formato es popular por la variedad de opciones que ofrece a los usuarios para redactar cualquier tipo de documento. Este formato de archivo es uno de los más utilizados y está disponible a través de numerosos programas.
Usar los métodos Converter.ConvertHTML es la forma más común de convertir código HTML a varios formatos. Con Aspose.HTML for .NET, puede convertir HTML a formato DOCX mediante programación con control total sobre una amplia gama de parámetros de conversión. En este artículo, encontrará información sobre cómo convertir HTML a DOCX usando los métodos ConvertHTML() de la clase Converter y cómo aplicar los parámetros DocSaveOptions y ICreateStreamProvider.
Convertidor HTML en línea
Puede comprobar la funcionalidad de Aspose.HTML API for .NET y convertir HTML en tiempo real. Cargue HTML desde el sistema de archivos local, seleccione el formato de salida y ejecute el ejemplo. En el ejemplo, las opciones de guardar están configuradas de forma predeterminada. Recibirá inmediatamente el resultado en un archivo separado.
Si desea convertir HTML a DOCX mediante programación, consulte los siguientes ejemplos de código C#.
HTML a DOCX mediante una sola línea de código
Los métodos estáticos de la clase Converter se utilizan principalmente como la forma más sencilla de convertir un código HTML a varios formatos. ¡Puedes convertir HTML a DOCX en tu aplicación C# literalmente con una sola línea de código!
1// Convert HTML to DOCX in C#
2
3// Invoke the ConvertHTML() method to convert HTML to DOCX
4Converter.ConvertHTML(@"<h1>Convert HTML to DOCX!</h1>", ".", new DocSaveOptions(), Path.Combine(OutputDir, "convert-with-single-line.docx"));
Convertir HTML a DOCX
Convertir un archivo a otro formato usando el método ConvertHTML() es una secuencia de operaciones entre las que se encuentran cargar y guardar documentos:
- Cargue un archivo HTML usando la clase HTMLDocument.
- Cree un nuevo objeto DocSaveOptions.
- Utilice el método ConvertHTML() de la clase Converter para guardar HTML como un archivo DOCX. Debe pasar HTMLDocument, DocSaveOptions y la ruta del archivo de salida al método ConvertHTML() para convertir HTML a DOCX.
Eche un vistazo al siguiente fragmento de código C# que muestra el proceso de conversión de HTML a DOCX utilizando Aspose.HTML for .NET.
1// Convert HTML to DOCX using C#
2
3// Prepare a path to a source HTML file
4string documentPath = Path.Combine(DataDir, "canvas.html");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "canvas-output.docx");
8
9// Initialize an HTML document from the file
10using HTMLDocument document = new HTMLDocument(documentPath);
11
12// Initialize DocSaveOptions
13DocSaveOptions options = new DocSaveOptions();
14
15// Convert HTML to DOCX
16Converter.ConvertHTML(document, options, savePath);
Opciones de guardado – DocSaveOptions
Aspose.HTML permite convertir HTML a DOCX utilizando opciones de guardado predeterminadas o personalizadas. El uso de DocSaveOptions le permite personalizar el proceso de renderizado; puede especificar el tamaño de la página, márgenes, resoluciones, CSS, etc.
Property | Description |
---|---|
FontEmbeddingRule | This property gets or sets the font embedding rule. Available values are Full and None. The default value is None. |
Css | Gets a CssOptions object which is used for configuration of CSS properties processing. |
DocumentFormat | This property gets or sets the file format of the output document. The default value is DOCX. |
PageSetup | This property gets a page setup object and uses it for configuration output page-set. |
HorizontalResolution | Sets horizontal resolution for output images in pixels per inch. The default value is 300 dpi. |
VerticalResolution | Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi. |
Para obtener más información sobre DocSaveOptions, lea el artículo Convertidores de ajuste fino.
Convierta HTML a DOCX usando DocSaveOptions
Para convertir HTML a DOCX con la especificación DocSaveOptions, debe seguir algunos pasos:
- Cargue un archivo HTML usando uno de los constructores HTMLDocument() de la clase HTMLDocument.
- Cree un nuevo objeto DocSaveOptions.
- Utilice el método ConvertHTML() de la clase Converter para guardar HTML como un archivo DOCX. Debe pasar HTMLDocument, DocSaveOptions y la ruta del archivo de salida al método ConvertHTML() para convertir HTML a DOCX.
El siguiente ejemplo muestra cómo utilizar DocSaveOptions y crear un archivo DOCX con opciones de guardado personalizadas:
1// Convert HTML to DOCX in C# with custom settings
2
3string documentPath = Path.Combine(OutputDir, "save-options.html");
4string savePath = Path.Combine(OutputDir, "save-options-output.docx");
5
6// Prepare HTML code and save it to a file
7string code = "<h1>DocSaveOptions Class</h1>\r\n" +
8 "<p>Using DocSaveOptions Class, you can programmatically apply a wide range of conversion parameters.</p>\r\n";
9
10File.WriteAllText(documentPath, code);
11
12// Initialize an HTML Document from the html file
13using HTMLDocument document = new HTMLDocument(documentPath);
14
15// Initialize DocSaveOptions. Set A5 as a page-size
16DocSaveOptions options = new DocSaveOptions();
17options.PageSetup.AnyPage = new Page(new Aspose.Html.Drawing.Size(Length.FromInches(8.3f), Length.FromInches(5.8f)));
18
19// Convert HTML to DOCX
20Converter.ConvertHTML(document, options, savePath);
El constructor
DocSaveOptions() inicializa una instancia de la clase DocSaveOptions que se pasa al método ConvertHTML(). El método ConvertHTML() toma el document
, las options
, la ruta del archivo de salida savePath
y realiza la operación de conversión. La clase DocSaveOptions proporciona numerosas propiedades que le brindan control total sobre una amplia gama de parámetros y mejoran el proceso de conversión de HTML a formato DOCX. En el ejemplo anterior, utilizamos la propiedad PageSetup que especifica el
page size del documento DOCX.
Proveedores de flujo de salida – Output Stream Providers
Si es necesario guardar archivos en el almacenamiento remoto (por ejemplo, nube, base de datos, etc.), puede implementar la interfaz ICreateStreamProvider para tener control manual sobre el proceso de creación de archivos. Esta interfaz está diseñada como un objeto de devolución de llamada para crear una secuencia al comienzo del documento/página (según el formato de salida) y liberar la secuencia creada inicialmente después de renderizar el documento/página.
Aspose.HTML for .NET proporciona varios tipos de formatos de salida para operaciones de renderizado. Algunos de estos formatos producen un único archivo de salida (por ejemplo, PDF, XPS), otros crean varios archivos (formatos de imagen JPG, PNG, etc.).
El siguiente ejemplo muestra cómo implementar y utilizar su propio MemoryStreamProvider en la aplicación:
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}
El siguiente fragmento de código demuestra cómo convertir un archivo HTML en un archivo DOCX utilizando una secuencia de memoria.
1// Convert HTML to DOCX in C# using memory stream
2
3// Create an instance of MemoryStreamProvider
4using MemoryStreamProvider streamProvider = new MemoryStreamProvider();
5
6// Initialize an HTML document
7using HTMLDocument document = new HTMLDocument(@"<h1>Convert HTML to DOCX File Format!</h1>", ".");
8
9// Convert HTML to DOCX using the MemoryStreamProvider
10Converter.ConvertHTML(document, new DocSaveOptions(), streamProvider);
11
12// Get access to the memory stream that contains the result data
13MemoryStream memory = streamProvider.Streams.First();
14memory.Seek(0, SeekOrigin.Begin);
15
16// Flush the result data to the output file
17using (FileStream fs = File.Create(Path.Combine(OutputDir, "stream-provider.docx")))
18{
19 memory.CopyTo(fs);
20}
Descargue nuestra biblioteca Aspose.HTML for .NET que le permite convertir con éxito, rápida y fácilmente sus documentos HTML, MHTML, EPUB, SVG y Markdown a los formatos más populares.
Aspose.HTML ofrece un Convertidor de HTML a DOCX en línea gratuito que convierte HTML a DOCX con alta calidad, fácil y rápido. ¡Simplemente cargue, convierta sus archivos y obtenga resultados en unos segundos!