# Comment exporter et enregistrer des PDFs dans IronPDF C#
IronPDF exporte un `PdfDocument` rendu en PDF en C# via `SaveAs` pour le disque, les propriétés `Stream` et `BinaryData` pour la mémoire, et `SaveAsPdfA`, `SaveAsPdfUA` et `SaveAsRevision` pour un fichier d'archivage, accessible et versionné. Chaque méthode prend un document déjà rendu et l'écrit vers la destination dont votre application a besoin, que ce soit un chemin de fichier, un tampon en mémoire ou une réponse HTTP.
Ce guide parcourt chaque cible d'exportation, d'une sauvegarde de fichier en une ligne jusqu'à servir un PDF directement dans un navigateur, et les méthodes qui produisent une sortie étiquetée de conformité.
*as-heading:2(Démarrage rapide : Exporter du HTML en PDF en C#)*
Rendre le HTML et écrire le résultat sur le disque en une seule instruction. L'appel `RenderHtmlAsPdf` retourne un `PdfDocument`, et `SaveAs` le sauvegarde.
```cs
:title=Export or save your PDF in one line!
new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>HelloPDF</h1>").SaveAs("myExportedFile.pdf");
```
<div class="hsg-featured-snippet">
<h3>Flux de travail minimal (5 étapes)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://www.nuget.org/packages/IronPdf/">Téléchargez la bibliothèque PDF pour C# depuis NuGet</a></li>
<li>Rendre ou charger un <code>PdfDocument</code></li>
<li>Enregistrez sur disque avec <code>SaveAs</code>, ou en mémoire avec <code>Stream</code> et <code>BinaryData</code></li>
<li>Servez les octets sur le web comme réponse de fichier plutôt que comme HTML</li>
<li>Exportez une sortie conforme avec <code>SaveAsPdfA</code>, <code>SaveAsPdfUA</code>, ou <code>SaveAsRevision</code></li>
</ol>
</div>
<br class="clear" />
## Quelles sont les options pour enregistrer des PDFs ?
IronPDF sauvegarde un `PdfDocument` vers quatre types de destination : un fichier sur le disque, un `MemoryStream` en mémoire, un `byte[]` brut, et un fichier étiqueté pour l'accessibilité, l'archivage ou la révision incrémentielle. Les sections ci-dessous couvrent chaque cible avec un exemple testé, en commençant par l'enregistrement de fichier le plus simple et en terminant par les méthodes d'exportation spécialisées.
### Comment enregistrer un PDF sur le disque
Utilisez la méthode `SaveAs` pour écrire un `PdfDocument` vers un chemin de fichier. C'est la route directe pour les applications de bureau ou tout processus serveur qui garde les PDFs sur le système de fichiers.
```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 = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
h1 { color: #333; }
.content { line-height: 1.6; }
</style>
</head>
<body>
<h1>Invoice #12345</h1>
<div class='content'>
<p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
<p>Thank you for your business!</p>
</div>
</body>
</html>";
// 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");
```
Le même exemple définit également la propriété `Password` avant une seconde sauvegarde, ce qui crypte le fichier de sorte qu'il ne peut pas être ouvert sans ce mot de passe. Pour un contrôle plus précis sur ce qu'un destinataire peut faire avec le fichier, consultez le guide sur [les permissions et mots de passe PDF](https://ironpdf.com/how-to/pdf-permissions-passwords/).
### Sortie
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/save-to-disk.pdf" width="100%" height="500px"></iframe>
### Comment enregistrer un PDF dans un MemoryStream
La propriété `Stream` renvoie le document en tant que `System.IO.MemoryStream`. Utilisez-le lorsque vous devez transmettre le PDF à une autre méthode, le télécharger ou l'envoyer par e-mail sans écrire d'abord un fichier temporaire. Lisez plus sur [travailler 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("<h1>Monthly Report</h1><p>Sales figures...</p>");
// 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();
```
### Sortie
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/memory-stream.pdf" width="100%" height="500px"></iframe>
### Comment Enregistrer en Données Binaires
La propriété `BinaryData` renvoie le document en tant que `byte[]`. Un tableau d'octets convient aux colonnes de base de données, aux entrées de cache et aux API qui acceptent les octets bruts plutôt qu'un flux.
```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("<h1>Contract Document</h1>");
// Get binary data
byte[] binaryData = pdf.BinaryData;
// Example: Store in database
// database.StorePdfDocument(documentId, binaryData);
// Example: Send via API
// apiClient.UploadDocument(binaryData);
```
Lorsque vous avez besoin de la direction inverse, charger des octets dans un fichier modifiable, le guide sur [convertir des PDFs en MemoryStream](https://ironpdf.com/how-to/pdf-to-memory-stream/) le couvre.
### Sortie
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/binary-data.pdf" width="100%" height="500px"></iframe>
## Comment servir un PDF depuis un serveur web vers le navigateur ?
Pour retourner un PDF sur HTTP, vous envoyez les octets comme réponse de fichier, pas comme HTML. Les deux `Stream` et `BinaryData` se branchent directement dans les types de résultats de fichier qu'ASP.NET fournit, de sorte que le contrôleur rend un document et le renvoie sans jamais toucher le disque.
### Comment exporter un PDF en MVC ?
Dans ASP.NET Core MVC, enveloppez le `Stream` dans un `FileStreamResult` pour demander un téléchargement, ou passez `BinaryData` à `File` pour afficher le PDF en ligne. Les deux actions ci-dessous montrent les deux. Cela s'associe naturellement avec le rendu de [vues CSHTML en PDF](https://ironpdf.com/how-to/cshtml-to-pdf-mvc-core/).
```csharp
// MVC controller methods for PDF export
public IActionResult DownloadInvoice(int invoiceId)
{
// Generate your HTML content
string htmlContent = GenerateInvoiceHtml(invoiceId);
// Render the PDF with IronPDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Take the PDF stream and rewind it
MemoryStream stream = pdf.Stream;
stream.Position = 0;
// Returning a FileStreamResult prompts a download in the browser
return new FileStreamResult(stream, "application/pdf")
{
FileDownloadName = $"invoice_{invoiceId}.pdf"
};
}
public IActionResult ViewInvoice(int invoiceId)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(GenerateInvoiceHtml(invoiceId));
// Returning BinaryData with no filename displays the PDF inline
return File(pdf.BinaryData, "application/pdf");
}
```
### Comment exporter un PDF en ASP.NET WebForms ?
Les applications WebForms traditionnelles ASP.NET écrivent les octets à travers l'objet `Response` à la place. Configurez les options de rendu une fois, tirez `BinaryData`, et diffusez-le au client.
```csharp
// ASP.NET WebForms PDF export
protected void ExportButton_Click(object sender, EventArgs e)
{
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions = new ChromePdfRenderOptions()
{
PaperSize = IronPdf.Rendering.PdfPaperSize.Letter,
PrintHtmlBackgrounds = true,
CreatePdfFormsFromHtml = true
};
// Render from custom HTML
PdfDocument MyPdfDocument = renderer.RenderHtmlAsPdf(GetReportHtml());
// Retrieve the PDF bytes
byte[] Binary = MyPdfDocument.BinaryData;
// Write the bytes to the response as a download
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition",
"attachment; filename=report_" + DateTime.Now.ToString("yyyyMMdd") + ".pdf");
Context.Response.OutputStream.Write(Binary, 0, Binary.Length);
Response.Flush();
Response.End();
}
```
## Comment exporter un PDF/A, PDF/UA, et des révisions ?
Au-delà des cibles de sauvegarde générales, IronPDF écrit trois formats spécifiques à la conformité. `SaveAsPdfA` produit un fichier d'archivage, `SaveAsPdfUA` produit un fichier accessible étiqueté, et `SaveAsRevision` ajoute une révision incrémentielle à un document existant.
### Comment enregistrer un PDF/A Archive
`SaveAsPdfA` écrit un fichier autonome qui respecte la norme ISO PDF/A pour un stockage à long terme, intégrant les polices et les données de couleur nécessaires à un lecteur même des années plus tard. L'argument `PdfAVersions` sélectionne le niveau de conformité, tel que `PdfA3b`.
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render the document you want to archive
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Archived Document</h1>");
// Save as a PDF/A-3b file for long-term archiving.
// PdfAVersions controls the conformance level (PdfA1b, PdfA2b, PdfA3b, PdfA4, and others).
pdf.SaveAsPdfA("archive-pdfa.pdf", IronPdf.PdfAVersions.PdfA3b);
```
### Sortie
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/archive-pdfa.pdf" width="100%" height="500px"></iframe>
### Comment enregistrer un fichier PDF/UA Accessible
`SaveAsPdfUA` écrit un PDF étiqueté qui respecte la norme d'accessibilité PDF/UA, sur laquelle les lecteurs d'écran comptent pour naviguer dans le document. Le troisième argument définit la langue du document afin que la technologie d'assistance le lise avec la bonne voix.
```csharp
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render content that should be tagged for assistive technology
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Accessible Document</h1><p>Tagged for screen readers.</p>");
// Save as a PDF/UA-1 file. The last argument sets the document's primary
// language, which screen readers use to choose the correct voice.
pdf.SaveAsPdfUA("accessible-pdfua.pdf", IronPdf.PdfUAVersions.PdfUA1, IronPdf.NaturalLanguages.English_UnitedKingdom);
```
### Sortie
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/accessible-pdfua.pdf" width="100%" height="500px"></iframe>
### Comment enregistrer une révision incrémentale
`SaveAsRevision` ajoute des modifications à un fichier au lieu de le réécrire, de sorte que les révisions antérieures, y compris toutes signatures numériques, restent intactes. Le document doit être ouvert avec `ChangeTrackingModes.EnableChangeTracking` pour que la sauvegarde incrémentielle fonctionne.
```csharp
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Create and save the original revision of the document
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Versioned Document</h1>");
pdf.SaveAs("revision-base.pdf");
// Re-open with change tracking enabled so the next save appends a revision
// instead of rewriting the file. This preserves earlier signed revisions.
PdfDocument loaded = PdfDocument.FromFile("revision-base.pdf", null, null, ChangeTrackingModes.EnableChangeTracking);
// Write an incremental revision on top of the existing bytes
loaded.SaveAsRevision("revision-v2.pdf");
```
### Sortie
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/revision-v2.pdf" width="100%" height="500px"></iframe>
## Comment exporter un PDF de manière asynchrone ?
Le rendu bloque le thread appelant jusqu'à ce que le moteur Chromium termine. Dans une requête web ou une interface utilisateur de bureau, appelez `RenderHtmlAsPdfAsync` à la place et attendez-le, puis enregistrez le document retourné avec la même méthode `SaveAs`. Cela libère le thread pendant que le rendu fonctionne.
```csharp
using IronPdf;
using System.Threading.Tasks;
var renderer = new ChromePdfRenderer();
// Render off the calling thread so a web request or UI stays responsive
PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async Generated PDF</h1>");
// SaveAs writes the finished document to disk once the render completes
pdf.SaveAs("async-render.pdf");
```
### Sortie
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/async-render.pdf" width="100%" height="500px"></iframe>
## Conclusion
IronPDF exporte un `PdfDocument` rendu sur le disque, la mémoire, une réponse HTTP, ou un fichier étiqueté, chacun par une méthode unique sur le document que vous avez déjà construit. Choisissez la cible qui correspond à l'endroit où les octets doivent aller, et appliquez `SaveAsPdfA`, `SaveAsPdfUA`, ou `SaveAsRevision` lorsque le résultat doit respecter une norme d'archivage, d'accessibilité ou de versionnement.
À partir d'ici, gardez les octets hors du disque entièrement avec le flux de travail [PDF memory stream](https://ironpdf.com/how-to/pdf-memory-stream/), ou verrouillez un fichier enregistré à l'aide de [permissions et mots de passe PDF](https://ironpdf.com/how-to/pdf-permissions-passwords/).
IronPDF exporte un PdfDocument rendu en PDF en C# via SaveAs pour le disque, les propriétés Stream et BinaryData pour la mémoire, et SaveAsPdfA, SaveAsPdfUA et SaveAsRevision pour un fichier d'archivage, accessible et versionné. Chaque méthode prend un document déjà rendu et l'écrit vers la destination dont votre application a besoin, que ce soit un chemin de fichier, un tampon en mémoire ou une réponse HTTP.
Ce guide parcourt chaque cible d'exportation, d'une sauvegarde de fichier en une ligne jusqu'à servir un PDF directement dans un navigateur, et les méthodes qui produisent une sortie étiquetée de conformité.
Démarrage rapide : Exporter du HTML en PDF en C#
Rendre le HTML et écrire le résultat sur le disque en une seule instruction. L'appel RenderHtmlAsPdf retourne un PdfDocument, et SaveAs le sauvegarde.
Enregistrez sur disque avec SaveAs, ou en mémoire avec Stream et BinaryData
Servez les octets sur le web comme réponse de fichier plutôt que comme HTML
Exportez une sortie conforme avec SaveAsPdfA, SaveAsPdfUA, ou SaveAsRevision
Quelles sont les options pour enregistrer des PDFs ?
IronPDF sauvegarde un PdfDocument vers quatre types de destination : un fichier sur le disque, un MemoryStream en mémoire, un byte[] brut, et un fichier étiqueté pour l'accessibilité, l'archivage ou la révision incrémentielle. Les sections ci-dessous couvrent chaque cible avec un exemple testé, en commençant par l'enregistrement de fichier le plus simple et en terminant par les méthodes d'exportation spécialisées.
Comment enregistrer un PDF sur le disque
Utilisez la méthode SaveAs pour écrire un PdfDocument vers un chemin de fichier. C'est la route directe pour les applications de bureau ou tout processus serveur qui garde les PDFs sur le système de fichiers.
// Complete example for saving PDF to diskusing IronPdf;// Initialize the Chrome PDF renderervar renderer = new ChromePdfRenderer();// Create HTML content with stylingstring htmlContent = @"<html><head> <style> body { font-family: Arial, sans-serif; margin: 40px; } h1 { color: #333; } .content { line-height: 1.6; } </style></head><body> <h1>Invoice #12345</h1> <div class='content'> <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p> <p>Thank you for your business!</p> </div></body></html>";// Render HTML to PDFPdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);// Save to disk with standard methodpdf.SaveAs("invoice_12345.pdf");// Save with password protection for sensitive documentspdf.Password = "secure123";pdf.SaveAs("protected_invoice_12345.pdf");
// 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 = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
h1 { color: #333; }
.content { line-height: 1.6; }
</style>
</head>
<body>
<h1>Invoice #12345</h1>
<div class='content'>
<p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
<p>Thank you for your business!</p>
</div>
</body>
</html>";
// 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");
IRONVBCONVERTERERROR developers@ironsoftware.com
IRON VB CONVERTER ERROR developers@ironsoftware.com
Le même exemple définit également la propriété Password avant une seconde sauvegarde, ce qui crypte le fichier de sorte qu'il ne peut pas être ouvert sans ce mot de passe. Pour un contrôle plus précis sur ce qu'un destinataire peut faire avec le fichier, consultez le guide sur les permissions et mots de passe PDF.
Sortie
Comment enregistrer un PDF dans un MemoryStream
La propriété Stream renvoie le document en tant que System.IO.MemoryStream. Utilisez-le lorsque vous devez transmettre le PDF à une autre méthode, le télécharger ou l'envoyer par e-mail sans écrire d'abord un fichier temporaire. Lisez plus sur travailler avec les flux de mémoire PDF.
// Example: Save PDF to MemoryStreamusing IronPdf;using System.IO;var renderer = new ChromePdfRenderer();// Render HTML contentPdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Monthly Report</h1><p>Sales figures...</p>");// Get the PDF as a MemoryStreamMemoryStream 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 donestream.Dispose();
// Example: Save PDF to MemoryStream
using IronPdf;
using System.IO;
var renderer = new ChromePdfRenderer();
// Render HTML content
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Monthly Report</h1><p>Sales figures...</p>");
// 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();
ImportsIronPdfImportsSystem.IO' Example: Save PDF to MemoryStreamDim renderer As New ChromePdfRenderer()' Render HTML contentDim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("<h1>Monthly Report</h1><p>Sales figures...</p>")' Get the PDF as a MemoryStreamDim stream AsMemoryStream = 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 donestream.Dispose()
Imports IronPdf
Imports System.IO
' Example: Save PDF to MemoryStream
Dim renderer As New ChromePdfRenderer()
' Render HTML content
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Monthly Report</h1><p>Sales figures...</p>")
' Get the PDF as a MemoryStream
Dim stream As MemoryStream = 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()
Sortie
Comment Enregistrer en Données Binaires
La propriété BinaryData renvoie le document en tant que byte[]. Un tableau d'octets convient aux colonnes de base de données, aux entrées de cache et aux API qui acceptent les octets bruts plutôt qu'un flux.
// Example: Convert PDF to binary datausing IronPdf;var renderer = new ChromePdfRenderer();// Configure rendering options for better qualityrenderer.RenderingOptions = new ChromePdfRenderOptions(){MarginTop = 20,MarginBottom = 20,MarginLeft = 10,MarginRight = 10,PaperSize = IronPdf.Rendering.PdfPaperSize.A4};// Render content to PDFPdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Contract Document</h1>");// Get binary databyte[] binaryData = pdf.BinaryData;// Example: Store in database// database.StorePdfDocument(documentId, binaryData);// Example: Send via API// apiClient.UploadDocument(binaryData);
// 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("<h1>Contract Document</h1>");
// Get binary data
byte[] binaryData = pdf.BinaryData;
// Example: Store in database
// database.StorePdfDocument(documentId, binaryData);
// Example: Send via API
// apiClient.UploadDocument(binaryData);
ImportsIronPdf' Example: Convert PDF to binary dataDim renderer As New ChromePdfRenderer()' Configure rendering options for better qualityrenderer.RenderingOptions = New ChromePdfRenderOptions() With { .MarginTop = 20, .MarginBottom = 20, .MarginLeft = 10, .MarginRight = 10, .PaperSize = IronPdf.Rendering.PdfPaperSize.A4}' Render content to PDFDim pdf AsPdfDocument = renderer.RenderHtmlAsPdf("<h1>Contract Document</h1>")' Get binary dataDim binaryData AsByte() = pdf.BinaryData' Example: Store in database' database.StorePdfDocument(documentId, binaryData)' Example: Send via API' apiClient.UploadDocument(binaryData)
Imports IronPdf
' Example: Convert PDF to binary data
Dim renderer As New ChromePdfRenderer()
' Configure rendering options for better quality
renderer.RenderingOptions = New ChromePdfRenderOptions() With {
.MarginTop = 20,
.MarginBottom = 20,
.MarginLeft = 10,
.MarginRight = 10,
.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
}
' Render content to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Contract Document</h1>")
' Get binary data
Dim binaryData As Byte() = pdf.BinaryData
' Example: Store in database
' database.StorePdfDocument(documentId, binaryData)
' Example: Send via API
' apiClient.UploadDocument(binaryData)
Lorsque vous avez besoin de la direction inverse, charger des octets dans un fichier modifiable, le guide sur convertir des PDFs en MemoryStream le couvre.
Sortie
Comment servir un PDF depuis un serveur web vers le navigateur ?
Pour retourner un PDF sur HTTP, vous envoyez les octets comme réponse de fichier, pas comme HTML. Les deux Stream et BinaryData se branchent directement dans les types de résultats de fichier qu'ASP.NET fournit, de sorte que le contrôleur rend un document et le renvoie sans jamais toucher le disque.
Comment exporter un PDF en MVC ?
Dans ASP.NET Core MVC, enveloppez le Stream dans un FileStreamResult pour demander un téléchargement, ou passez BinaryData à File pour afficher le PDF en ligne. Les deux actions ci-dessous montrent les deux. Cela s'associe naturellement avec le rendu de vues CSHTML en PDF.
// MVC controller methods for PDF exportpublic IActionResultDownloadInvoice(int invoiceId){ // Generate your HTML content string htmlContent = GenerateInvoiceHtml(invoiceId); // Render the PDF with IronPDF var renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent); // Take the PDF stream and rewind it MemoryStream stream = pdf.Stream; stream.Position = 0; // Returning a FileStreamResult prompts a download in the browser return new FileStreamResult(stream, "application/pdf") {FileDownloadName = $"invoice_{invoiceId}.pdf" };}public IActionResultViewInvoice(int invoiceId){ var renderer = new ChromePdfRenderer(); PdfDocument pdf = renderer.RenderHtmlAsPdf(GenerateInvoiceHtml(invoiceId)); // Returning BinaryData with no filename displays the PDF inline returnFile(pdf.BinaryData, "application/pdf");}
// MVC controller methods for PDF export
public IActionResult DownloadInvoice(int invoiceId)
{
// Generate your HTML content
string htmlContent = GenerateInvoiceHtml(invoiceId);
// Render the PDF with IronPDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Take the PDF stream and rewind it
MemoryStream stream = pdf.Stream;
stream.Position = 0;
// Returning a FileStreamResult prompts a download in the browser
return new FileStreamResult(stream, "application/pdf")
{
FileDownloadName = $"invoice_{invoiceId}.pdf"
};
}
public IActionResult ViewInvoice(int invoiceId)
{
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(GenerateInvoiceHtml(invoiceId));
// Returning BinaryData with no filename displays the PDF inline
return File(pdf.BinaryData, "application/pdf");
}
C#
Comment exporter un PDF en ASP.NET WebForms ?
Les applications WebForms traditionnelles ASP.NET écrivent les octets à travers l'objet Response à la place. Configurez les options de rendu une fois, tirez BinaryData, et diffusez-le au client.
// ASP.NET WebForms PDF exportprotected voidExportButton_Click(object sender, EventArgs e){ var renderer = new ChromePdfRenderer(); // Configure rendering options renderer.RenderingOptions = new ChromePdfRenderOptions() {PaperSize = IronPdf.Rendering.PdfPaperSize.Letter,PrintHtmlBackgrounds = true,CreatePdfFormsFromHtml = true }; // Render from custom HTML PdfDocumentMyPdfDocument = renderer.RenderHtmlAsPdf(GetReportHtml()); // Retrieve the PDF bytes byte[] Binary = MyPdfDocument.BinaryData; // Write the bytes to the response as a downloadResponse.Clear();Response.ContentType = "application/octet-stream";Response.AddHeader("Content-Disposition", "attachment; filename=report_" + DateTime.Now.ToString("yyyyMMdd") + ".pdf");Context.Response.OutputStream.Write(Binary, 0, Binary.Length);Response.Flush();Response.End();}
// ASP.NET WebForms PDF export
protected void ExportButton_Click(object sender, EventArgs e)
{
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions = new ChromePdfRenderOptions()
{
PaperSize = IronPdf.Rendering.PdfPaperSize.Letter,
PrintHtmlBackgrounds = true,
CreatePdfFormsFromHtml = true
};
// Render from custom HTML
PdfDocument MyPdfDocument = renderer.RenderHtmlAsPdf(GetReportHtml());
// Retrieve the PDF bytes
byte[] Binary = MyPdfDocument.BinaryData;
// Write the bytes to the response as a download
Response.Clear();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition",
"attachment; filename=report_" + DateTime.Now.ToString("yyyyMMdd") + ".pdf");
Context.Response.OutputStream.Write(Binary, 0, Binary.Length);
Response.Flush();
Response.End();
}
C#
Ma bibliothèque préférée de ce genre est IronPDF. Elle permet une manipulation rapide et efficace des fichiers PDF. Elle dispose également de nombreuses fonctionnalités précieuses, comme l'exportation au format PDF/A et la signature numérique des documents PDF.
IronOCR signifie que nous pouvons économiser 40 000 $ par an grâce au traitement manuel, tout en améliorant la productivité et en libérant des ressources pour des tâches à fort impact. Je le recommande vivement.
Iron Suite joue un rôle crucial dans nos opérations. Ce sont des outils qui augmentent l'efficacité de l'entreprise, y compris la création de plans d'étage et l'amélioration de la gestion des stocks.
Comment exporter un PDF/A, PDF/UA, et des révisions ?
Au-delà des cibles de sauvegarde générales, IronPDF écrit trois formats spécifiques à la conformité. SaveAsPdfA produit un fichier d'archivage, SaveAsPdfUA produit un fichier accessible étiqueté, et SaveAsRevision ajoute une révision incrémentielle à un document existant.
Comment enregistrer un PDF/A Archive
SaveAsPdfA écrit un fichier autonome qui respecte la norme ISO PDF/A pour un stockage à long terme, intégrant les polices et les données de couleur nécessaires à un lecteur même des années plus tard. L'argument PdfAVersions sélectionne le niveau de conformité, tel que PdfA3b.
using IronPdf;var renderer = new ChromePdfRenderer();// Render the document you want to archivePdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Archived Document</h1>");// Save as a PDF/A-3b file for long-term archiving.// PdfAVersions controls the conformance level (PdfA1b, PdfA2b, PdfA3b, PdfA4, and others).pdf.SaveAsPdfA("archive-pdfa.pdf", IronPdf.PdfAVersions.PdfA3b);
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render the document you want to archive
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Archived Document</h1>");
// Save as a PDF/A-3b file for long-term archiving.
// PdfAVersions controls the conformance level (PdfA1b, PdfA2b, PdfA3b, PdfA4, and others).
pdf.SaveAsPdfA("archive-pdfa.pdf", IronPdf.PdfAVersions.PdfA3b);
C#
Sortie
Comment enregistrer un fichier PDF/UA Accessible
SaveAsPdfUA écrit un PDF étiqueté qui respecte la norme d'accessibilité PDF/UA, sur laquelle les lecteurs d'écran comptent pour naviguer dans le document. Le troisième argument définit la langue du document afin que la technologie d'assistance le lise avec la bonne voix.
using IronPdf;var renderer = new ChromePdfRenderer();// Render content that should be tagged for assistive technologyPdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Accessible Document</h1><p>Tagged for screen readers.</p>");// Save as a PDF/UA-1 file. The last argument sets the document's primary// language, which screen readers use to choose the correct voice.pdf.SaveAsPdfUA("accessible-pdfua.pdf", IronPdf.PdfUAVersions.PdfUA1, IronPdf.NaturalLanguages.English_UnitedKingdom);
using IronPdf;
var renderer = new ChromePdfRenderer();
// Render content that should be tagged for assistive technology
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Accessible Document</h1><p>Tagged for screen readers.</p>");
// Save as a PDF/UA-1 file. The last argument sets the document's primary
// language, which screen readers use to choose the correct voice.
pdf.SaveAsPdfUA("accessible-pdfua.pdf", IronPdf.PdfUAVersions.PdfUA1, IronPdf.NaturalLanguages.English_UnitedKingdom);
C#
Sortie
Comment enregistrer une révision incrémentale
SaveAsRevision ajoute des modifications à un fichier au lieu de le réécrire, de sorte que les révisions antérieures, y compris toutes signatures numériques, restent intactes. Le document doit être ouvert avec ChangeTrackingModes.EnableChangeTracking pour que la sauvegarde incrémentielle fonctionne.
using IronPdf;using IronPdf.Rendering;var renderer = new ChromePdfRenderer();// Create and save the original revision of the documentPdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Versioned Document</h1>");pdf.SaveAs("revision-base.pdf");// Re-open with change tracking enabled so the next save appends a revision// instead of rewriting the file. This preserves earlier signed revisions.PdfDocument loaded = PdfDocument.FromFile("revision-base.pdf", null, null, ChangeTrackingModes.EnableChangeTracking);// Write an incremental revision on top of the existing bytesloaded.SaveAsRevision("revision-v2.pdf");
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Create and save the original revision of the document
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Versioned Document</h1>");
pdf.SaveAs("revision-base.pdf");
// Re-open with change tracking enabled so the next save appends a revision
// instead of rewriting the file. This preserves earlier signed revisions.
PdfDocument loaded = PdfDocument.FromFile("revision-base.pdf", null, null, ChangeTrackingModes.EnableChangeTracking);
// Write an incremental revision on top of the existing bytes
loaded.SaveAsRevision("revision-v2.pdf");
C#
Sortie
Comment exporter un PDF de manière asynchrone ?
Le rendu bloque le thread appelant jusqu'à ce que le moteur Chromium termine. Dans une requête web ou une interface utilisateur de bureau, appelez RenderHtmlAsPdfAsync à la place et attendez-le, puis enregistrez le document retourné avec la même méthode SaveAs. Cela libère le thread pendant que le rendu fonctionne.
using IronPdf;using System.Threading.Tasks;var renderer = new ChromePdfRenderer();// Render off the calling thread so a web request or UI stays responsivePdfDocument pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async Generated PDF</h1>");// SaveAs writes the finished document to disk once the render completespdf.SaveAs("async-render.pdf");
using IronPdf;
using System.Threading.Tasks;
var renderer = new ChromePdfRenderer();
// Render off the calling thread so a web request or UI stays responsive
PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async Generated PDF</h1>");
// SaveAs writes the finished document to disk once the render completes
pdf.SaveAs("async-render.pdf");
C#
Sortie
Conclusion
IronPDF exporte un PdfDocument rendu sur le disque, la mémoire, une réponse HTTP, ou un fichier étiqueté, chacun par une méthode unique sur le document que vous avez déjà construit. Choisissez la cible qui correspond à l'endroit où les octets doivent aller, et appliquez SaveAsPdfA, SaveAsPdfUA, ou SaveAsRevision lorsque le résultat doit respecter une norme d'archivage, d'accessibilité ou de versionnement.
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.
Can I password-protect a PDF using IronPDF?
Yes, IronPDF allows you to set a password on a `PdfDocument` via the `Password` property before saving it. This ensures that a PDF cannot be opened without the correct password.
What should I do if I need an accessible PDF conforming to PDF/UA standards?
You can create a PDF that conforms to PDF/UA standards using IronPDF by calling the `SaveAsPdfUA` method. This ensures that the document includes tags to aid navigation by screen readers.
How can I keep different versions of a PDF document?
IronPDF supports incremental saves with the `SaveAsRevision` method, which appends changes to an existing PDF file while preserving previous revisions, ideal for maintaining version history.
Why should I consider exporting PDFs using the PDF/A format?
Exporting PDFs in PDF/A format ensures that the document is self-contained and suitable for long-term archiving, as it includes all necessary components like fonts and color data to ensure fidelity over time.
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 et créer des manuels bien structurés et visuellement attrayants.