Zum Fußzeileninhalt springen
IRONPDF NUTZEN

ASP.NET HTML zu PDF-Konvertierung mit IronPDF

IronPDF konvertiert ASP.NET HTML in PDF mithilfe einer Chrome-basierten Rendering-Engine, die CSS-Styling und JavaScript Funktionalität beibehält. Dieses Tutorial demonstriert effektive Methoden zur Konvertierung von HTML-Zeichenketten, Ansichten und URLs in Professional PDF-Dokumente in ASP.NET Core Anwendungen.

Die Konvertierung dynamischer ASP.NET HTML-Dokumente in PDF-Dokumente ist eine grundlegende Voraussetzung für moderne Webanwendungen. Ob Sie Rechnungen erstellen, Berichte verfassen oder herunterladbare PDF-Dateien produzieren – die Umwandlung von HTML-Inhalten in Professional PDF-Dokumente ist unerlässlich für ein optimales Nutzererlebnis.

IronPDF vereinfacht diesen ASP HTML-zu-PDF- Konvertierungsprozess durch die Bereitstellung einer zuverlässigen, Chrome-basierten Rendering-Engine, die Ihre HTML-Formatierung, CSS-Styling und JavaScript Funktionalität in den resultierenden PDF-Dokumenten beibehält. Dieses Tutorial führt Sie durch effektive Methoden zur Konvertierung von HTML in PDF in ASP.NET Core -Anwendungen mithilfe der IronPDF Bibliothek , einschließlich ihrer Chrome-Rendering-Engine für pixelgenaue Ergebnisse.

 Banner auf der Homepage der IronPDF C# PDF-Bibliothek mit den wichtigsten Funktionen, darunter HTML-zu-PDF-Konvertierung, PDF-Bearbeitungsfunktionen und Bereitstellungsoptionen mit Download- und Lizenzierungsbuttons

Warum benötigen Entwickler die HTML-zu-PDF-Konvertierung?

ASP.NET Core-Anwendungen generieren häufig dynamische HTML-Inhalte, die Benutzer als PDF-Dateien herunterladen, teilen oder archivieren müssen. Die Umwandlung von HTML zu PDF bietet mehrere wesentliche Vorteile gegenüber dem einfachen Speichern von Webseiten oder der Aufnahme von Screenshots.

PDF-Dokumente bewahren ein konsistentes Format über alle Geräte und Plattformen hinweg, sodass Ihre Rechnungen identisch aussehen, ob sie auf Windows, Mac oder mobilen Geräten betrachtet werden. Sie eignen sich ideal für Dokumente, die digitale Signaturen, Sicherheitsbeschränkungen oder Professional Druck erfordern. Die serverseitige PDF-Konvertierung macht die Installation spezieller Software durch die Benutzer überflüssig und bietet eine bessere Kontrolle über das Endergebnis.

Zu den typischen Anwendungsfällen gehören das Erstellen von Finanzberichten aus Dashboard-Daten, das Erstellen von herunterladbaren Rechnungen aus Bestellinformationen, das Erzeugen von Tickets und Pässen mit QR-Codes und das Umwandeln von Formularübermittlungen in permanente Aufzeichnungen. Durch die serverseitige Abwicklung der ASP-HTML-zu-PDF-Konvertierung gewährleisten Sie konsistente Ergebnisse unabhängig von den Browser- oder Gerätefunktionen des Benutzers. IronPDF zeichnet sich durch seine Fähigkeit aus, komplexe Layouts darzustellen und JavaScript-lastige Inhalte reibungslos zu verarbeiten. Die diesem Prozess zugrunde liegende PDF-Spezifikation wird von der ISO-Normungsorganisation gepflegt, wodurch PDF zum portabelsten Dokumentformat für die plattformübergreifende Verteilung wird.

 IronPDF -Funktionsübersicht mit vier Hauptkategorien: PDFs erstellen, PDFs konvertieren, PDFs bearbeiten sowie PDFs signieren und sichern. Detaillierte Funktionslisten finden Sie unter jedem Abschnitt.

Wie installiert man IronPDF in einem ASP.NET -Projekt?

Der Einstieg mit IronPDF in Ihrem ASP.NET Core-Projekt ist einfach. Die Bibliothek unterstützt .NET 6, 8 und 10 und ist somit mit allen modernen ASP.NET Core Anwendungen kompatibel. Spezifische Plattformanforderungen finden Sie im Windows-Kompatibilitätsleitfaden oder in den Linux-Installationsanweisungen .

Am schnellsten fügen Sie IronPDF zu Ihrem Projekt hinzu, indem Sie den NuGet Paketmanager verwenden. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt, wählen Sie " NuGet Pakete verwalten" und suchen Sie nach IronPDF. Klicken Sie auf "Installieren" bei der neuesten Version. Eine detaillierte Anleitung finden Sie im IronPDF Installationshandbuch .

Installation über die Paket-Manager-Konsole:

Install-Package IronPdf
Install-Package IronPdf
SHELL

Oder verwenden Sie die .NET CLI:

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

Paket-Manager-Konsole, die den Installationsprozess des IronPDF NuGet Pakets mit mehreren Abhängigkeits-Downloads anzeigt

Wie konfiguriert man IronPDF nach der Installation?

Nach der Installation fügen Sie die Direktive using IronPdf; zu jeder C#-Datei hinzu, in der Sie mit der PDF-Generierung arbeiten. Dieser Import ermöglicht Ihnen den Zugriff auf die Klasse ChromePdfRenderer und alle Rendering-Konfigurationsoptionen.

Bei den meisten ASP.NET Core Anwendungen funktioniert IronPDF sofort nach der Installation. Sie können jedoch globale Optionen in Ihrer Program.cs-Datei festlegen, um das Verhalten für Ihre spezifische Hosting-Umgebung – Windows, Linux, Docker oder Cloud – feinabzustimmen:

using IronPdf;

// Optional global configuration (place in Program.cs)
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Enable logging for debugging PDF rendering issues
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";

// Required for Azure App Service deployments
Installation.AzureQuickDeployment = true;
using IronPdf;

// Optional global configuration (place in Program.cs)
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Enable logging for debugging PDF rendering issues
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";

// Required for Azure App Service deployments
Installation.AzureQuickDeployment = true;
Imports IronPdf

' Optional global configuration
Installation.TempFolderPath = "C:\Temp\IronPdf\"
Installation.LinuxAndDockerDependenciesAutoConfig = True

' Enable logging for debugging PDF rendering issues
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All
Installation.LogFilePath = "IronPdfLog.log"

' Required for Azure App Service deployments
Installation.AzureQuickDeployment = True
$vbLabelText   $csharpLabel

Für Azure-Bereitstellungen aktivieren Sie AzureQuickDeployment, um eine optimale Leistung zu erzielen. Für Produktionsumgebungen sollten Sie eine benutzerdefinierte Protokollierung implementieren, um die PDF-Generierungsvorgänge zu überwachen und Rendering-Fehler frühzeitig zu erkennen.

 Diagramm zur plattformübergreifenden Unterstützung von IronPDF, das die Kompatibilität mit .NET Versionen, Betriebssystemen, Cloud-Plattformen und Entwicklungsumgebungen zeigt

Wie konvertiert man HTML-Strings in PDF?

Die grundlegendste Operation in IronPDF ist das direkte Konvertieren von HTML-Strings in PDF-Dokumente. Dieser Ansatz eignet sich ideal, wenn Sie HTML-Inhalte dynamisch in Ihrer ASP.NET -Anwendung erstellen oder mit HTML-Vorlagen arbeiten. Die Methode RenderHtmlAsPdf bietet Flexibilität bei der Konvertierung von HTML aus Variablen, String-Buildern oder Template-Engines.

// Create a PDF renderer instance
var renderer = new ChromePdfRenderer();

// Configure rendering options for print-quality output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // milliseconds to wait before capture

// Convert an HTML string to a PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");

// Save the PDF to disk
pdf.SaveAs("report.pdf");

// Or get binary data to return as a file download
var pdfBytes = pdf.BinaryData;
// Create a PDF renderer instance
var renderer = new ChromePdfRenderer();

// Configure rendering options for print-quality output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // milliseconds to wait before capture

// Convert an HTML string to a PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");

// Save the PDF to disk
pdf.SaveAs("report.pdf");

// Or get binary data to return as a file download
var pdfBytes = pdf.BinaryData;
' Create a PDF renderer instance
Dim renderer = New ChromePdfRenderer()

' Configure rendering options for print-quality output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.RenderDelay = 500 ' milliseconds to wait before capture

' Convert an HTML string to a PDF document
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " & DateTime.Now & "</p>")

' Save the PDF to disk
pdf.SaveAs("report.pdf")

' Or get binary data to return as a file download
Dim pdfBytes = pdf.BinaryData
$vbLabelText   $csharpLabel

Dieser Codeausschnitt erzeugt eine ChromePdfRenderer-Instanz, die die Chromium-Engine zum Rendern Ihres HTML-Codes verwendet. Die Methode RenderHtmlAsPdf akzeptiert eine beliebige gültige HTML-Zeichenkette und gibt ein PdfDocument-Objekt zurück, das Sie auf der Festplatte speichern oder an den Browser streamen können. Für die asynchrone PDF-Generierung sollte der Aufruf in Task.Run eingeschlossen werden, um zu vermeiden, dass Anfragethreads blockiert werden.

Wie sieht die PDF-Ausgabe aus?

Screenshot eines PDF-Viewers, der einen einfachen Verkaufsbericht mit Titel und Zeitstempel vom 11.01.2025 um 23:51:30 Uhr anzeigt

Wie bindet man CSS-Styling und Bilder ein?

IronPDF unterstützt CSS-Styling vollständig und bettet Bilder aus verschiedenen Quellen beim Konvertieren von HTML in PDF ein. Der Renderer verarbeitet Inline-Styles, externe Stylesheets, Webfonts, SVG-Grafiken und Base64-kodierte Bilder:

var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .data-table { width: 100%; border-collapse: collapse; }
        .data-table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This document includes <span class='highlight'>highlighted text</span> and table data.</p>
    <table class='data-table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>";

var renderer = new ChromePdfRenderer();

// Set base URL so relative resource paths resolve correctly
renderer.RenderingOptions.BaseUrl = new Uri("https://yourdomain.com/");
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .data-table { width: 100%; border-collapse: collapse; }
        .data-table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This document includes <span class='highlight'>highlighted text</span> and table data.</p>
    <table class='data-table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>";

var renderer = new ChromePdfRenderer();

// Set base URL so relative resource paths resolve correctly
renderer.RenderingOptions.BaseUrl = new Uri("https://yourdomain.com/");
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
Dim html As String = "
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .data-table { width: 100%; border-collapse: collapse; }
        .data-table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This document includes <span class='highlight'>highlighted text</span> and table data.</p>
    <table class='data-table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>"

Dim renderer As New ChromePdfRenderer()

' Set base URL so relative resource paths resolve correctly
renderer.RenderingOptions.BaseUrl = New Uri("https://yourdomain.com/")
renderer.RenderingOptions.EnableJavaScript = True

Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("styled-report.pdf")
$vbLabelText   $csharpLabel

Der Renderer verarbeitet CSS3-Funktionen wie Flexbox- und Grid-Layouts mit voller Genauigkeit. Bei komplexen Layouts verwenden Sie die Bootstrap-Kompatibilitätsrichtlinien oder implementieren Sie benutzerdefinierte Seitenumbrüche mithilfe von CSS-Regeln page-break-before.

Wie konvertiert man ASP.NET Core Ansichten in PDF?

Die Konvertierung ganzer ASP.NET Core Ansichten in PDF ist eine häufige Anforderung für die Generierung von Berichten auf Basis bestehender Vorlagen. IronPDF unterstütztRazor Ansichten , ASPX-Seiten und sogar Blazor Komponenten .

Wie konvertiert man Controller-Ansichten?

Rendern Sie eine Ansicht in Ihrem Controller als HTML-String und übergeben Sie diesen anschließend an IronPDF. Dieser Ansatz funktioniert sowohl mit MVC Core- als auch mit MVC Framework-Anwendungen:

[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
            new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
        },
        Total = 200.0
    };

    // Render the Razor view to an HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);

    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    // Add a text header with the invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
    renderer.RenderingOptions.TextHeader.DrawDividerLine = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Restrict copying while allowing printing
    pdf.SecuritySettings.AllowUserPrinting = true;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;

    var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, "application/pdf", fileName);
}
[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
            new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
        },
        Total = 200.0
    };

    // Render the Razor view to an HTML string first
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);

    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    // Add a text header with the invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
    renderer.RenderingOptions.TextHeader.DrawDividerLine = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Restrict copying while allowing printing
    pdf.SecuritySettings.AllowUserPrinting = true;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;

    var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, "application/pdf", fileName);
}
Imports System
Imports System.Collections.Generic
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc

<HttpGet>
Public Async Function DownloadPdf() As Task(Of IActionResult)
    Dim invoiceModel = New InvoiceModel With {
        .InvoiceNumber = 12345,
        .Date = DateTime.Now,
        .CustomerName = "Acme Corporation",
        .Items = New List(Of InvoiceItem) From {
            New InvoiceItem With {.Description = "Service", .Quantity = 1, .Price = 100.0},
            New InvoiceItem With {.Description = "Support", .Quantity = 2, .Price = 50.0}
        },
        .Total = 200.0
    }

    ' Render the Razor view to an HTML string first
    Dim htmlContent = Await RenderViewToString("Invoice", invoiceModel)

    Dim renderer = New ChromePdfRenderer()
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter
    renderer.RenderingOptions.PrintHtmlBackgrounds = True

    ' Add a text header with the invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" & invoiceModel.InvoiceNumber
    renderer.RenderingOptions.TextHeader.DrawDividerLine = True

    Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)

    ' Restrict copying while allowing printing
    pdf.SecuritySettings.AllowUserPrinting = True
    pdf.SecuritySettings.AllowUserCopyPasteContent = False

    Dim fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf"
    Return File(pdf.BinaryData, "application/pdf", fileName)
End Function
$vbLabelText   $csharpLabel

Bei diesem Ansatz wird Ihre Razor Ansicht zunächst in HTML gerendert, dann in PDF konvertiert und die Datei an den Browser zurückgegeben. Für Headless-Konvertierungsszenarien ohne vollständige ASP.NET Pipeline empfiehlt sich die Verwendung von Razor.Templating.Core.

Wie sieht die generierte PDF-Datei aus?

PDF viewer showing a rendered invoice #12345 dated 2/11/2025 for Acme Corporation with a single service item totaling $100.00

Wie wandelt man eine URL in ein PDF um?

Für bestehende Webseiten kann IronPDF jede beliebige URL direkt in eine PDF-Datei umwandeln. Diese Methode unterstützt Cookies und benutzerdefinierte HTTP-Header für authentifizierte Anfragen.

[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();

    // Allow time for dynamic content to load before capture
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000;
    renderer.RenderingOptions.ViewportWidth = 1920;

    // Pass authorization headers if the page requires authentication
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");

    var pdf = renderer.RenderUrlAsPdf("https://yourwebsite.com/report");

    // Compress embedded images to reduce file size
    pdf.CompressImages(90);

    return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();

    // Allow time for dynamic content to load before capture
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000;
    renderer.RenderingOptions.ViewportWidth = 1920;

    // Pass authorization headers if the page requires authentication
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");

    var pdf = renderer.RenderUrlAsPdf("https://yourwebsite.com/report");

    // Compress embedded images to reduce file size
    pdf.CompressImages(90);

    return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
Imports Microsoft.AspNetCore.Mvc

<HttpGet>
Public Function GeneratePdfFromUrl() As IActionResult
    Dim renderer = New ChromePdfRenderer()

    ' Allow time for dynamic content to load before capture
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000
    renderer.RenderingOptions.ViewportWidth = 1920

    ' Pass authorization headers if the page requires authentication
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token")

    Dim pdf = renderer.RenderUrlAsPdf("https://yourwebsite.com/report")

    ' Compress embedded images to reduce file size
    pdf.CompressImages(90)

    Return File(pdf.BinaryData, "application/pdf", "webpage.pdf")
End Function
$vbLabelText   $csharpLabel

Diese Methode verarbeitet alle externen Ressourcen, einschließlich Stylesheets, Skripte und Bilder. Bei Websites mit hohem JavaScript-Aufkommen sollten Sie die Renderverzögerung anpassen oder WaitFor-Bedingungen verwenden, um die Erfassung erst nach dem Auslösen bestimmter DOM-Ereignisse zu starten.

Was ist das Ergebnis der URL-Konvertierung?

 Homepage der IronPDF Bibliothek mit Funktionen zur C#-PDF-Konvertierung, einschließlich HTML-zu-PDF-Funktionalität, Preisoptionen und Codebeispielen for .NET Entwickler.

Wie kann man die PDF-Ausgabe anpassen?

IronPDF bietet umfangreiche Anpassungsmöglichkeiten, um zu steuern, wie Ihre PDF-Dokumente aus HTML generiert werden. Mithilfe dieser Einstellungen können Sie Professional Dateien erstellen, die spezifische Anforderungen an Seitenlayout und Formatierung erfüllen. Entdecken Sie die gesamte Bandbreite der verfügbaren Rendering-Optionen .

Wie legt man Seitengröße und Seitenränder fest?

Präzise Kontrolle von Papiergröße und Rändern für Professional Dokumentenlayouts:

var renderer = new ChromePdfRenderer();

// Set standard paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

// Set page margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Define a custom paper size in inches when needed
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

// Use print CSS media type for print-optimized output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
var renderer = new ChromePdfRenderer();

// Set standard paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

// Set page margins in millimeters
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Define a custom paper size in inches when needed
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

// Use print CSS media type for print-optimized output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
Dim renderer = New ChromePdfRenderer()

' Set standard paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait

' Set page margins in millimeters
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20

' Define a custom paper size in inches when needed
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)

' Use print CSS media type for print-optimized output
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.PrintHtmlBackgrounds = True
$vbLabelText   $csharpLabel

Sie können zwischen Standardpapierformaten wählen oder benutzerdefinierte Abmessungen definieren, die Ausrichtung auf Hoch- oder Querformat festlegen und die Ränder an Ihre Designanforderungen anpassen. Für die nötige Orientierung sollten Sie die Optionen zur Seitendrehung erkunden.

Wie fügt man Kopf- und Fußzeilen hinzu?

Durch das Hinzufügen einheitlicher Kopf- und Fußzeilen wird das Professional Erscheinungsbild Ihrer PDF-Dokumente verbessert. IronPDF unterstützt sowohl einfache Textkopfzeilen als auch vollständige HTML-Kopfzeilen mit eingebetteten Bildern und CSS:

// Simple text header and footer with dynamic placeholders
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Company Report",
    LeftText = "{date}",
    RightText = "Confidential",
    FontSize = 12,
    FontFamily = "Arial",
    DrawDividerLine = true
};

renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    CenterText = "Page {page} of {total-pages}",
    LeftText = "© 2025 Company Name",
    DrawDividerLine = true
};

// For complex branded headers, use an HTML fragment instead
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    MaxHeight = 50,
    DrawDividerLine = true
};
// Simple text header and footer with dynamic placeholders
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Company Report",
    LeftText = "{date}",
    RightText = "Confidential",
    FontSize = 12,
    FontFamily = "Arial",
    DrawDividerLine = true
};

renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    CenterText = "Page {page} of {total-pages}",
    LeftText = "© 2025 Company Name",
    DrawDividerLine = true
};

// For complex branded headers, use an HTML fragment instead
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    MaxHeight = 50,
    DrawDividerLine = true
};
' Simple text header and footer with dynamic placeholders
renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
    .CenterText = "Company Report",
    .LeftText = "{date}",
    .RightText = "Confidential",
    .FontSize = 12,
    .FontFamily = "Arial",
    .DrawDividerLine = True
}

renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
    .CenterText = "Page {page} of {total-pages}",
    .LeftText = "© 2025 Company Name",
    .DrawDividerLine = True
}

' For complex branded headers, use an HTML fragment instead
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = "
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    .MaxHeight = 50,
    .DrawDividerLine = True
}
$vbLabelText   $csharpLabel

Kopf- und Fußzeilen unterstützen spezielle Platzhalter für Seitenzahlen , Datumsangaben und dynamische Inhalte. Sie können auch unterschiedliche Header für bestimmte Seiten festlegen, um eine feinere Steuerung zu ermöglichen.

Was sind die Best Practices für die PDF-Konvertierung mit ASP.NET ?

Um optimale Leistung und Qualität bei der Konvertierung von HTML in PDF zu gewährleisten, befolgen Sie diese bewährten Vorgehensweisen. Implementieren Sie Strategien zur Leistungsoptimierung für groß angelegte Implementierungen.

Testen Sie die HTML-Darstellung immer zuerst in einem Browser, um Stil und Layout zu überprüfen, bevor Sie PDFs generieren. Verwenden Sie Basis-URLs für externe Ressourcen, da relative Pfade bei der Konvertierung zu Auflösungsfehlern führen können. Bei Seiten mit hohem JavaScript-Aufkommen sollten Renderverzögerungen eingefügt werden, um sicherzustellen, dass die Seite vor der Erfassung vollständig geladen ist.

Das folgende Beispiel zeigt einen wiederverwendbaren PDF-Dienst, der die Konfiguration zentralisiert und die asynchrone Generierung übernimmt:

public class PdfService
{
    private readonly ChromePdfRenderer _renderer;

    public PdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.RenderDelay = 100;
        _renderer.RenderingOptions.Timeout = 60000;
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    }

    public async Task<byte[]> GeneratePdfAsync(string html, bool compressImages = false)
    {
        var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));

        if (compressImages)
        {
            pdf.CompressImages(90);
        }

        return pdf.BinaryData;
    }
}
public class PdfService
{
    private readonly ChromePdfRenderer _renderer;

    public PdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.RenderDelay = 100;
        _renderer.RenderingOptions.Timeout = 60000;
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    }

    public async Task<byte[]> GeneratePdfAsync(string html, bool compressImages = false)
    {
        var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));

        if (compressImages)
        {
            pdf.CompressImages(90);
        }

        return pdf.BinaryData;
    }
}
Public Class PdfService
    Private ReadOnly _renderer As ChromePdfRenderer

    Public Sub New()
        _renderer = New ChromePdfRenderer()
        _renderer.RenderingOptions.RenderDelay = 100
        _renderer.RenderingOptions.Timeout = 60000
        _renderer.RenderingOptions.EnableJavaScript = True
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
    End Sub

    Public Async Function GeneratePdfAsync(html As String, Optional compressImages As Boolean = False) As Task(Of Byte())
        Dim pdf = Await Task.Run(Function() _renderer.RenderHtmlAsPdf(html))

        If compressImages Then
            pdf.CompressImages(90)
        End If

        Return pdf.BinaryData
    End Function
End Class
$vbLabelText   $csharpLabel

Erwägen Sie die Implementierung eines Caching-Verfahrens für häufig generierte Dokumente, um die Serverlast zu reduzieren. Für eine bessere Skalierbarkeit in Webanwendungen sollten asynchrone Methoden verwendet werden. Bei Szenarien mit hohem Datenaufkommen empfiehlt sich die parallele Verarbeitung oder der Einsatz von IronPDF als Microservice .

Bei der Bereitstellung in der Produktionsumgebung sollten Sie geeignete Pfade für temporäre Ordner konfigurieren und sicherstellen, dass in Ihrer Hosting-Umgebung die notwendigen Abhängigkeiten installiert sind, insbesondere bei Linux-Bereitstellungen . Überwachen Sie die Speichernutzung und implementieren Sie geeignete Freigabemuster gemäß demIDisposable-Muster aus den .NET -Richtlinien von Microsoft. Bei der Arbeit mit großen HTML-Dokumenten sollten Streaming-Verfahren eingesetzt werden, um den Speicherbedarf zu minimieren.

Die folgende Tabelle fasst die drei wichtigsten Umrechnungsmethoden und ihre jeweiligen Anwendungsbereiche zusammen:

IronPDF ASP.NET Konvertierungsmethoden im Vergleich
Methode Am besten für Schlüssel-API Authentifizierungsunterstützung
HTML-Zeichenkette Dynamische Inhalte sind im Code integriert. `RenderHtmlAsPdf()` N/V
Razor-Ansicht Vorhandene MVC-Ansichten und -Vorlagen `RenderHtmlAsPdf()` Sitzungskontext
URL Öffentliche oder authentifizierte Webseiten `RenderUrlAsPdf()` Cookies, Header, Anmeldeinformationen

Wie geht es mit Ihrem PDF-Generierungsprozess weiter?

Die Konvertierung von ASP-HTML zu PDF in ASP.NET Core-Anwendungen wird mit IronPDF einfach. Die Chrome-basierte Darstellung der Bibliothek gewährleistet eine genaue Konvertierung, während sie umfangreiche Anpassungsoptionen für die professionelle Dokumentenerstellung bietet. Entdecken Sie erweiterte Funktionen wie PDF/A-Konformität , digitale Signaturen und Formularerstellung .

Egal ob Sie mit HTML-Strings, URLs oder vollständigen Razor Ansichten arbeiten, IronPDF erhält die exakte Formatierung, das CSS-Styling und das JavaScript Verhalten bei. Erwägen Sie die Nutzung von PDF-Komprimierung , Wasserzeichen und Metadatenmanagement für eine vollständige Dokumentenkontrolle.

Starten Sie Ihre kostenlose 30-Tage-Testversion, um professionelle PDF-Erstellung in Ihren ASP.NET Core-Anwendungen zu implementieren. Hilfe bei der Auswahl benötigt? Informieren Sie sich über die Lizenzoptionen oder vereinbaren Sie eine Demo mit dem Team.

 IronPDF Lizenzseite mit vier Preisstufen (Lite, Plus, Professional und Unlimited) mit unterschiedlichen Entwickler-, Standort- und Projektlimits

Häufig gestellte Fragen

Wie konvertiert man HTML am besten in ASP.NET Core in PDF?

Die beste Methode zur Konvertierung von HTML in PDF in ASP.NET Core ist die Verwendung von IronPDF. Es bietet eine nahtlose Lösung zur Transformation von HTML-Inhalten und gewährleistet die Erstellung hochwertiger PDFs.

Warum sollte ich IronPDF zur Konvertierung von HTML in PDF verwenden?

IronPDF bietet leistungsstarke Funktionen wie präzises Rendering, Unterstützung für CSS und JavaScript sowie die Fähigkeit, komplexe HTML-Dokumente zu verarbeiten. Dadurch eignet es sich ideal für die Erstellung professioneller PDFs aus ASP.NET-Anwendungen.

Kann IronPDF dynamische Inhalte in ASP.NET-Anwendungen verarbeiten?

Ja, IronPDF kann dynamische Inhalte in ASP.NET-Anwendungen effektiv verarbeiten. Es verarbeitet und konvertiert dynamische HTML-Inhalte in PDFs und eignet sich daher perfekt für die Erstellung von Rechnungen, Berichten und anderen Dokumenten.

Ist es mit IronPDF möglich, CSS-Stile in das generierte PDF einzubinden?

Selbstverständlich unterstützt IronPDF CSS-Stile. Sie können Ihre bestehenden CSS-Stylesheets verwenden, um sicherzustellen, dass die PDF-Ausgabe dem Design und Layout Ihrer HTML-Inhalte entspricht.

Wie unterstützt IronPDF JavaScript bei der HTML-zu-PDF-Konvertierung?

IronPDF unterstützt JavaScript vollständig, sodass Sie dynamische Elemente und interaktive Inhalte in Ihr HTML einbinden können, die im resultierenden PDF korrekt dargestellt werden.

Was sind einige gängige Anwendungsfälle für die Konvertierung von HTML in PDF in ASP.NET?

Typische Anwendungsfälle sind das Generieren von Rechnungen, das Erstellen detaillierter Berichte, das Produzieren von Zertifikaten und das Anbieten von herunterladbaren Inhalten wie eBooks und Broschüren direkt aus ASP.NET-Anwendungen.

Wie stellt IronPDF die Qualität der PDF-Ausgabe sicher?

IronPDF gewährleistet eine hohe Qualität der PDF-Ausgabe durch die präzise Wiedergabe von HTML-Inhalten, einschließlich Schriftarten, Bildern, Tabellen und anderen Elementen, wobei die Originalgetreue erhalten bleibt.

Kann ich den HTML-zu-PDF-Konvertierungsprozess mit IronPDF automatisieren?

Ja, IronPDF kann in Automatisierungs-Workflows innerhalb von ASP.NET-Anwendungen integriert werden, sodass Sie die Konvertierung von HTML in PDF als Teil der Prozesse Ihrer Anwendung automatisieren können.

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

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an