Modifier HTML5 Canvas – С# Exemples
Qu’est-ce que HTML Canvas ?
L’élément HTML Canvas est un élément HTML5 dans un document HTML qui est ajouté à l’aide de la balise <canvas>
. L’élément <canvas>
est un conteneur pour les graphiques, et vous devez utiliser JavaScript pour dessiner les graphiques – créer et manipuler dynamiquement les graphiques. HTML5 Canvas fournit un contexte de dessin en 2D qui peut être utilisé pour créer et modifier des éléments graphiques tels que des lignes, des chemins, des formes, des images et du texte. L’élément <canvas>
fait partie de HTML5 et fournit un rendu dynamique de formes 2D et de bitmaps. Il s’agit d’un modèle procédural de bas niveau qui met à jour une image bitmap. HTML5 Canvas, qui est utilisé pour le rendu de graphiques, de jeux, d’art ou d’autres images visuelles à la volée, figure dans la liste des formats intégrés de la bibliothèque Aspose.HTML for .NET.
L’élément <canvas>
doit avoir :
- afin que JavaScript puisse s’y référer.
- les attributs
width
etheight
permettent de définir la taille de la toile.
L’élément HTML Canvas possède également d’autres attributs que vous pouvez définir pour configurer son comportement et son apparence. Par exemple, si vous souhaitez ajouter une bordure, utilisez l’attribut style
. L’élément <canvas>
prend également en charge les
Attributs globaux et en HTML.
HTML5 Canvas – Comment éditer en C#
Pour intégrer un élément Canvas dans un document HTML, vous n’avez besoin d’aucune manipulation particulière, il vous suffit de rendre le document comme vous le faites habituellement. L’extrait de code suivant montre comment travailler avec un document qui contient un élément HTML5 Canvas :
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}
Dans l’exemple, nous créons un document HTML à partir de zéro. La variable code
contient un contenu HTML qui génère un document avec un élément <canvas>
intégré, et utilise JavaScript pour dessiner “Hello, World” sur le canevas. Décomposons le code C# étape par étape :
- Préparez un code HTML avec HTML5 Canvas à l’intérieur et utilisez la méthode
System.IO.File.WriteAllText()
pour écrire le code HTML dans un fichier nommé “document.html”. - Initialiser un document HTML à partir du fichier en utilisant la classe HTMLDocument.
- Appelez la méthode
ConvertHTML(
document, options, outputPath
) pour convertir HTML en PDF avec les options d’enregistrement par défaut.
Canvas Rendering Context 2D
Outre le traitement de HTML5 Canvas en tant que partie d’un document HTML, vous pouvez travailler avec canvas directement dans votre code C#. Aspose.HTML for .NET fournit l’interface ICanvasRenderingContext2D pour ces opérations, qui est entièrement basée sur la standard officielle et utilisée pour dessiner des graphiques 2D sur un élément canvas en HTML. Elle fournit un ensemble de méthodes et de propriétés qui permettent aux développeurs de créer et de manipuler des graphiques, tels que des lignes, des formes, du texte et des images, dans le canevas.
Principales caractéristiques de CanvasRenderingContext2D
L’élément <canvas>
, combiné au contexte de rendu 2D, permet aux développeurs de créer des visuels dynamiques et interactifs directement dans une page web. Voici quelques aspects clés de CanvasRenderingContext2D :
- Avec des méthodes comme FillRect() et StrokeRect(), vous pouvez dessiner des formes sans effort.
- CanvasRenderingContext2D facilite le rendu du texte sur le canevas à l’aide de méthodes telles que FillText() et StrokeText(), ce qui permet un affichage dynamique du texte avec différents styles et polices.
- Vous pouvez personnaliser l’apparence des éléments dessinés en définissant des propriétés telles que FillStyle et StrokeStyle, ce qui permet d’utiliser des dégradés, des motifs et des couleurs unies.
- Vous pouvez appliquer des transformations telles que la translation, la rotation et la mise à l’échelle, qui peuvent manipuler dynamiquement l’espace de la toile, facilitant ainsi les arrangements graphiques complexes.
- CanvasRenderingContext2D permet de dessiner et de manipuler des images sur le canevas grâce à des méthodes telles que DrawImage(), ce qui accroît les possibilités d’intégration de graphiques dans l’interface utilisateur.
Rendre HTML5 Canvas 2D au PDF
L’extrait de code suivant montre comment utiliser la fonction de dessin de HTML5 Canvas pour rendre un texte personnalisé rempli à l’aide d’un pinceau dégradé.
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}
Dans l’exemple ci-dessus, un document HTML a été rendu au format PDF à l’aide de la méthode
RenderTo(device
). Mais vous pouvez choisir un autre périphérique de rendu et convertir le document HTML dans un autre format dont vous avez besoin. Le rendu du contenu du canevas dans d’autres formats, tels que des images ou des PDF, peut contribuer à garantir un affichage cohérent et fiable sur différents navigateurs, faciliter l’impression ou le partage de documents visuellement cohérents par les utilisateurs et s’avérer utile à des fins d’archivage. Pour certaines applications, le rendu du contenu canvas dans un format statique peut améliorer la sécurité en empêchant les utilisateurs finaux de manipuler ou d’altérer les visuels dynamiques.
Ainsi, le rendu du contenu HTML5 canvas dans d’autres formats apporte de la flexibilité, améliore la compatibilité et ouvre de nombreuses possibilités pour le partage, l’archivage et l’intégration de graphiques dynamiques dans différents contextes. Le choix du format dépend des besoins et des objectifs spécifiques de l’application web.
Pour en savoir plus sur le processus de rendu, veuillez lire l’article Dispositif de rendu – Rendering Device.
Les options de rendu vous donnent un contrôle supplémentaire sur le processus de rendu. Pour en savoir plus, lisez l’article Options de rendu.
Pour en savoir plus sur l’utilisation de HTML5 Canvas, vous pouvez lire le très populaire Tutoriel HTML Canvas.