Dispositivo de renderizado – C#

Usar los métodos ConvertHTML() de la clase Converter es la forma más común de convertir documentos HTML a varios formatos. Sin embargo, Aspose.HTML for .NET API también proporciona formas alternativas de renderizar documentos HTML que pueden brindarle más control sobre el proceso de renderizado en su aplicación C#.

En este artículo, describimos cómo utilizar dispositivos de renderizado: PdfDevice, XpsDevice, DocDevice, y ImageDevice para renderizar HTML a PDF, XPS, DOCX, e Imágenes. En los ejemplos de C#, el proceso de renderizado se considera con opciones de renderizado predeterminadas. Para obtener más información, lea el artículo Opciones de renderizado.

¿Qué es el dispositivo de renderizado en Aspose.HTML?

El dispositivo de renderizado encapsula una superficie de dibujo 2D, cuya API se implementa mediante la interfaz IDevice. Actualmente, API proporciona las siguientes implementaciones: PdfDevice, XpsDevice, DocDevice e ImageDevice, que se utilizan para generar formatos de archivos PDF, XPS, DOCX e Imagen, respectivamente.

Los dispositivos de representación en Aspose.HTML for .NET API son PdfDevice, XpsDevice, DocDevice, y ImageDevice.. Estas son clases con constructores, propiedades y métodos que representan la representación de HTML a PDF, XPS, DOCX y documentos de imagen, respectivamente. Cada dispositivo de renderizado tiene su propio conjunto único de opciones implementadas con clases PdfRenderingOptions, XpsRenderingOptions, DocRenderingOptions, y ImageRenderingOptions respectivamente.

Nuestra biblioteca C# ofrece un conjunto de espacios de nombres con clases, métodos y propiedades para representar HTML en formatos de salida. Considerémoslos con más detalle.

PdfDevice

El espacio de nombres Aspose.Html.Rendering.Pdf proporciona una clase PdfDevice específica, así como algunas clases de opciones de renderizado responsables de renderizar en un documento PDF. La clase PdfDevice implementa la interfaz IDevice, que define la funcionalidad básica para representar un documento HTML.

El siguiente ejemplo de C# muestra cómo utilizar PdfDevice para representar HTML a PDF. El proceso de renderizado se considera con opciones de renderizado predeterminadas:

 1// Prepare HTML code
 2var code = @"<span>Hello, World!!</span>";
 3
 4// Prepare a path to save a converted file 
 5string savePath = Path.Combine(OutputDir, "document.pdf");
 6
 7// Initialize an HTML document from the HTML code
 8using var document = new HTMLDocument(code, ".");
 9
10// Create a PDF Device and specify the output file to render
11using var device = new PdfDevice(savePath);
12    
13// Render HTML to PDF
14document.RenderTo(device);

Expliquemos el fragmento de código C# anterior:

  1. Primero, creamos un documento HTML a partir de una cadena de código. Entonces, en la variable “código”, colocamos el “contenido” que se convertirá a PDF.
  2. Luego, preparamos una ruta para guardar el archivo convertido: savePath.
  3. Usando el constructor HTMLDocument(content, baseUri), creamos una instancia de HTMLDocument.
  4. Creamos un dispositivo de renderizado: una instancia de la clase PdfDevice. Para esto, usamos el constructor PdfDevice(savePath).
  5. Y finalmente, llamamos al método RenderTo(device) con el dispositivo especificado.

Las opciones de renderizado le brindan control adicional sobre el proceso de renderizado. Para obtener más información sobre ellos, lea el artículo Opciones de renderizado.

Si está interesado en cómo utilizar las opciones de representación para cambiar el tamaño de las páginas del documento al tamaño del contenido y viceversa, visite el artículo ¿Cómo cambiar el tamaño del documento durante la conversión desde HTML?

ImageDevice

El espacio de nombres Aspose.Html.Rendering.Image proporciona una clase ImageDevice específica, así como algunas clases de opciones de renderizado responsables de renderizar archivos HTML a formatos rasterizados: JPG, PNG, BMP, GIF y TIFF.

En el ejemplo de С#, para representar una imagen HTML a JPG, seguimos varios pasos:

  1. Cargue un archivo fuente desde un sistema de archivos local usando el constructor HTMLDocument(documentPath).
  2. Cree una instancia de la clase ImageRenderingOptions especificando ImageFormat. Por defecto, el formato de imagen es PNG.
  3. Cree un dispositivo de renderizado: una instancia de la clase ImageDevice. Utilice el constructor ImageDevice(imageOptions, savePath) que toma las opciones de renderizado y la ruta del archivo de salida como parámetros.
  4. Renderice una imagen HTML a JPG usando el método RenderTo(device). Este método toma una instancia de la clase ImageDevice como parámetro.
 1// Prepare path to a source HTML file
 2string documentPath = Path.Combine(DataDir, "spring.html");
 3
 4// Prepare a path to save the converted file
 5string savePath = Path.Combine(OutputDir, "spring-output.jpg");
 6
 7// Initialize an HTML document from the file
 8using var document = new HTMLDocument(documentPath);
 9
10// Create an instance of the ImageRenderingOptions class
11var imageOptions = new ImageRenderingOptions(ImageFormat.Jpeg);
12
13// Create the Image Device and specify the output file to render
14using var device = new ImageDevice(imageOptions, savePath);
15
16// Render HTML to JPG
17document.RenderTo(device);

XpsDevice

El espacio de nombres Aspose.Html.Rendering.Xps proporciona una clase XpsDevice específica para representar archivos HTML en un documento XPS. En el siguiente ejemplo de C#, el proceso de renderizado se considera con opciones de renderizado predeterminadas:

 1// Prepare path to a source HTML file
 2string documentPath = Path.Combine(DataDir, "spring.html");
 3
 4// Prepare a path to save the converted file
 5string savePath = Path.Combine(OutputDir, "spring.xps");
 6
 7// Initialize an HTML document from the file
 8using var document = new HTMLDocument(documentPath);            
 9
10// Create an instance of the XpsDevice and specify the output file to render
11using var device = new XpsDevice(savePath);
12
13// Render HTML to XPS
14document.RenderTo(device);

DocDevice

El espacio de nombres Aspose.Html.Rendering.Doc proporciona una clase DocDevice específica para representar archivos HTML en formato DOCX. En el siguiente ejemplo de C#, el proceso de renderizado se considera con opciones de renderizado predeterminadas:

 1// Prepare a path to save the converted file
 2string savePath = Path.Combine(OutputDir, "document.docx");
 3
 4// Load a document from 'https://docs.aspose.com/html/net/creating-a-document/document.html' web page
 5using var document = new HTMLDocument("https://docs.aspose.com/html/net/creating-a-document/document.html");
 6
 7// Create an instance of the DocRenderingOptions class
 8var docOptions = new DocRenderingOptions();
 9
10// Create the DocDevice object and specify the output file to render
11using var device = new DocDevice(docOptions, savePath);
12
13// Render HTML to DOCX
14document.RenderTo(device);

Puede descargar los ejemplos completos de C# y los archivos de datos desde GitHub.

Aspose.HTML ofrece Convertidores gratuitos en línea que pueden convertir archivos HTML, XHTML, MHTML, EPUB, XML y Markdown a una variedad de formatos populares. Puede convertir fácilmente sus documentos basados ​​en HTML a PDF, XPS, DOCX, JPG, PNG, GIF, TIFF y otros. Simplemente seleccione un archivo, elija el formato a convertir y listo. ¡Lo mejor de todo es que es completamente gratis!

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.