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 :

  1. Charge un fichier HTML à l’aide de la classe HTMLDocument.
  2. Créez un nouvel objet ImageSaveOptions. Par défaut, la propriété Format est PNG.
  3. 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.

PropertyDescription
CompressionSets Tagged Image File Format (TIFF) Compression. By default, this property is LZW.
CSSGets a CssOptions object which is used for configuration of CSS properties processing.
FormatSets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG.
BackgroundColorThis property sets the color that will fill the background. By default, this property is Transparent.
PageSetupThis property gets a page setup object and uses it for configuration output page-set.
HorizontalResolutionSets horizontal resolution for output images in pixels per inch. The default value is 300 dpi.
VerticalResolutionSets vertical resolution for output images in pixels per inch. The default value is 300 dpi.
UseAntialiasingThis property sets the image rendering quality. Antialiasing is enabled by default.
TextGets 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 :

  1. Charger un fichier HTML en utilisant l’un des constructeurs HTMLDocument() de la classe HTMLDocument.
  2. Créez un nouvel objet ImageSaveOptions et spécifiez les options d’enregistrement. Par défaut, la propriété Format est PNG.
  3. 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 :

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 !

Texte “Convertisseur HTML en PNG”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.