Convertir HTML en PNG en C#
PNG est l’un des formats de fichier image les plus utilisés. Il prend en charge la compression d’image sans perte, ce qui le rend populaire auprès de ses utilisateurs. La conversion de fichiers HTML en images PNG peut être nécessaire, par exemple, si vous souhaitez ajouter une page web à une présentation PowerPoint, l’insérer dans un blog pour vos lecteurs ou l’envoyer par courrier électronique. Avec Aspose.HTML for .NET, vous pouvez convertir HTML au format PNG de manière programmatique, avec un contrôle total sur un large éventail de paramètres de conversion.
Dans cet article, vous trouverez des informations sur la manière de convertir HTML en PNG en utilisant les méthodes ConvertHTML() de la classe Converter, et sur la manière d’appliquer les paramètres ImageSaveOptions et ICreateStreamProvider.
Convertisseur HTML en ligne
Vous pouvez vérifier la fonctionnalité de l’API Aspose.HTML et convertir du HTML en temps réel. Veuillez charger HTML à partir du système de fichiers local, sélectionnez le format de sortie et exécutez l’exemple. Dans l’exemple, les options d’enregistrement sont définies par défaut. Vous recevrez immédiatement le résultat dans un fichier séparé.
Si vous souhaitez convertir HTML en PNG par programme, veuillez consulter les exemples de code C# suivants.
HTML vers PNG par une seule ligne de code
Les méthodes statiques de la classe Converter sont principalement utilisées comme moyen le plus simple de convertir un code HTML dans différents formats. Vous pouvez convertir HTML en PNG dans votre application C# en une seule ligne de code !
1// Convert HTML to PNG using C#
2
3// Invoke the ConvertHTML() method to convert HTML to PNG
4Converter.ConvertHTML(@"<h1>Convert HTML to PNG!</h1>", ".", new ImageSaveOptions(), Path.Combine(OutputDir, "convert-with-single-line.png"));
Convertir HTML en PNG
La conversion d’un fichier dans un autre format à l’aide de la méthode ConvertHTML() est une séquence d’opérations parmi lesquelles le chargement et l’enregistrement de documents :
- Charge un fichier HTML à l’aide de la classe HTMLDocument.
- Créez un nouvel objet ImageSaveOptions. Par défaut, la propriété Format est PNG.
- Utilisez la méthode ConvertHTML() de la classe Converter pour enregistrer HTML en tant qu’image PNG. Vous devez transmettre les paramètres HTMLDocument, ImageSaveOptions et le chemin du fichier de sortie à la méthode ConvertHTML() pour convertir HTML en PNG.
Jetez un coup d’œil à l’extrait de code C# suivant, qui illustre le processus de conversion de HTML en PNG à l’aide d’Aspose.HTML for .NET.
1// Convert HTML to PNG in C#
2
3// Prepare a path to a source HTML file
4string documentPath = Path.Combine(DataDir, "nature.html");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "nature-output.png");
8
9// Initialize an HTML document from the file
10using HTMLDocument document = new HTMLDocument(documentPath);
11
12// Create an instance of the ImageSaveOptions class
13ImageSaveOptions options = new ImageSaveOptions(ImageFormat.Png);
14
15// Convert HTML to PNG
16Converter.ConvertHTML(document, options, savePath);
Sauvegarder les options
Aspose.HTML permet de convertir HTML en PNG en utilisant des options d’enregistrement par défaut ou personnalisées. l’utilisation de ImageSaveOptions vous permet de personnaliser le processus de rendu ; vous pouvez spécifier le image format, la page size, les margins, le CSS media-type, etc.
Property | Description |
---|---|
Compression | Sets Tagged Image File Format (TIFF) Compression. By default, this property is LZW. |
CSS | Gets a CssOptions object which is used for configuration of CSS properties processing. |
Format | Sets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG. |
BackgroundColor | This property sets the color that will fill the background. By default, this property is Transparent. |
PageSetup | This property gets a page setup object and uses it for configuration output page-set. |
HorizontalResolution | Sets horizontal resolution for output images in pixels per inch. The default value is 300 dpi. |
VerticalResolution | Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi. |
UseAntialiasing | This property sets the image rendering quality. Antialiasing is enabled by default. |
Text | Gets a TextOptions object which is used for configuration of text rendering. |
Pour en savoir plus sur la classe ImageSaveOptions, veuillez lire l’article Convertisseurs à réglage fin.
Convertir HTML en PNG en utilisant ImageSaveOptions
Pour convertir HTML en PNG en spécifiant ImageSaveOptions, vous devez suivre quelques étapes :
- Charger un fichier HTML en utilisant l’un des constructeurs HTMLDocument() de la classe HTMLDocument.
- Créez un nouvel objet ImageSaveOptions et spécifiez les options d’enregistrement. Par défaut, la propriété Format est PNG.
- Utilisez la méthode ConvertHTML() de la classe Converter pour enregistrer HTML en tant qu’image JPG. Vous devez transmettre les paramètres HTMLDocument, ImageSaveOptions et le chemin du fichier de sortie à la méthode ConvertHTML() pour convertir HTML en PNG.
L’extrait de code C# suivant montre comment convertir HTML en PNG en utilisant des options d’enregistrement personnalisées :
1// Convert HTML to PNG in C# with custom settings
2
3// Prepare a path to a source HTML file
4string documentPath = Path.Combine(DataDir, "nature.html");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "nature-output-options.png");
8
9// Initialize an HTML document from the file
10using HTMLDocument document = new HTMLDocument(documentPath);
11
12// Initialize ImageSaveOptions
13ImageSaveOptions options = new ImageSaveOptions()
14{
15 UseAntialiasing = false,
16 HorizontalResolution = 100,
17 VerticalResolution = 100,
18 BackgroundColor = System.Drawing.Color.Beige
19};
20
21// Convert HTML to PNG
22Converter.ConvertHTML(document, options, savePath);
Le constructeur
ImageSaveOptions() initialise une instance de la classe ImageSaveOptions qui est passée à la méthode ConvertHTML(). La méthode ConvertHTML() prend le document
, les options
, le chemin du fichier de sortie savePath
et effectue l’opération de conversion.
Dans l’exemple ci-dessus, nous ajoutons :
- propriété
BackgroundColor
qui définit la couleur de l’arrière-plan. La couleur d’arrière-plan par défaut estTransparent
. - les propriétés
HorizontalResolution
etVerticalResolution
définissent la résolution horizontale/verticale des images de sortie en pixels par pouce. Par défaut, ces propriétés sont de 300 dpi. - la propriété
UseAntialiasing
qui définit la qualité du rendu pour cette image. Cet exemple utiliseUseAntialiasing = false
pour un rendu plus simple, orienté performance, qui ne nécessite pas d’anti-crénelage.
Utilisez UseAntialiasing = true
lorsque vous souhaitez améliorer la qualité visuelle des formes, textes et images rendus dans votre application, en particulier lorsque la clarté et les bords lisses sont essentiels. L’activation de l’anticrénelage permet de lisser les bords irréguliers en mélangeant les couleurs des pixels autour des bords, ce qui donne un aspect plus doux et plus raffiné.
Bien que UseAntialiasing = true
offre une meilleure qualité visuelle, il peut aussi augmenter le temps de traitement. Pour les applications où la vitesse de rendu est une priorité, il peut être optimal de mettre UseAntialiasing = false
.
Fournisseurs de flux de sortie
S’il est nécessaire d’enregistrer des fichiers dans un espace de stockage distant (par exemple, un nuage, une base de données, etc.), vous pouvez mettre en œuvre l’interface ICreateStreamProvider afin de contrôler manuellement le processus de création de fichiers. Cette interface est conçue comme un objet de rappel pour créer un flux au début du document/de la page (en fonction du format de sortie) et libérer le flux créé au début après le rendu du document/de la page.
Aspose.HTML for .NET propose différents types de formats de sortie pour les opérations de rendu. Certains de ces formats produisent un seul fichier de sortie (par exemple, PDF, XPS), d’autres créent plusieurs fichiers (formats d’image – JPG, PNG, etc.).
L’exemple ci-dessous montre comment mettre en œuvre et utiliser votre propre MemoryStreamProvider dans l’application :
1// Implement a custom MemoryStream provider for advanced control over HTML rendering output streams
2
3class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
4{
5 // List of MemoryStream objects created during the document rendering
6 public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
7
8 public Stream GetStream(string name, string extension)
9 {
10 // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats
11 MemoryStream result = new MemoryStream();
12 Streams.Add(result);
13 return result;
14 }
15
16 public Stream GetStream(string name, string extension, int page)
17 {
18 // 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.)
19 MemoryStream result = new MemoryStream();
20 Streams.Add(result);
21 return result;
22 }
23
24 public void ReleaseStream(Stream stream)
25 {
26 // Here you can release the stream filled with data and, for instance, flush it to the hard-drive
27 }
28
29 public void Dispose()
30 {
31 // Releasing resources
32 foreach (MemoryStream stream in Streams)
33 stream.Dispose();
34 }
35}
Le code C# suivant montre comment utiliser la classe MemoryStreamProvider et la bibliothèque Aspose.HTML for .NET pour convertir du HTML en PNG et enregistrer le résultat dans un fichier.
1// Convert HTML to PNG in C# using memory stream
2
3// Create an instance of MemoryStreamProvider
4using MemoryStreamProvider streamProvider = new MemoryStreamProvider();
5
6// Initialize an HTML document
7using HTMLDocument document = new HTMLDocument(@"<h1>Convert HTML to PNG File Format!</h1>", ".");
8
9// Convert HTML to JPG using the MemoryStreamProvider
10Converter.ConvertHTML(document, new ImageSaveOptions(ImageFormat.Png), streamProvider);
11
12// Get access to the memory stream that contains the result data
13MemoryStream memory = streamProvider.Streams.First();
14memory.Seek(0, SeekOrigin.Begin);
15
16// Flush the result data to the output file
17using (FileStream fs = File.Create(Path.Combine(OutputDir, "stream-provider.png")))
18{
19 memory.CopyTo(fs);
20}
Vous pouvez télécharger les exemples complets et les fichiers de données sur GitHub.
Aspose.HTML propose un Convertisseur HTML en PNG gratuit en ligne qui convertit HTML en image PNG avec une haute qualité, facilement et rapidement. Il suffit de télécharger, de convertir vos fichiers et d’obtenir des résultats en quelques secondes !