Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
HTML5 Canvas content can be processed as part of an HTML document or drawn programmatically through the 2D canvas context. Aspose.HTML for .NET supports both workflows: render a document that contains a <canvas> element, or work with canvas drawing APIs from C# and export the result.
To render HTML5 Canvas in C#, create or load an HTMLDocument that contains a <canvas> element and JavaScript drawing code, then render or convert the document. To draw directly from C#, use ICanvasRenderingContext2D methods such as FillRect(), FillText(), and DrawImage() before exporting the document.
The HTML Canvas element is an HTML5 element added with the <canvas> tag. The element is a container for graphics, and drawing is normally performed with JavaScript. HTML5 Canvas provides a 2D drawing context that can create and manipulate graphic elements such as lines, paths, shapes, images, and text.
The <canvas> element is a low-level procedural model that updates a bitmap. It is commonly used for rendering charts, game graphics, generated art, and other dynamic visuals. HTML5 Canvas is included in the built-in document features supported by Aspose.HTML for .NET.
A typical <canvas> element should have:
id – identifies the canvas so it can be referenced from script or code.width and height – define the canvas drawing surface size.The HTML Canvas element also supports other HTML attributes. For example, use a style attribute when the canvas needs a border or other visual styling.
To render canvas as part of an HTML document, you do not need a separate canvas extraction step. Load or create the HTML document and render it as usual.
<canvas> element and drawing script.The following C# example creates an HTML document with an embedded <canvas> element and converts it to PDF:
1// How to edit HTML5 Canvas and convert it to PDF using C#
2
3// Prepare an output path
4string outputPath = Path.Combine(OutputDir, "output.pdf");
5
6// Prepare a document with HTML5 Canvas inside and save it to the file "document.html"
7string code = @"
8 <canvas id=myCanvas width='200' height='100' style='border:1px solid #d3d3d3;'></canvas>
9 <script>
10 var c = document.getElementById('myCanvas');
11 var context = c.getContext('2d');
12 context.font = '30px Arial';
13 context.fillStyle = 'red';
14 context.fillText('Hello, World', 40, 50);
15 </script>";
16
17System.IO.File.WriteAllText("document.html", code);
18
19// Initialize an HTML document from the html file
20using (HTMLDocument document = new HTMLDocument("document.html"))
21{
22 // Convert HTML to PDF
23 Converter.ConvertHTML(document, new PdfSaveOptions(), outputPath);
24}In this example, the HTML code draws “Hello, World” on the canvas before the document is rendered. The rendered PDF contains the canvas result, not only the source markup.
Besides processing HTML5 Canvas as part of an HTML document, you can work with canvas directly inside C# code. Aspose.HTML for .NET provides the ICanvasRenderingContext2D interface for these operations. The interface is based on the HTML canvas 2D context standard and is used for drawing 2D graphics on a canvas element.
ICanvasRenderingContext2D provides methods and properties for creating and manipulating lines, shapes, text, and images within the canvas.
The <canvas> element combined with the 2D rendering context lets developers create dynamic visuals inside an HTML document. Key operations include:
Use the rectangle methods for simple axis-aligned shapes, the current path for circles or connected lines, and Path2D when a shape should be retained and drawn again. The following example draws a filled rectangle, an outlined rectangle, a circle, and a reusable triangular path. It then converts the Canvas bitmap to a PNG data URL and embeds it in a self-contained HTML file.
To draw basic Canvas shapes in C#:
HTMLDocument and append an HTMLCanvasElement to its body.ICanvasRenderingContext2D.FillRect() and StrokeRect().BeginPath(), Arc(), Fill(), and Stroke().Path2D and draw it with Fill(path) and Stroke(path).ToDataURL(), replace the Canvas with an image, and save the document as HTML. 1using System;
2using Aspose.Html;
3using Aspose.Html.Dom;
4using Aspose.Html.Dom.Canvas;
5
6using HTMLDocument document = new HTMLDocument();
7
8HTMLCanvasElement canvas = (HTMLCanvasElement)document.CreateElement("canvas");
9canvas.Width = 500;
10canvas.Height = 180;
11document.Body.AppendChild(canvas);
12
13ICanvasRenderingContext2D context = (ICanvasRenderingContext2D)canvas.GetContext("2d");
14
15// Draw a filled rectangle
16context.FillStyle = "#4CAF50";
17context.FillRect(20, 20, 120, 70);
18
19// Draw an outlined rectangle
20context.StrokeStyle = "#1565C0";
21context.StrokeRect(170, 20, 120, 70);
22
23// Draw a circle using the current path
24context.BeginPath();
25context.Arc(360, 55, 35, 0, 2 * Math.PI);
26context.FillStyle = "#FFCA28";
27context.Fill();
28context.StrokeStyle = "#F57F17";
29context.Stroke();
30
31// Create and draw a reusable triangular path
32using Path2D triangle = new Path2D();
33triangle.MoveTo(190, 150);
34triangle.LineTo(250, 105);
35triangle.LineTo(310, 150);
36triangle.ClosePath();
37
38context.FillStyle = "#AB47BC";
39context.Fill(triangle);
40context.StrokeStyle = "#6A1B9A";
41context.Stroke(triangle);
42
43// Convert the Canvas bitmap to an embedded PNG image
44string imageData = canvas.ToDataURL();
45Element image = document.CreateElement("img");
46image.SetAttribute("src", imageData);
47image.SetAttribute("alt", "Basic shapes drawn on an HTML5 Canvas");
48image.SetAttribute("width", canvas.Width.ToString());
49image.SetAttribute("height", canvas.Height.ToString());
50
51// Replace the Canvas with the image and save a self-contained HTML file
52document.Body.ReplaceChild(image, canvas);
53document.Save("canvas-shapes.html");The saved HTML displays the four shapes created by the example:

Canvas coordinates start at the upper-left corner. The Arc() start and end angles are expressed in radians, so 0 through 2 * Math.PI creates a complete circle. BeginPath() clears the current path, while Path2D retains a separate shape that can be passed to Fill() or Stroke() multiple times.
Canvas drawing pixels are not part of the serialized HTML markup. Therefore, the example calls
ToDataURL() before saving. The method creates a PNG data URL, which is assigned to the src attribute of an <img> element. The resulting canvas-shapes.html file preserves the drawing and can be opened without rerunning Canvas drawing commands.
The next example uses ICanvasRenderingContext2D to draw text and a rectangle on an HTML5 Canvas and then render the result to PDF.
ICanvasRenderingContext2D methods and properties. 1// How to render HTML5 Canvas 2D to PDF using C#
2
3// Create an empty HTML document
4using HTMLDocument document = new HTMLDocument();
5
6// Create a <canvas> element
7HTMLCanvasElement canvas = (HTMLCanvasElement)document.CreateElement("canvas");
8
9// with a specified size
10canvas.Width = 500;
11canvas.Height = 150;
12
13// and append it to the document body
14document.Body.AppendChild(canvas);
15
16// Get the canvas rendering context to draw
17ICanvasRenderingContext2D context = (Html.Dom.Canvas.ICanvasRenderingContext2D)canvas.GetContext("2d");
18
19// Prepare a gradient brush
20ICanvasGradient gradient = context.CreateLinearGradient(0, 0, canvas.Width, 0);
21gradient.AddColorStop(0, "magenta");
22gradient.AddColorStop(0.4, "blue");
23gradient.AddColorStop(0.9, "red");
24
25// Assign the brush to the content
26context.FillStyle = gradient;
27context.StrokeStyle = gradient;
28
29// Write the text
30context.FillText("Hello, World!", 10, 90, 500);
31
32// Fill the rectangle
33context.FillRect(0, 95, 500, 100);
34
35// Prepare an output path
36string outputPath = Path.Combine(OutputDir, "canvas.pdf");
37
38// Create the PDF output device
39using (PdfDevice device = new PdfDevice(outputPath))
40{
41 // Render HTML5 Canvas to PDF
42 document.RenderTo(device);
43}Rendering canvas content to static formats such as PDF or images can help produce consistent output for printing, sharing, archiving, and integration with document workflows. It can also reduce client-side variability because the final result no longer depends on a browser redrawing the canvas interactively.
| Issue | Cause | Fix |
|---|---|---|
| Canvas content is missing in the output | The drawing script did not run or the canvas was rendered before drawing completed. | Keep the drawing code in the source document and render after the document is loaded and ready. |
| Canvas output has an unexpected size | The canvas drawing surface size differs from its CSS display size. | Set width and height attributes on the <canvas> element, not only CSS dimensions. |
| Text or shapes are clipped | The canvas size or page size is too small for the drawing. | Increase the canvas dimensions or adjust the output page setup before rendering. |
No. Aspose.HTML for .NET is a programmatic API for creating, editing, drawing, and rendering Canvas content in C# applications. It does not provide an interactive browser-based drawing interface.
No. You can draw directly in C# through ICanvasRenderingContext2D, as shown in the basic shapes example. You can also load an HTML document whose Canvas drawing commands are implemented in JavaScript and then render the result.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.