Comment exporter un PDF en C# | IronPDF

C&#35 ; Tutoriel d'exemple de code d'exportation au format PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

Utilisez IronPDF pour exporter du contenu HTML au format PDF en C# avec des méthodes simples telles que SaveAs(), Stream et BinaryData. Cette bibliothèque PDF C# permet aux développeurs de convertir de manière programmatique des documents HTML en PDF et de les servir aux navigateurs web ou de les enregistrer sur le disque.

IronPDF est une Bibliothèque PDF C# qui vous permet d'utiliser C# pour enregistrer votre HTML en tant que PDF. Cela permet également aux développeurs C# / VB d'éditer des documents PDF par programmation. Qu'il s'agisse de générer des rapports, de créer des factures ou de convertir des pages web, IronPDF constitue une solution robuste pour la génération de PDF dans les applications C#.

comme-titre:2(Démarrage rapide: Exportation HTML vers PDF en C# avec IronPDF)

Exportez votre contenu HTML au format PDF en C# à l'aide d'IronPDF. Ce guide vous montre comment convertir du HTML en un document PDF et l'enregistrer avec seulement quelques lignes de code. IronPDF simplifie la génération de PDF, permettant aux développeurs d'intégrer la fonctionnalité d'exportation de PDF dans leurs applications.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronPDF avec le gestionnaire de packages NuGet

    PM > Install-Package IronPdf

  2. Copiez et exécutez cet extrait de code.

    new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>HelloPDF</h1>").SaveAs("myExportedFile.pdf");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer


Quelles sont les différentes options d'enregistrement des PDF ? Lorsque vous travaillez avec des documents PDF en C#, IronPDF propose plusieurs options pour enregistrer et exporter vos PDF générés. Chaque méthode répond à des cas d'utilisation différents, du simple stockage de fichiers à la diffusion de PDF dans des applications web. Les sections suivantes couvrent les options disponibles pour [exporter et enregistrer des PDF en C#](https://ironpdf.com/how-to/export-save-pdf-csharp/). ### Comment Enregistrer un PDF sur le Disque Utilisez la méthode [`PdfDocument.SaveAs`](/object-reference/api/IronPdf.PdfDocument.html) pour enregistrer votre PDF sur le disque. Il s'agit de l'approche la plus simple pour les applications de bureau ou lorsque vous devez stocker des PDF de manière permanente sur le serveur. ```csharp // Complete example for saving PDF to disk using IronPdf; // Initialize the Chrome PDF renderer var renderer = new ChromePdfRenderer(); // Create HTML content with styling string htmlContent = @"

Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"

Thank you for your business!

"; // Render HTML to PDF PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); // Save to disk with standard method pdf.SaveAs("invoice_12345.pdf"); // Save with password protection for sensitive documents pdf.Password = "secure123"; pdf.SaveAs("protected_invoice_12345.pdf"); ``` Cette méthode permet d'ajouter une protection par mot de passe. Consultez l'article suivant pour en savoir plus sur la signature numérique des PDF exportés : '[Signer numériquement un document PDF](https://ironpdf.com/how-to/signing/).' Pour des options de sécurité supplémentaires, consultez notre guide sur les [autorisations et mots de passe pour les PDF](https://ironpdf.com/how-to/pdf-permissions-passwords/). ### Comment enregistrer un fichier PDF dans MemoryStream en C# ; (`System.IO.MemoryStream`) La propriété [`IronPdf.PdfDocument.Stream`](/object-reference/api/IronPdf.PdfDocument.html) enregistre le PDF en mémoire en utilisant un `System.IO.MemoryStream`. Cette approche est idéale lorsque vous devez manipuler les données PDF en mémoire ou les transmettre à d'autres méthodes sans créer de fichiers temporaires. En savoir plus sur [le travail avec les flux de mémoire PDF](https://ironpdf.com/how-to/pdf-memory-stream/). ```csharp // Example: Save PDF to MemoryStream using IronPdf; using System.IO; var renderer = new ChromePdfRenderer(); // Render HTML content PdfDocument pdf = renderer.RenderHtmlAsPdf("

Sales figures...

"); // Get the PDF as a MemoryStream MemoryStream stream = pdf.Stream; // Example: Upload to cloud storage or database // UploadToCloudStorage(stream); // Example: Email as attachment without saving to disk // EmailService.SendWithAttachment(stream, "report.pdf"); // Remember to dispose of the stream when done stream.Dispose(); ``` ### Comment Enregistrer en Données Binaires La propriété [`IronPdf.PdfDocument.BinaryData`](/object-reference/api/IronPdf.PdfDocument.html) exporte le document PDF en tant que données binaires en mémoire. Ces outils sont particulièrement utiles pour le stockage de bases de données ou pour l'intégration d'API nécessitant des tableaux d'octets. Cela produit le PDF en tant que `ByteArray`, qui est exprimé en C# comme `byte []`. ```csharp // Example: Convert PDF to binary data using IronPdf; var renderer = new ChromePdfRenderer(); // Configure rendering options for better quality renderer.RenderingOptions = new ChromePdfRenderOptions() { MarginTop = 20, MarginBottom = 20, MarginLeft = 10, MarginRight = 10, PaperSize = IronPdf.Rendering.PdfPaperSize.A4 }; // Render content to PDF PdfDocument pdf = renderer.RenderHtmlAsPdf(""); // Get binary data byte[] binaryData = pdf.BinaryData; // Example: Store in database // database.StorePdfDocument(documentId, binaryData); // Example: Send via API // apiClient.UploadDocument(binaryData); ``` Pour des scénarios plus avancés impliquant la manipulation de données binaires, consultez notre guide sur [la conversion de PDF en MemoryStream](https://ironpdf.com/how-to/pdf-to-memory-stream/). ### Comment Servir depuis un Serveur Web vers un Navigateur Pour servir un PDF sur le web, nous devons l'envoyer en tant que données binaires plutôt que HTML. Ceci est essentiel pour les applications web où les utilisateurs doivent télécharger ou visualiser des PDF directement dans leurs navigateurs. IronPDF s'intègre à la fois aux applications MVC et aux applications ASP.NET traditionnelles. #### Exportation PDF MVC Dans les applications MVC modernes, il est facile de servir des PDF en utilisant le `FileStreamResult`. Cette approche fonctionne bien avec les [applications .NET Core MVC](https://ironpdf.com/how-to/cshtml-to-pdf-mvc-core/) : ```csharp // MVC Controller method for PDF export public IActionResult DownloadInvoice(int invoiceId) { // Generate your HTML content string htmlContent = GenerateInvoiceHtml(invoiceId); // Create PDF using IronPDF var renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); // Get the PDF stream MemoryStream stream = pdf.Stream; // Reset stream position stream.Position = 0; // Return file to browser - will prompt download return new FileStreamResult(stream, "application/pdf") { FileDownloadName = $"invoice_{invoiceId}.pdf" }; } // Alternative: Display PDF in browser instead of downloading public IActionResult ViewInvoice(int invoiceId) { var renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf(GenerateInvoiceHtml(invoiceId)); // Return PDF for browser viewing return File(pdf.BinaryData, "application/pdf"); } ``` #### Exportation PDF ASP.NET Pour les applications ASP.NET WebForms traditionnelles, vous pouvez servir les PDF directement via l'objet Response : ```csharp // ASP.NET WebForms PDF export protected void ExportButton_Click(object sender, EventArgs e) { // Create your PDF document var renderer = new ChromePdfRenderer(); // Configure rendering options renderer.RenderingOptions = new ChromePdfRenderOptions() { PaperSize = IronPdf.Rendering.PdfPaperSize.Letter, PrintHtmlBackgrounds = true, CreatePdfFormsFromHtml = true }; // Generate PDF from current page or custom HTML PdfDocument MyPdfDocument = renderer.RenderHtmlAsPdf(GetReportHtml()); // Retrieves the PDF binary data byte[] Binary = MyPdfDocument.BinaryData; // Clears the existing response content Response.Clear(); // Sets the response content type to 'application/octet-stream', suitable for PDF files Response.ContentType = "application/octet-stream"; // Add content disposition header for download Response.AddHeader("Content-Disposition", "attachment; filename=report_" + DateTime.Now.ToString("yyyyMMdd") + ".pdf"); // Writes the binary data to the response output stream Context.Response.OutputStream.Write(Binary, 0, Binary.Length); // Flushes the response to send the data to the client Response.Flush(); // End the response Response.End(); } ``` ## Scénarios d'exportation avancés ### Exportation PDF par lots Lorsque vous traitez plusieurs PDF, vous pouvez optimiser le processus d'exportation : ```csharp // Batch export multiple PDFs to a zip file public void ExportMultiplePdfsAsZip(List htmlDocuments, string zipFilePath) { using (var zipArchive = ZipFile.Open(zipFilePath, ZipArchiveMode.Create)) { var renderer = new ChromePdfRenderer(); for (int i = 0; i < htmlDocuments.Count; i++) { // Render each HTML document PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlDocuments[i]); // Add to zip archive var entry = zipArchive.CreateEntry($"document_{i + 1}.pdf"); using (var entryStream = entry.Open()) { pdf.Stream.CopyTo(entryStream); } } } } ``` ### Exportation conditionnelle basée sur les autorisations de l'utilisateur ```csharp // Export with different options based on user role public byte[] ExportPdfWithPermissions(string htmlContent, UserRole userRole) { var renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); // Apply security based on user role if (userRole == UserRole.Guest) { // Restrict printing and copying for guests pdf.SecuritySettings.AllowUserPrinting = false; pdf.SecuritySettings.AllowUserCopyPasteContent = false; } else if (userRole == UserRole.Standard) { // Allow printing but not editing pdf.SecuritySettings.AllowUserPrinting = true; pdf.SecuritySettings.AllowUserEditing = false; } return pdf.BinaryData; } ``` ## Bonnes pratiques pour l'exportation PDF Lorsque vous exportez des PDF dans des applications de production, tenez compte de ces bonnes pratiques : 1. **Gestion de la mémoire** : Pour les PDF volumineux ou les applications à fort trafic, éliminez correctement les objets et les flux PDF afin d'éviter les fuites de mémoire. Envisagez d'utiliser les méthodes `async` pour de meilleures performances. 2. **Gestion des erreurs** : Mettez toujours en œuvre une gestion des erreurs appropriée lors de l'exportation de PDF, en particulier dans les applications web où des problèmes de réseau peuvent survenir. 3. **Compression** : Pour les PDF volumineux, utilisez la compression PDF afin de réduire la taille du fichier avant de l'envoyer aux utilisateurs. 4. : définissez les métadonnées PDF appropriées, notamment le titre, l'auteur et la date de création, pour une meilleure gestion des documents. 5. : veillez à ce que votre fonctionnalité d'exportation fonctionne sur différentes plateformes. IronPDF prend en charge `Windows`, `Linux` et `macOS`. ## Conclusion IronPDF offre des options complètes pour l'exportation de PDF dans les applications C#, depuis les simples sauvegardes de fichiers jusqu'aux scénarios complexes de serveurs web. L'utilisation de la méthode d'exportation appropriée à votre cas d'utilisation vous permet de générer et de fournir efficacement des documents PDF à vos utilisateurs tout en respectant les normes de sécurité et de performance.

Questions Fréquemment Posées

Comment exporter du contenu HTML au format PDF en C# ?

Vous pouvez exporter du HTML au format PDF en C# à l'aide de la classe ChromePdfRenderer d'IronPDF. Il vous suffit de créer une instance de rendu, d'utiliser la méthode RenderHtmlAsPdf() pour convertir votre contenu HTML, puis de l'enregistrer à l'aide de la méthode SaveAs(). IronPDF facilite la conversion de chaînes HTML, de fichiers ou d'URL directement en documents PDF.

Quelles sont les différentes méthodes pour enregistrer un PDF à l'aide de C# ?

IronPDF propose plusieurs méthodes pour enregistrer les PDF : SaveAs() pour l'enregistrement sur disque, Stream pour servir les PDF dans les applications web sans créer de fichiers temporaires, et BinaryData pour obtenir le PDF sous la forme d'un tableau d'octets. Chaque méthode d'IronPDF répond à différents cas d'utilisation, du simple stockage de fichiers à la diffusion dynamique sur le web.

Puis-je enregistrer un PDF sur la mémoire plutôt que sur le disque ?

Oui, IronPDF vous permet d'enregistrer des PDF en mémoire à l'aide de System.IO.MemoryStream. Ceci est utile pour les applications web où vous voulez servir les PDF directement aux utilisateurs sans créer de fichiers temporaires sur le serveur. Vous pouvez utiliser la propriété Stream ou convertir le PDF en données binaires.

Comment ajouter une protection par mot de passe lors de l'enregistrement d'un PDF ?

IronPDF permet la protection par mot de passe en définissant la propriété Password sur l'objet PdfDocument avant l'enregistrement. Il suffit d'attribuer une chaîne de mots de passe à pdf.Password, puis d'utiliser SaveAs() pour créer un fichier PDF protégé dont l'ouverture nécessite le mot de passe.

Puis-je envoyer un PDF directement aux navigateurs web sans l'enregistrer sur le disque ?

Oui, IronPDF vous permet de servir des PDF directement aux navigateurs web en tant que données binaires. Vous pouvez utiliser la propriété BinaryData pour obtenir le PDF sous la forme d'un tableau d'octets et le servir par le biais du flux de réponse de votre application web, ce qui élimine le besoin de stockage de fichiers temporaires.

Quel est le moyen le plus simple de convertir et d'enregistrer HTML en PDF en une seule ligne ?

IronPDF propose une solution en une ligne : new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("Votre HTML").SaveAs("output.pdf"). Cela permet de créer un moteur de rendu, de convertir le HTML en PDF et de l'enregistrer sur le disque en une seule instruction.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 16,685,821 | Version : 2025.12 vient de sortir