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 :
- 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. - Créer un nouvel objet PdfSaveOptions.
- 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 :
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.
Property | Description |
---|---|
JpegQuality | Specifies the quality of JPEG compression for images. The default value is 95. |
Css | Gets a CssOptions object which is used for configuration of CSS properties processing. |
DocumentInfo | This property contains information about the output PDF document. |
BackgroundColor | This property sets the color that will fill the background of every page. 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. |
Encryption | This 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 :
- Charger un fichier HTML en utilisant l’un des constructeurs HTMLDocument() de la classe HTMLDocument.
- 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.
- 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 optionsoptions
, le chemin du fichier de sortiesavePath
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 :
- propriété
JpegQuality
qui vous permet de spécifier la qualité de la compression JPEG pour les images ; - la propriété
BackgroundColor
définit la couleur de l’arrière-plan. Par défaut, la couleurBackgroundColor
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 ; - propriété
PageSetup
qui spécifie la page size et les margins.
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 !