Editar lienzo HTML5 – С# Ejemplos

¿Qué es HTML Canvas?

El elemento HTML Canvas es un elemento HTML5 en un documento HTML que se agrega usando la etiqueta <canvas>. El elemento <canvas> es un contenedor para gráficos, y debes usar JavaScript para dibujar los gráficos: crear y manipular gráficos dinámicamente. HTML5 Canvas proporciona un contexto de dibujo 2D que se puede utilizar para crear y editar elementos gráficos como líneas, trazados, formas, imágenes y texto. El elemento <canvas> es parte de HTML5 y proporciona representación dinámica programable de formas 2D y mapas de bits. Este es un modelo de procedimiento de bajo nivel que actualiza un mapa de bits. HTML5 Canvas, que se utiliza para representar gráficos, gráficos de juegos, arte u otras imágenes visuales sobre la marcha, se encuentra en la lista de formatos integrados de la biblioteca Aspose.HTML for .NET.

El elemento <canvas> debe tener:

El elemento HTML Canvas también tiene otros atributos que puede establecer para configurar su comportamiento y apariencia. Por ejemplo, si desea agregar un borde, use un atributo de style. El elemento <canvas> también admite los Atributos globales y en HTML.

Lienzo HTML5: cómo editar en C#

Para representar el lienzo como parte de un documento HTML, no necesita ninguna manipulación particular, simplemente renderice el documento como lo hace habitualmente. El siguiente fragmento de código demuestra cómo trabajar con un documento que contiene un elemento HTML5 Canvas:

 1// Prepare an output path
 2string outputPath = Path.Combine(OutputDir, "output.pdf");
 3
 4// Prepare a document with HTML5 Canvas inside and save it to the file "document.html"
 5var code = @"
 6    <canvas id=myCanvas width='200' height='100' style='border:1px solid #d3d3d3;'></canvas>
 7    <script>
 8        var c = document.getElementById('myCanvas');
 9        var context = c.getContext('2d');
10        context.font = '30px Arial';
11        context.fillStyle = 'red';
12        context.fillText('Hello, World', 40, 50);
13    </script>";
14
15System.IO.File.WriteAllText("document.html", code);
16
17// Initialize an HTML document from the html file
18using (var document = new HTMLDocument("document.html"))
19{
20    // Convert HTML to PDF
21    Converter.ConvertHTML(document, new PdfSaveOptions(), outputPath);
22}

En el ejemplo, creamos un documento HTML desde cero. La variable code contiene contenido HTML que genera un documento con un elemento <canvas> incrustado y utiliza JavaScript para dibujar “Hello, World” en el lienzo. Analicemos el código C# paso a paso:

  1. Prepare un código HTML con HTML5 Canvas dentro y use el método System.IO.File.WriteAllText() para escribir el código HTML en un archivo llamado document.html.
  2. Inicialice un documento HTML a partir del archivo utilizando la clase HTMLDocument.
  3. Llame al método ConvertHTML(document, options, outputPath) para convertir HTML a PDF con las opciones de guardado predeterminadas.

Canvas Rendering Context 2D

Además de procesar HTML5 Canvas como parte de un documento HTML, puede trabajar con Canvas directamente dentro de su código C#. Aspose.HTML for .NET proporciona una interfaz ICanvasRenderingContext2D para estas operaciones, que se basa completamente en el standard oficial y se utiliza para dibujar gráficos 2D en un elemento de lienzo en HTML. Proporciona un conjunto de métodos y propiedades que permiten a los desarrolladores crear y manipular gráficos, como líneas, formas, texto e imágenes, dentro del lienzo.

Características clave de CanvasRenderingContext2D

El elemento <canvas>, combinado con el contexto de renderizado 2D, permite a los desarrolladores crear imágenes dinámicas e interactivas directamente dentro de una página web. Estos son algunos aspectos clave de CanvasRenderingContext2D:

  1. Con métodos como FillRect() y StrokeRect() puedes dibujar formas sin esfuerzo.
  2. CanvasRenderingContext2D facilita la representación de texto en el lienzo utilizando métodos como FillText() y StrokeText(), lo que permite la visualización dinámica de texto con diferentes estilos y fuentes.
  3. Puede personalizar la apariencia de los elementos dibujados estableciendo propiedades como FillStyle y StrokeStyle, permitiendo el uso de degradados, patrones y colores sólidos.
  4. Puede aplicar transformaciones como traslación, rotación y escala, que pueden manipular dinámicamente el espacio del lienzo, facilitando disposiciones gráficas complejas.
  5. CanvasRenderingContext2D admite dibujar y manipular imágenes en el lienzo mediante métodos como DrawImage(), lo que mejora el potencial para incorporar gráficos en la interfaz de usuario.

Renderizar HTML5 Canvas 2D a PDF

El siguiente fragmento de código muestra cómo utilizar la función de dibujo de HTML5 Canvas para representar un texto personalizado rellenado con el pincel de degradado.

 1    // Create an empty HTML document
 2    using var document = new HTMLDocument();
 3    
 4    // Create a <canvas> element
 5    var canvas = (HTMLCanvasElement)document.CreateElement("canvas");
 6
 7    // with a specified size
 8    canvas.Width = 500;
 9    canvas.Height = 150;
10
11    // and append it to the document body
12    document.Body.AppendChild(canvas);
13
14    // Get the canvas rendering context to draw
15    var context = (Html.Dom.Canvas.ICanvasRenderingContext2D)canvas.GetContext("2d");
16
17    // Prepare a gradient brush
18    var gradient = context.CreateLinearGradient(0, 0, canvas.Width, 0);
19    gradient.AddColorStop(0, "magenta");
20    gradient.AddColorStop(0.4, "blue");
21    gradient.AddColorStop(0.9, "red");
22
23    // Assign the brush to the content
24    context.FillStyle = gradient;
25    context.StrokeStyle = gradient;
26
27    // Write the text
28    context.FillText("Hello, World!", 10, 90, 500);
29
30    // Fill the rectangle
31    context.FillRect(0, 95, 500, 100);
32
33    // Prepare an output path
34    string outputPath = Path.Combine(OutputDir, "canvas.pdf");
35
36    // Create the PDF output device
37    using (var device = new PdfDevice(outputPath))
38    {
39        // Render HTML5 Canvas to PDF
40        document.RenderTo(device);
41    }
42}

En el ejemplo que vimos arriba, un documento HTML se representó en formato PDF usando el método RenderTo(device). Pero puedes elegir un dispositivo de renderizado diferente y convertir el documento HTML a otro formato que necesites. Representar el contenido del lienzo en otros formatos, como imágenes o archivos PDF, puede ayudar a garantizar una visualización consistente y confiable en diferentes navegadores, facilitar a los usuarios imprimir o compartir documentos visualmente consistentes y puede ser valioso para fines de archivado. Para algunas aplicaciones, representar el contenido del lienzo en un formato estático puede mejorar la seguridad al evitar que los usuarios finales manipulen o alteren los elementos visuales dinámicos.

Por lo tanto, representar contenido de lienzo HTML5 en otros formatos proporciona flexibilidad, mejora la compatibilidad y abre varias posibilidades para compartir, archivar e integrar gráficos dinámicos en diferentes contextos. La elección del formato depende de las necesidades y objetivos específicos de la aplicación web.

Para obtener más información sobre el proceso de renderizado, lea el artículo Dispositivo de renderizado.

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.

Para obtener más información sobre cómo utilizar HTML5 Canvas, puede leer el popular Tutorial HTML Canvas.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.