Convertir HTML en PDF en C#

Dans ce guide, vous trouverez des informations sur la manière de convertir un document HTML en un fichier Portable Document Format (PDF) à l’aide de la bibliothèque Aspose.HTML for .NET. Nous allons voir en détail comment convertir HTML en PDF en utilisant les méthodes ConvertHTML() de la classe Converter, et comment appliquer les paramètres PdfSaveOptions et ICreateStreamProvider.

Pour continuer à suivre ce tutoriel, vous devez installer et configurer la bibliothèque Aspose.HTML for .NET dans votre projet C#. Nos exemples de code vous aident à convertir du HTML en PDF et à générer des fichiers PDF à l’aide de la bibliothèque C#.

HTML en PDF par une seule ligne de code

La conversion de HTML en PDF est très populaire. Pour ce faire, Aspose.HTML for .NET propose les méthodes statiques de la classe Converter, un moyen simple et compréhensible de convertir un code HTML en un fichier PDF, littéralement avec une seule ligne de code !

1// Convert HTML to PDF using C#
2
3// Invoke the ConvertHTML() method to convert HTML to PDF
4Converter.ConvertHTML(@"<h1>Convert HTML to PDF!</h1>", ".", new PdfSaveOptions(), Path.Combine(OutputDir, "convert-with-single-line.pdf"));

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 PDF par programme, veuillez consulter les exemples de code C# suivants.

Convertir HTML en PDF en C#

Toute conversion HTML vers PDF que vous souhaitez effectuer implique le chargement d’un document HTML et son enregistrement au format PDF. Vous pouvez charger un document HTML à partir d’un fichier, d’un code HTML, d’un flux ou d’une URL (voir l’article Création d’un document HTML). Il peut s’agir de différents scénarios, mais ils peuvent être réalisés en quelques étapes :

  1. Chargez un fichier HTML en utilisant l’un des constructeurs HTMLDocument() de la classe HTMLDocument. Dans l’exemple, nous utilisons le constructeur HTMLDocument(string) qui initialise un document HTML à partir d’un fichier.
  2. Créer un nouvel objet PdfSaveOptions.
  3. Utilisez la méthode ConvertHTML() de la classe Converter pour enregistrer HTML en tant que fichier PDF. Vous devez transmettre les paramètres HTMLDocument, PdfSaveOptions et le chemin du fichier de sortie à la méthode ConvertHTML() pour convertir le HTML en PDF.

Afin de poursuivre ce guide, nous aurons besoin d’un fichier HTML avec lequel travailler. Voici un exemple de fichier HTML que nous utiliserons dans le prochain exemple C# – spring.html. Si vous l’ouvrez dans votre navigateur, vous devriez voir :

Texte “La figure illustre le fichier spring.html”

Jetez un coup d’œil à l’extrait de code C# suivant qui montre le processus de conversion HTML vers PDF pour le fichier spring.html.

 1// Convert HTML to PDF in C#
 2
 3// Prepare a path to a source HTML file
 4string documentPath = Path.Combine(DataDir, "spring.html");
 5
 6// Prepare a path to save the converted file
 7string savePath = Path.Combine(OutputDir, "spring-output.pdf");
 8
 9// Initialize an HTML document from the file
10using HTMLDocument document = new HTMLDocument(documentPath);
11
12// Initialize PdfSaveOptions
13PdfSaveOptions options = new PdfSaveOptions();
14
15// Convert HTML to PDF
16Converter.ConvertHTML(document, options, savePath);

Sauvegarder les options

La fonctionnalité de création de PDF peut être améliorée avec des options d’enregistrement selon vos besoins. Aspose.HTML permet de convertir du HTML en PDF en utilisant des options d’enregistrement par défaut ou personnalisées. l’utilisation de PdfSaveOptions vous permet de personnaliser le processus de rendu ; vous pouvez spécifier la taille de la page, les marges, les permissions de fichier, Css, etc.

PropertyDescription
JpegQualitySpecifies the quality of JPEG compression for images. The default value is 95.
CssGets a CssOptions object which is used for configuration of CSS properties processing.
DocumentInfoThis property contains information about the output PDF document.
BackgroundColorThis property sets the color that will fill the background of every page. 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.
EncryptionThis property gets or sets encryption details. If it is not set, then no encryption will be performed.

Pour en savoir plus sur PdfSaveOptions, veuillez lire l’article Convertisseurs à réglage fin. Vous pouvez télécharger les exemples complets et les fichiers de données sur GitHub.

Convertissez du HTML en PDF avec PdfSaveOptions

Avec Aspose.HTML, vous pouvez convertir des fichiers de manière programmatique en contrôlant totalement un large éventail de paramètres de conversion. Pour convertir HTML en PDF en spécifiant PdfSaveOptions, 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 PdfSaveOptions et spécifiez les propriétés requises. La classe PdfSaveOptions fournit de nombreuses propriétés qui vous donnent un contrôle total sur un large éventail de paramètres et améliorent le processus de conversion du HTML au format PDF.
  3. Utilisez la méthode ConvertHTML() de la classe Converter pour enregistrer du HTML dans un fichier PDF. La méthode ConvertHTML() prend le document document, les options options, le chemin du fichier de sortie savePath et effectue l’opération de conversion.

L’exemple suivant montre comment utiliser PdfSaveOptions et créer un fichier PDF avec des options d’enregistrement personnalisées :

 1// Convert HTML to PDF in C# with custom page settings
 2
 3// Prepare a path to a source HTML file
 4string documentPath = Path.Combine(DataDir, "drawing.html");
 5
 6// Prepare a path to save the converted file
 7string savePath = Path.Combine(OutputDir, "drawing-options.pdf");
 8
 9// Initialize an HTML document from the file
10using HTMLDocument document = new HTMLDocument(documentPath);
11
12// Initialize PdfSaveOptions. Set up the page-size 600x300 pixels, margins, resolutions and change the background color to AliceBlue 
13PdfSaveOptions options = new PdfSaveOptions()
14{
15    HorizontalResolution = 200,
16    VerticalResolution = 200,
17    BackgroundColor = System.Drawing.Color.AliceBlue,
18    JpegQuality = 100
19};
20options.PageSetup.AnyPage = new Page(new Aspose.Html.Drawing.Size(600, 300), new Margin(20, 10, 10, 10));
21
22// Convert HTML to PDF
23Converter.ConvertHTML(document, options, savePath);

Dans l’exemple ci-dessus, nous utilisons :

La conversion de HTML en PDF peut être adaptée de manière flexible pour obtenir le résultat souhaité. Dans les articles suivants, vous trouverez des réponses aux questions les plus courantes concernant la conversion de HTML en PDF :

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 implémenter 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.

La bibliothèque Aspose.HTML C# permet de réaliser la classe MemoryStreamProvider en tant qu’implémentation personnalisée de l’interface ICreateStreamProvider. La classe MemoryStreamProvider fournit des objets C# MemoryStream comme flux de sortie pour l’écriture de données, qui peuvent être stockées en mémoire sous forme de flux :

 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}

Aspose.HTML for .NET fournit 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), tandis que d’autres créent plusieurs fichiers (formats d’image JPG, PNG, etc.)

Le code C# suivant montre comment utiliser la classe MemoryStreamProvider et la bibliothèque Aspose.HTML for .NET pour convertir du HTML en PDF et enregistrer le résultat dans un fichier.

 1// Convert HTML to PDF 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 PDF File Format!</h1>", ".");
 8
 9// Convert HTML to PDF using the MemoryStreamProvider
10Converter.ConvertHTML(document, new PdfSaveOptions(), 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.pdf")))
18{
19    memory.CopyTo(fs);
20}

Vous pouvez télécharger les exemples complets et les fichiers de données sur GitHub.

Téléchargez la bibliothèque Aspose.HTML for .NET, qui vous permet de convertir avec succès, rapidement et facilement vos documents HTML, MHTML, EPUB, SVG et Markdown vers les formats les plus populaires.

Aspose.HTML propose un Convertisseur HTML en PDF en ligne gratuit qui convertit HTML en PDF avec une grande qualité, facilement et rapidement. Il suffit de télécharger, de convertir vos fichiers et d’obtenir le résultat en quelques secondes !

Texte “Convertisseur HTML en PDF”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.