# Wie exportiere und speichere ich PDFs in IronPDF C#
IronPDF exportiert ein gerendertes `PdfDocument` in PDF in C# durch `SaveAs` für die Festplatte, die `Stream`- und `BinaryData`-Eigenschaften für den Speicher und `SaveAsPdfA`, `SaveAsPdfUA` und `SaveAsRevision` für archivierte, zugängliche und versionierte Ausgaben. Jede Methode nimmt ein bereits gerendertes Dokument und schreibt es an das Ziel, das Ihre Anwendung benötigt, sei es ein Dateipfad, ein In-Memory-Puffer oder eine HTTP-Antwort.
Dieses Handbuch führt durch jedes Exportziel, von einem Ein-Zeilen-Dateispeichern bis hin zur Bereitstellung eines PDF direkt an einen Browser, und die Methoden, die normenkonformes Ausgabe erzeugen.
*as-heading:2(Schnellstart: Exportieren Sie HTML zu PDF in C#)*
Rendern Sie HTML und schreiben Sie das Ergebnis in einer einzigen Anweisung auf die Festplatte. Der `RenderHtmlAsPdf`-Aufruf gibt ein `PdfDocument` zurück, und `SaveAs` speichert es.
```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>Minimaler Arbeitsablauf (5 Schritte)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://www.nuget.org/packages/IronPdf/">Download the C# PDF library from NuGet</a></li>
<li>Rendern oder laden Sie ein <code>PdfDocument</code></li>
<li>Speichern Sie auf Laufwerk mit <code>SaveAs</code>, oder in den Speicher mit <code>Stream</code> und <code>BinaryData</code></li>
<li>Dienen Sie die Bytes als Dateiantwort für das Web, anstatt HTML</li>
<li>Exportieren Sie normenkonforme Ausgabe mit <code>SaveAsPdfA</code>, <code>SaveAsPdfUA</code> oder <code>SaveAsRevision</code></li>
</ol>
</div>
<br class="clear" />
## Welche Optionen gibt es zum Speichern von PDFs?
IronPDF speichert ein `PdfDocument` an vier Arten von Zielen: eine Datei auf der Festplatte, ein im Speicher befindliches `MemoryStream`, ein rohes `byte[]` und eine konform-gekennzeichnete Datei zum Archivieren, für die Zugänglichkeit oder für inkrementelle Revisionen. Die folgenden Abschnitte behandeln jedes Ziel mit einem getesteten Beispiel, beginnend mit dem einfachsten Dateispeichern und endend mit den spezialisierten Exportmethoden.
### Wie speichere ich ein PDF auf dem Laufwerk?
Verwenden Sie die `SaveAs`-Methode, um ein `PdfDocument` an einem Dateipfad zu schreiben. Dies ist der direkte Weg für Desktop-Anwendungen oder jeden Serverprozess, der PDFs auf dem Dateisystem aufbewahrt.
```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");
```
Das gleiche Beispiel setzt auch die `Password`-Eigenschaft, bevor ein zweites Speichern erfolgt, wodurch die Datei verschlüsselt wird und ohne dieses Passwort nicht geöffnet werden kann. Für eine feinere Kontrolle darüber, was ein Empfänger mit der Datei tun kann, lesen Sie die Anleitung zu [PDF-Berechtigungen und -Passwörter](https://ironpdf.com/how-to/pdf-permissions-passwords/).
### Ausgabe
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/save-to-disk.pdf" width="100%" height="500px"></iframe>
### Wie speichere ich ein PDF in einem MemoryStream?
Die `Stream`-Eigenschaft gibt das Dokument als `System.IO.MemoryStream` zurück. Greifen Sie darauf zu, wenn Sie das PDF an eine andere Methode übergeben oder es hochladen oder per E-Mail versenden müssen, ohne zunächst eine temporäre Datei zu schreiben. Lesen Sie mehr über [die Arbeit mit PDF-Memory-Streams](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();
```
### Ausgabe
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/memory-stream.pdf" width="100%" height="500px"></iframe>
### Wie man als Binärdaten speichert
Die `BinaryData`-Eigenschaft gibt das Dokument als `byte[]` zurück. Ein Byte-Array passt zu Datenbankspalten, Cache-Einträgen und APIs, die rohe Bytes statt eines Streams akzeptieren.
```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);
```
Wenn Sie die umgekehrte Richtung benötigen und Bytes wieder in ein bearbeitbares Dokument laden möchten, behandelt die Anleitung zu [Konvertierung von PDFs in einen MemoryStream](https://ironpdf.com/how-to/pdf-to-memory-stream/) dies.
### Ausgabe
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/binary-data.pdf" width="100%" height="500px"></iframe>
## Wie stelle ich ein PDF von einem Webserver an den Browser bereit?
Um ein PDF über HTTP zurückzugeben, senden Sie die Bytes als Dateiantwort, nicht als HTML. Sowohl `Stream` als auch `BinaryData` fügen sich nahtlos in die von ASP.NET bereitgestellten Dateiergebnistypen ein, sodass der Controller ein Dokument rendert und zurückgibt, ohne die Festplatte berühren zu müssen.
### Wie exportiere ich ein PDF in MVC?
In ASP.NET Core MVC, umwickeln Sie das `Stream` in ein `FileStreamResult`, um einen Download zu veranlassen, oder übergeben Sie `BinaryData` an `File`, um das PDF inline anzuzeigen. Die beiden unten stehenden Aktionen zeigen beides. Dies passt natürlich dazu, [CSHTML-Ansichten zu PDF zu rendern](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");
}
```
### Wie exportiere ich ein PDF in ASP.NET WebForms?
Traditionelle ASP.NET WebForms-Anwendungen schreiben die Bytes stattdessen über das `Response`-Objekt. Konfigurieren Sie die Rendering-Optionen einmal, ziehen Sie `BinaryData` und streamen Sie es an den 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();
}
```
## Wie exportiere ich PDF/A, PDF/UA und Revisionen?
Über die allgemeinen Speicherziele hinaus schreibt IronPDF drei konformitätsspezifische Formate. `SaveAsPdfA` erzeugt eine Archivdatei, `SaveAsPdfUA` erzeugt eine getaggte zugängliche Datei, und `SaveAsRevision` fügt eine inkrementelle Revision an ein bestehendes Dokument an.
### Wie speichere ich ein PDF/A-Archiv
`SaveAsPdfA` schreibt eine eigenständige Datei, die den ISO PDF/A-Standard für die Langzeitarchivierung erfüllt und die Schriftarten und Farbdaten einbettet, die ein Leser in Jahren benötigen wird. Das `PdfAVersions`-Argument wählt das Konformitätslevel aus, z.B. `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);
```
### Ausgabe
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/archive-pdfa.pdf" width="100%" height="500px"></iframe>
### Wie speichere ich eine zugängliche PDF/UA-Datei
`SaveAsPdfUA` schreibt ein getaggtes PDF, das den PDF/UA-Zugänglichkeitsstandard erfüllt, auf den Bildschirmleser angewiesen sind, um das Dokument zu navigieren. Das dritte Argument legt die Dokumentsprache fest, sodass unterstützende Technologie es mit der richtigen Stimme liest.
```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);
```
### Ausgabe
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/accessible-pdfua.pdf" width="100%" height="500px"></iframe>
### Wie speichere ich eine inkrementelle Revision
`SaveAsRevision` fügt einer Datei Änderungen hinzu, anstatt sie neu zu schreiben, sodass frühere Revisionen, einschließlich digitaler Signaturen, intakt bleiben. Das Dokument muss mit `ChangeTrackingModes.EnableChangeTracking` geöffnet werden, damit das inkrementelle Speichern funktioniert.
```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");
```
### Ausgabe
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/revision-v2.pdf" width="100%" height="500px"></iframe>
## Wie exportiere ich ein PDF asynchron?
Beim Rendering wird der aufrufende Thread blockiert, bis die Chromium-Engine fertig ist. In einer Webanfrage oder einer Desktop-UI, rufen Sie stattdessen `RenderHtmlAsPdfAsync` auf und warten Sie darauf, dann speichern Sie das zurückgegebene Dokument mit der gleichen `SaveAs`-Methode. Dies hält den Thread frei, während das Rendering läuft.
```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");
```
### Ausgabe
<iframe loading="lazy" src="/static-assets/pdf/how-to/export-save-pdf-csharp/async-render.pdf" width="100%" height="500px"></iframe>
## Abschluss
IronPDF exportiert ein gerendertes `PdfDocument` auf Festplatte, Speicher, eine HTTP-Antwort oder eine konform-gekennzeichnete Datei, jeweils durch eine einzige Methode auf dem bereits erstellten Dokument. Wählen Sie das Ziel, das dem Speicherort entspricht, an den die Bytes gesendet werden müssen, und wenden Sie `SaveAsPdfA`, `SaveAsPdfUA` oder `SaveAsRevision` an, wenn die Ausgabe einem Archivierungs-, Zugänglichkeits- oder Versionierungsstandard entsprechen muss.
Von hier aus halten Sie die Bytes vollständig von der Festplatte mit dem [PDF-Speicher-Stream](https://ironpdf.com/how-to/pdf-memory-stream/) Workflow fern oder sichern Sie eine gespeicherte Datei mit [PDF-Berechtigungen und Passwörtern](https://ironpdf.com/how-to/pdf-permissions-passwords/).
IronPDF exportiert ein gerendertes PdfDocument in PDF in C# durch SaveAs für die Festplatte, die Stream- und BinaryData-Eigenschaften für den Speicher und SaveAsPdfA, SaveAsPdfUA und SaveAsRevision für archivierte, zugängliche und versionierte Ausgaben. Jede Methode nimmt ein bereits gerendertes Dokument und schreibt es an das Ziel, das Ihre Anwendung benötigt, sei es ein Dateipfad, ein In-Memory-Puffer oder eine HTTP-Antwort.
Dieses Handbuch führt durch jedes Exportziel, von einem Ein-Zeilen-Dateispeichern bis hin zur Bereitstellung eines PDF direkt an einen Browser, und die Methoden, die normenkonformes Ausgabe erzeugen.
Schnellstart: Exportieren Sie HTML zu PDF in C#
Rendern Sie HTML und schreiben Sie das Ergebnis in einer einzigen Anweisung auf die Festplatte. Der RenderHtmlAsPdf-Aufruf gibt ein PdfDocument zurück, und SaveAs speichert es.
1Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf
Install-Package IronPdf
2Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
Speichern Sie auf Laufwerk mit SaveAs, oder in den Speicher mit Stream und BinaryData
Dienen Sie die Bytes als Dateiantwort für das Web, anstatt HTML
Exportieren Sie normenkonforme Ausgabe mit SaveAsPdfA, SaveAsPdfUA oder SaveAsRevision
Welche Optionen gibt es zum Speichern von PDFs?
IronPDF speichert ein PdfDocument an vier Arten von Zielen: eine Datei auf der Festplatte, ein im Speicher befindliches MemoryStream, ein rohes byte[] und eine konform-gekennzeichnete Datei zum Archivieren, für die Zugänglichkeit oder für inkrementelle Revisionen. Die folgenden Abschnitte behandeln jedes Ziel mit einem getesteten Beispiel, beginnend mit dem einfachsten Dateispeichern und endend mit den spezialisierten Exportmethoden.
Wie speichere ich ein PDF auf dem Laufwerk?
Verwenden Sie die SaveAs-Methode, um ein PdfDocument an einem Dateipfad zu schreiben. Dies ist der direkte Weg für Desktop-Anwendungen oder jeden Serverprozess, der PDFs auf dem Dateisystem aufbewahrt.
// 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
Das gleiche Beispiel setzt auch die Password-Eigenschaft, bevor ein zweites Speichern erfolgt, wodurch die Datei verschlüsselt wird und ohne dieses Passwort nicht geöffnet werden kann. Für eine feinere Kontrolle darüber, was ein Empfänger mit der Datei tun kann, lesen Sie die Anleitung zu PDF-Berechtigungen und -Passwörter.
Ausgabe
Wie speichere ich ein PDF in einem MemoryStream?
Die Stream-Eigenschaft gibt das Dokument als System.IO.MemoryStream zurück. Greifen Sie darauf zu, wenn Sie das PDF an eine andere Methode übergeben oder es hochladen oder per E-Mail versenden müssen, ohne zunächst eine temporäre Datei zu schreiben. Lesen Sie mehr über die Arbeit mit PDF-Memory-Streams.
// 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()
Ausgabe
Wie man als Binärdaten speichert
Die BinaryData-Eigenschaft gibt das Dokument als byte[] zurück. Ein Byte-Array passt zu Datenbankspalten, Cache-Einträgen und APIs, die rohe Bytes statt eines Streams akzeptieren.
// 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)
Wenn Sie die umgekehrte Richtung benötigen und Bytes wieder in ein bearbeitbares Dokument laden möchten, behandelt die Anleitung zu Konvertierung von PDFs in einen MemoryStream dies.
Ausgabe
Wie stelle ich ein PDF von einem Webserver an den Browser bereit?
Um ein PDF über HTTP zurückzugeben, senden Sie die Bytes als Dateiantwort, nicht als HTML. Sowohl Stream als auch BinaryData fügen sich nahtlos in die von ASP.NET bereitgestellten Dateiergebnistypen ein, sodass der Controller ein Dokument rendert und zurückgibt, ohne die Festplatte berühren zu müssen.
Wie exportiere ich ein PDF in MVC?
In ASP.NET Core MVC, umwickeln Sie das Stream in ein FileStreamResult, um einen Download zu veranlassen, oder übergeben Sie BinaryData an File, um das PDF inline anzuzeigen. Die beiden unten stehenden Aktionen zeigen beides. Dies passt natürlich dazu, CSHTML-Ansichten zu PDF zu rendern.
// 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#
Wie exportiere ich ein PDF in ASP.NET WebForms?
Traditionelle ASP.NET WebForms-Anwendungen schreiben die Bytes stattdessen über das Response-Objekt. Konfigurieren Sie die Rendering-Optionen einmal, ziehen Sie BinaryData und streamen Sie es an den 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#
Meine Lieblingsbibliothek dieser Art ist IronPDF. Es ermöglicht eine schnelle und effiziente Bearbeitung von PDF-Dateien. Es verfügt auch über viele wertvolle Funktionen, wie das Exportieren in das PDF/A-Format und das digitale Signieren von PDF-Dokumenten.
IronOCR bedeutet, dass wir jährlich 40.000 $ durch manuelle Verarbeitung einsparen können, während die Produktivität gesteigert wird und Ressourcen für wichtige Aufgaben freigesetzt werden. Ich würde es sehr empfehlen.
Die Iron Suite spielt eine entscheidende Rolle in unseren Operationen. Diese Werkzeuge erhöhen die Effizienz im gesamten Unternehmen, einschließlich der Erstellung von Grundrissen und der Verbesserung des Bestandsmanagements.
Über die allgemeinen Speicherziele hinaus schreibt IronPDF drei konformitätsspezifische Formate. SaveAsPdfA erzeugt eine Archivdatei, SaveAsPdfUA erzeugt eine getaggte zugängliche Datei, und SaveAsRevision fügt eine inkrementelle Revision an ein bestehendes Dokument an.
Wie speichere ich ein PDF/A-Archiv
SaveAsPdfA schreibt eine eigenständige Datei, die den ISO PDF/A-Standard für die Langzeitarchivierung erfüllt und die Schriftarten und Farbdaten einbettet, die ein Leser in Jahren benötigen wird. Das PdfAVersions-Argument wählt das Konformitätslevel aus, z.B. 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#
Ausgabe
Wie speichere ich eine zugängliche PDF/UA-Datei
SaveAsPdfUA schreibt ein getaggtes PDF, das den PDF/UA-Zugänglichkeitsstandard erfüllt, auf den Bildschirmleser angewiesen sind, um das Dokument zu navigieren. Das dritte Argument legt die Dokumentsprache fest, sodass unterstützende Technologie es mit der richtigen Stimme liest.
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#
Ausgabe
Wie speichere ich eine inkrementelle Revision
SaveAsRevision fügt einer Datei Änderungen hinzu, anstatt sie neu zu schreiben, sodass frühere Revisionen, einschließlich digitaler Signaturen, intakt bleiben. Das Dokument muss mit ChangeTrackingModes.EnableChangeTracking geöffnet werden, damit das inkrementelle Speichern funktioniert.
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#
Ausgabe
Wie exportiere ich ein PDF asynchron?
Beim Rendering wird der aufrufende Thread blockiert, bis die Chromium-Engine fertig ist. In einer Webanfrage oder einer Desktop-UI, rufen Sie stattdessen RenderHtmlAsPdfAsync auf und warten Sie darauf, dann speichern Sie das zurückgegebene Dokument mit der gleichen SaveAs-Methode. Dies hält den Thread frei, während das Rendering läuft.
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#
Ausgabe
Abschluss
IronPDF exportiert ein gerendertes PdfDocument auf Festplatte, Speicher, eine HTTP-Antwort oder eine konform-gekennzeichnete Datei, jeweils durch eine einzige Methode auf dem bereits erstellten Dokument. Wählen Sie das Ziel, das dem Speicherort entspricht, an den die Bytes gesendet werden müssen, und wenden Sie SaveAsPdfA, SaveAsPdfUA oder SaveAsRevision an, wenn die Ausgabe einem Archivierungs-, Zugänglichkeits- oder Versionierungsstandard entsprechen muss.
Mit der ChromePdfRenderer-Klasse von IronPDF können Sie in C# HTML in PDF exportieren. Erstellen Sie einfach eine Renderer-Instanz, verwenden Sie die Methode RenderHtmlAsPdf(), um Ihren HTML-Inhalt zu konvertieren, und speichern Sie ihn dann mit der Methode SaveAs(). IronPDF macht es einfach, HTML-Strings, Dateien oder URLs direkt in PDF-Dokumente zu konvertieren.
Welche verschiedenen Methoden gibt es, um eine PDF-Datei mit C# zu speichern?
IronPDF bietet mehrere Methoden zum Speichern von PDFs: SaveAs() für das Speichern auf der Festplatte, Stream für das Ausliefern von PDFs in Webanwendungen, ohne temporäre Dateien zu erstellen, und BinaryData, um das PDF als Byte-Array zu erhalten. Jede Methode in IronPDF dient unterschiedlichen Anwendungsfällen, von der einfachen Dateispeicherung bis hin zur dynamischen Bereitstellung im Web.
Kann ich eine PDF-Datei im Speicher statt auf der Festplatte speichern?
Ja, IronPDF ermöglicht das Speichern von PDFs im Speicher mit System.IO.MemoryStream. Dies ist nützlich für Webanwendungen, bei denen Sie PDFs direkt an Benutzer ausgeben möchten, ohne temporäre Dateien auf dem Server zu erstellen. Sie können die Stream-Eigenschaft verwenden oder die PDF-Datei in Binärdaten umwandeln.
Wie kann ich beim Speichern einer PDF-Datei einen Passwortschutz hinzufügen?
IronPDF ermöglicht den Kennwortschutz, indem es die Kennworteigenschaft des PdfDocument-Objekts vor dem Speichern festlegt. Weisen Sie pdf.Password einfach einen Passwort-String zu und verwenden Sie dann SaveAs(), um eine geschützte PDF-Datei zu erstellen, die zum Öffnen das Passwort erfordert.
Kann ich eine PDF-Datei direkt an Webbrowser weitergeben, ohne sie auf der Festplatte zu speichern?
Ja, IronPDF ermöglicht es Ihnen, PDFs direkt als Binärdaten an Webbrowser zu übermitteln. Sie können die BinaryData-Eigenschaft verwenden, um die PDF-Datei als Byte-Array abzurufen und über den Response-Stream Ihrer Webanwendung bereitzustellen, so dass keine temporären Dateien gespeichert werden müssen.
Wie kann ich am einfachsten HTML in einer Zeile in PDF konvertieren und speichern?
IronPDF bietet eine Ein-Zeilen-Lösung: new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("Ihr HTML").SaveAs("output.pdf"). Dies erstellt einen Renderer, wandelt HTML in PDF um und speichert es auf der Festplatte in einer einzigen Anweisung.
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 hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.