Wie man ein PDF in C# exportiert | IronPDF

C# Code-Beispiel-Tutorial zum Exportieren in PDF

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

Verwenden Sie IronPDF, um HTML-Inhalte in C# mit einfachen Methoden wie SaveAs(), Stream und BinaryData in PDF zu exportieren. Mit dieser C#-PDF-Bibliothek können Entwickler programmatisch HTML- in PDF-Dokumente umwandeln und diese in Webbrowsern bereitstellen oder auf der Festplatte speichern.

IronPDF ist eine C# PDF-Bibliothek, die es Ihnen ermöglicht, mit C# Ihr HTML als PDF zu speichern. Es ermöglicht auch C# / VB-Entwicklern, PDF-Dokumente programmatisch zu bearbeiten. Ob Sie nun Berichte generieren, Rechnungen erstellen oder Webseiten konvertieren, IronPDF bietet eine robuste Lösung für die PDF-Generierung in C#-Anwendungen.

Schnellstart: Exportieren von HTML zu PDF in C# mit IronPDF

Exportieren Sie Ihre HTML-Inhalte mit IronPDF in C# in das PDF-Format. Dieser Leitfaden zeigt Ihnen, wie Sie HTML in ein PDF-Dokument konvertieren und es mit nur wenigen Zeilen Code speichern können. IronPDF vereinfacht die PDF-Erzeugung und ermöglicht es Entwicklern, PDF-Exportfunktionen in ihre Anwendungen zu integrieren.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronPDF mit dem NuGet-Paketmanager.

    PM > Install-Package IronPdf

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>HelloPDF</h1>").SaveAs("myExportedFile.pdf");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronPDF in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer


Was sind die verschiedenen Optionen zum Speichern von PDFs?

Bei der Arbeit mit PDF-Dokumenten in C# bietet IronPDF mehrere Optionen zum Speichern und Exportieren der erzeugten PDFs. Jede Methode dient unterschiedlichen Anwendungsfällen, von der einfachen Dateispeicherung bis zur Bereitstellung von PDFs in Webanwendungen. Die folgenden Abschnitte behandeln die verfügbaren Optionen zum Exportieren und Speichern von PDFs in C#.

Wie man PDF auf Festplatte speichert

Verwenden Sie die PdfDocument.SaveAs-Methode, um Ihr PDF auf der Festplatte zu speichern. Dies ist der einfachste Ansatz für Desktop-Anwendungen oder wenn Sie PDFs dauerhaft auf dem Server speichern müssen.

// 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");
// 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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Diese Methode unterstützt das Hinzufügen eines Passwortschutzes. Lesen Sie den folgenden Artikel, um mehr über das digitale Signieren exportierter PDFs zu erfahren: Digitales Signieren eines PDF-Dokuments Weitere Sicherheitsoptionen finden Sie in unserem Leitfaden zu PDF-Berechtigungen und Kennwörtern.

Wie speichert man eine PDF-Datei in MemoryStream in C# (System.IO.MemoryStream)

Die IronPdf.PdfDocument.Stream-Eigenschaft speichert das PDF im Speicher mithilfe eines System.IO.MemoryStream. Dieser Ansatz ist ideal, wenn Sie die PDF-Daten im Speicher manipulieren oder sie an andere Methoden weitergeben müssen, ohne temporäre Dateien zu erstellen. Erfahren Sie mehr über die Arbeit mit PDF-Memory-Streams.

// 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();
// 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();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wie man als Binärdaten speichert

Die IronPdf.PdfDocument.BinaryData-Eigenschaft exportiert das PDF-Dokument als Binärdaten im Speicher. Dies ist besonders nützlich für die Speicherung in Datenbanken oder bei der Integration mit APIs, die Byte-Arrays erfordern.

Dies gibt das PDF als ein ByteArray aus, das in C# als byte [] ausgedrückt wird.

// 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);
// 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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für fortgeschrittenere Szenarien, die eine Manipulation von Binärdaten beinhalten, lesen Sie unseren Leitfaden zur Konvertierung von PDFs in MemoryStream.

Wie man von einem Webserver an einen Browser ausliefert

Um ein PDF dem Web zur Verfügung zu stellen, müssen wir es als Binärdaten senden, anstatt als HTML. Dies ist wichtig für Webanwendungen, bei denen die Benutzer PDFs direkt in ihren Browsern herunterladen oder anzeigen müssen. IronPDF lässt sich sowohl in MVC- als auch in traditionelle ASP.NET-Anwendungen integrieren.

MVC PDF-Export

In modernen MVC-Anwendungen ist die Ausgabe von PDFs mit FileStreamResult ein Kinderspiel. Dieser Ansatz eignet sich gut für ASP.NET Core MVC-Anwendungen:

// 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");
}
// 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");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ASP.NET PDF-Export

Für traditionelle ASP.NET WebForms-Anwendungen können Sie PDFs direkt über das Response-Objekt bereitstellen:

// 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();
}
// 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();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Erweiterte Export-Szenarien

PDF-Batch-Export

Beim Umgang mit mehreren PDF-Dateien können Sie den Exportprozess optimieren:

// Batch export multiple PDFs to a zip file
public void ExportMultiplePdfsAsZip(List<string> 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);
            }
        }
    }
}
// Batch export multiple PDFs to a zip file
public void ExportMultiplePdfsAsZip(List<string> 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);
            }
        }
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Bedingter Export auf der Grundlage von Benutzerberechtigungen

// 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;
}
// 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;
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Best Practices für den PDF-Export

Beachten Sie beim Exportieren von PDF-Dateien in Produktionsanwendungen die folgenden bewährten Verfahren:

  1. Speichermanagement: Bei großen PDF-Dateien oder Anwendungen mit hohem Datenverkehr müssen PDF-Objekte und -Streams ordnungsgemäß entsorgt werden, um Speicherlecks zu vermeiden. Erwägen Sie die Verwendung von async-Methoden für eine bessere Leistung.
  2. Fehlerbehandlung: Implementieren Sie immer eine angemessene Fehlerbehandlung, wenn Sie PDFs exportieren, insbesondere bei Webanwendungen, bei denen Netzwerkprobleme auftreten können.
  3. Komprimierung: Verwenden Sie bei großen PDF-Dateien die PDF-Komprimierung, um die Dateigröße zu reduzieren, bevor Sie sie an die Benutzer weitergeben.
  4. Metadaten: Legen Sie geeignete PDF-Metadaten fest, einschließlich Titel, Autor und Erstellungsdatum für eine bessere Dokumentenverwaltung.
  5. Plattformübergreifende Kompatibilität: Stellen Sie sicher, dass Ihre Exportfunktionalität auf verschiedenen Plattformen funktioniert. IronPDF unterstützt Windows, Linux, und macOS.

Abschluss

IronPDF bietet umfassende Optionen für den Export von PDF-Dateien in C#-Anwendungen, vom einfachen Speichern von Dateien bis hin zu komplexen Webserver-Szenarien. Durch die Verwendung der für Ihren Anwendungsfall geeigneten Exportmethode können Sie PDF-Dokumente effizient erstellen und an Ihre Benutzer weitergeben und gleichzeitig die Sicherheits- und Leistungsstandards einhalten.

Häufig gestellte Fragen

Wie exportiere ich in C# HTML-Inhalte in PDF?

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.

Curtis Chau
Technischer Autor

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 ...

Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 16,685,821 | Version: 2025.12 gerade veröffentlicht