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// Invoke the ConvertHTML() method to convert HTML to DOCX
2Converter.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:

  1. Cargue un archivo HTML usando la clase HTMLDocument.
  2. Cree un nuevo objeto DocSaveOptions.
  3. 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// Prepare a path to a source HTML file
 2string documentPath = Path.Combine(DataDir, "canvas.html");
 3
 4// Prepare a path to save the converted file 
 5string savePath = Path.Combine(OutputDir, "canvas-output.docx");
 6
 7// Initialize an HTML document from the file
 8using var document = new HTMLDocument(documentPath);
 9
10// Initialize DocSaveOptions 
11var options = new DocSaveOptions();
12
13// Convert HTML to DOCX
14Converter.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.

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.

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:

  1. Cargue un archivo HTML usando uno de los constructores HTMLDocument() de la clase HTMLDocument.
  2. Cree un nuevo objeto DocSaveOptions.
  3. 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:

 1string documentPath = Path.Combine(OutputDir, "save-options.html");
 2string savePath = Path.Combine(OutputDir, "save-options-output.docx");
 3
 4// Prepare HTML code and save it to a file
 5var code = "<h1>DocSaveOptions Class</h1>\r\n" +
 6           "<p>Using DocSaveOptions Class, you can programmatically apply a wide range of conversion parameters.</p>\r\n";
 7
 8File.WriteAllText(documentPath, code);
 9
10// Initialize an HTML Document from the html file
11using var document = new HTMLDocument(documentPath);
12
13// Initialize DocSaveOptions. Set A5 as a page-size 
14var options = new DocSaveOptions();
15options.PageSetup.AnyPage = new Page(new Aspose.Html.Drawing.Size(Length.FromInches(8.3f), Length.FromInches(5.8f)));
16
17// Convert HTML to DOCX
18Converter.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:

 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}

El siguiente fragmento de código demuestra cómo convertir un archivo HTML en un archivo DOCX utilizando una secuencia de memoria.

 1// Create an instance of MemoryStreamProvider
 2using var streamProvider = new MemoryStreamProvider();
 3
 4// Initialize an HTML document
 5using var document = new HTMLDocument(@"<h1>Convert HTML to DOCX File Format!</h1>", ".");
 6
 7// Convert HTML to DOCX using the MemoryStreamProvider
 8Converter.ConvertHTML(document, new DocSaveOptions(), streamProvider);
 9
10// Get access to the memory stream that contains the result data
11var memory = streamProvider.Streams.First();
12memory.Seek(0, SeekOrigin.Begin);
13
14// Flush the result data to the output file
15using (FileStream fs = File.Create(Path.Combine(OutputDir, "stream-provider.docx")))
16{
17    memory.CopyTo(fs);
18}

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!

Texto “Convertidor de HTML a DOCX”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.