Wie man HTML zu PDF in C# konvertiert (Entwicklerleitfaden)
Die Konvertierung von HTML in PDF in C# erscheint oft einfach, bis reale Anforderungen auftauchen. Entwickler stoßen schnell an Grenzen, die sich auf die Genauigkeit der Darstellung, den Einsatz und die Skalierbarkeit auswirken.
Neben dem Rendering ist auch die Kompatibilität der Infrastruktur entscheidend. Die Teams müssen sicherstellen, dass die PDF-Generierung in modernen .NET-Laufzeiten, Cloud-Plattformen und containerisierten Umgebungen ohne Leistungseinbußen funktioniert.
Um diese Lücken zu schließen, bieten moderne Chrome-basierte Lösungen wie IronPDF eine höhere Rendering-Treue, eine breitere Plattformunterstützung und produktionsreife Bereitstellungs-Workflows, die im weiteren Verlauf dieses Leitfadens Schritt für Schritt erläutert werden.
TL;DR: Schnellstartanleitung zur Konvertierung von HTML in PDF
Mit der IronPdf-Bibliothek können Sie HTML in C# ganz einfach in PDF konvertieren. Die Bibliothek bietet die Methode ChromePdfRenderer.RenderHtmlAsPdf, um aus HTML, CSS und JavaScript hochwertige PDF-Dateien zu erstellen.
-
Installieren Sie IronPDF mit NuGet Package Manager
PM > Install-Package IronPdf -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
IronPdf.ChromePdfRenderer .StaticRenderHtmlAsPdf("<p>Hello World</p>") .SaveAs("pixelperfect.pdf"); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronPDF in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Nachdem Sie IronPDF gekauft oder sich für eine 30-tägige Testversion angemeldet haben, finden Sie den Lizenzschlüssel, der an Ihre E-Mail gesendet wurde. Fügen Sie Ihren Lizenzschlüssel am Anfang Ihrer Anwendung hinzu.
IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
Imports IronPdf
IronPdf.License.LicenseKey = "KEY"
Warum .NET-Entwickler einen HTML-zu-PDF-Konverter für C# benötigen
IronPDF nutzt eine eingebettete Google Chromium-Rendering-Engine, um hochdetaillierte Konvertierungen zu gewährleisten, die das Layout und die Stilgebung Ihrer Webinhalte genau bewahren.
✅ Robuste Chrome-Rendering-Engine: Chromes Blink-Engine für genaue HTML-zu-PDF-Konvertierung, jetzt verbessert mit Korrekturen für Speicher, Formulare und Genauigkeit beim Rendern (v2025.9.4)
✅ Pixelgenaue Genauigkeit: Generierte PDFs entsprechen genau der Webseite, nicht einer druckerfreundlichen Version. Aktuelle Korrekturen decken benutzerdefinierte Kopf-/Fußzeilen-Clipping, Graustufen-Texterhaltung und Sonderzeichen/Emojis in Metadaten ab (Stand v2025.9.4)
✅ Volle Unterstützung moderner Webtechnologien: Komplettunterstützung für CSS3, HTML5, JavaScript für alle HTML-Elemente. Neuere Verbesserungen umfassen die Handhabung von Formularfeldern für lange Textbereiche und Checkboxen.
✅ 5-20x Leistungssteigerung: Deutlich schneller als Browser-Automatisierung oder Web-Treiber, jetzt mit Speicherleck-Korrekturen und reduzierten Dateigrößen für wiederkehrende Elemente wie Stempel/Kopfzeilen in Batch-Operationen.
✅ PDF/UA-Konformität: Zugängliche PDF-Erzeugung, die den Standards von Section 508 entspricht, verbessert für plattformübergreifendes (z. B. Linux) Formular-Rendering.
✅ Keine externen Abhängigkeiten: Keine auszuführenden Dateien auf Servern zu installieren
✅ Entwickelt für C#, F# & VB.NET auf .NET 10, 9, 8, 7, 6, Core, Standard oder Framework
IronPDF vereinfacht den Prozess for .NET-Entwickler und bietet eine unkomplizierte und effiziente Lösung zur Erzeugung professionell aussehender PDF-Dokumente aus dem HTML Ihrer Webanwendung. Von Rechnungen und Berichten bis zu Zertifikaten und Archiven können Entwickler mit ihrem vertrauten Web-Stack arbeiten, während IronPDF das Komplexe in nur wenigen Codezeilen handhabt.
VERWANDT: IronPDF Changelog: Updates, Meilensteine, Roadmap
Was Sie lernen werden
-
Wie man erweiterte PDF-Erzeugungs- und Sicherheitsfunktionen verwendet
- So generieren Sie eine HTML-Vorlage für die Stapel-PDF-Erstellung
- Wie generiere ich PDF unter Verwendung der Async-Methode
- Wie man erweiterte Sicherheitsfunktionen hinzufügt
- So konvertieren Sie HTML-Formulare in ausfüllbare PDFs
- So konvertieren Sie bestimmte HTML-Elemente in PDF
- So rendern Sie authentifizierte Seiten als PDF
-
Vergleich von IronPDF mit anderen .NET PDF-Bibliotheken
- Schnelle Entscheidungsmatrix: IronPDF im Vergleich zu anderen .NET-PDF-Konvertern
- Detaillierter Vergleich: IronPDF im Vergleich zu anderen .NET-PDF-Konvertern
- Real-life HTML to PDF Conversion Comparison: Rendering von Reddits Homepage
- Schlussfolgerung zur Leistung und Qualität der PDF-Ausgabe
- Zusammenfassung
- Fehlerbehebung und technischer Support
1. How to Convert HTML to PDF C
Egal, ob Sie mit HTML-Strings, URLs oder HTML-Dateien arbeiten, IronPDF bietet flexible Optionen, um hochwertige PDF-Dokumente zu erzeugen, die Ihren spezifischen Anforderungen entsprechen.
In diesem Tutorial führen wir Sie durch die häufigsten Szenarien, einschließlich HTML-String zu PDF, URL zu PDF und HTML-Datei zu PDF. Zusätzlich bietet IronPDF auch eine Vielzahl von Operationen zur Bearbeitung von PDF-Dokumenten:
Wie man HTML-String zu PDF konvertiert
Die grundlegendste Operation ist der HTML-String zu PDF. Diese Methode ist perfekt für dynamisch generierte HTML-Inhalte. Die RenderHtmlAsPdf-Methode unterstützt HTML5, CSS3, JavaScript und Bilder vollständig, wenn Sie HTML direkt in PDF konvertieren.
using IronPdf;
// Create the Chrome renderer
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Save the PDF
pdf.SaveAs("output.pdf");
using IronPdf;
// Create the Chrome renderer
var renderer = new ChromePdfRenderer();
// Convert HTML string to PDF
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
// Save the PDF
pdf.SaveAs("output.pdf");
Imports IronPdf
' Create the Chrome renderer
Dim renderer As New ChromePdfRenderer()
' Convert HTML string to PDF
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
' Save the PDF
pdf.SaveAs("output.pdf")
Leistung
Die Leistung der IronPDF-Konvertierung von Zeichenfolgen, URLs und HTML in PDF wurde auf einem Lenovo-Laptop mit 16 GB RAM gemessen. Das Testdokument ist eine 3-seitige Enterprise-Rechnung mit Standard-CSS-Grid, Farbverläufen und mehrteiligen Tabellen.
Die Ergebnisse lauten wie folgt:
| Metrik | Wert |
|---|---|
| Durchschnittliche Renderzeit | ~486 ms |
| Speicher pro Rendering | ~3,6 MB |
Gemessen anhand von 5 aufeinanderfolgenden Renderings auf einer 16-Kern-Workstation (Windows 11, .NET 8). Der erste Aufruf umfasst auch eine einmalige Initialisierung der Chromium-Engine (~1,3 s)
Als ich den Test zum ersten Mal durchführte, war die Renderzeit sehr langsam (über eine Sekunde pro Aufruf!). Nachdem ich mir die Situation angesehen hatte, stellte ich fest, dass mehrere Chromium-Instanzen geöffnet waren und ich im Akkubetrieb arbeitete – beides Faktoren, die verhinderten, dass die Bibliothek ihre wahre Geschwindigkeit unter Beweis stellen konnte. Nachdem ich die konkurrierenden Prozesse geschlossen und den Stecker eingesteckt hatte, lief es besser: Warme Läufe lagen im Durchschnitt bei ~486 ms, wobei der schnellste Wert bei knapp 473 ms lag.
EnableJavaScript = true, um optimale Ergebnisse zu erzielen.Wenn Ihre HTML-Zeichenkette auf lokale Ressourcen wie Bilder oder Stylesheets verweist, verwenden Sie den Parameter BaseUrlPath, um HTML-Inhalte mit allen Ressourcen korrekt zu konvertieren:
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML content with local image and CSS references
string html = @"
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>";
// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML content with local image and CSS references
string html = @"
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>";
// Set base path for resolving relative URLs in HTML to PDF conversion
var pdf = renderer.RenderHtmlAsPdf(html, @"C:\MyProject\Assets\");
pdf.SaveAs("report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Convert HTML content with local image and CSS references
Dim html As String = "
<link rel='stylesheet' href='styles.css'>
<img src='logo.png' alt='Company Logo'>
<h1>Company Report</h1>
<p>Annual report content...</p>"
' Set base path for resolving relative URLs in HTML to PDF conversion
Dim pdf = renderer.RenderHtmlAsPdf(html, "C:\MyProject\Assets\")
pdf.SaveAs("report.pdf")
BaseUrlPath, um relative Pfade auf das richtige Verzeichnis zu verweisen, sodass eine kurze Überprüfung der Ausgabe vor Massenausführungen in der Regel ausreicht, um Fehler zu erkennen.VERWANDTER HOW-TO-ARTIKEL: Wie man HTML-String in PDF in C# konvertiert
Wie man eine bestehende URL in PDF exportiert
Das Rendern ganzer Webseiten zu PDFs mit C# ermöglicht es Teams, PDF-Design und Backend-Rendering-Arbeiten zu trennen. Dieser Ansatz ermöglicht es Ihnen, jede angegebene URL direkt in das PDF-Format zu konvertieren.
Print vs. Screen CSS
Sie können IronPDF so konfigurieren, dass es mit jedem CSS-Medientyp rendert.
using IronPdf;
using IronPdf.Rendering;
// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();
// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Screen media type shows the entire web page as displayed on screen
using IronPdf;
using IronPdf.Rendering;
// Initialize HTML to PDF converter
var renderer = new ChromePdfRenderer();
// Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Screen media type shows the entire web page as displayed on screen
Imports IronPdf
Imports IronPdf.Rendering
' Initialize HTML to PDF converter
Dim renderer As New ChromePdfRenderer()
' Configure CSS media type for rendering specified URLs
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Screen media type shows the entire web page as displayed on screen
JavaScript-Unterstützung
IronPDF unterstützt JavaScript, jQuery und sogar AJAX vollständig, wenn Sie HTML in PDF konvertieren. Für dynamische HTML-Inhalte können Sie IronPDF so konfigurieren, dass es auf den Abschluss von JavaScript wartet, bevor es Webseiten in PDF rendert. Dies ist perfekt für Single-Page-Anwendungen und dynamische Websites.
using IronPdf;
// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();
// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;
// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
using IronPdf;
// Configure JavaScript rendering for dynamic HTML content to PDF
var renderer = new ChromePdfRenderer();
// Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = true;
// WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
Imports IronPdf
' Configure JavaScript rendering for dynamic HTML content to PDF
Dim renderer As New ChromePdfRenderer()
' Enable JavaScript execution during PDF generation
renderer.RenderingOptions.EnableJavaScript = True
' WaitFor.RenderDelay pauses before capturing the HTML
renderer.RenderingOptions.WaitFor.RenderDelay = 500 ' milliseconds
Die JavaScript-Ausführung kann auch angezeigt werden, wenn ein fortgeschrittener d3.js-Akkord-Diagramm von einer Webseite in das PDF-Format gerendert wird:
using IronPdf;
// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();
// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
using IronPdf;
// Create renderer for JavaScript-heavy HTML
var renderer = new ChromePdfRenderer();
// Convert d3.js visualization web page to PDF
var pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006");
// Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf");
Imports IronPdf
' Create renderer for JavaScript-heavy HTML
Dim renderer As New ChromePdfRenderer()
' Convert d3.js visualization web page to PDF
Dim pdf = renderer.RenderUrlAsPdf("https://bl.ocks.org/mbostock/4062006")
' Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf")
Responsive CSS
Da responsive Webseiten für die Anzeige in einem Browser konzipiert sind und IronPDF kein echtes Browserfenster im Betriebssystem Ihres Servers öffnet, werden responsive HTML-Elemente möglicherweise in ihrer kleinsten Größe gerendert. PdfCssMediaType.Print wird empfohlen, um dieses Problem beim Rendern ganzer Webseiten zu umgehen.
// Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
// Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
```vbnet
' Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
```
VERWANDTER HOW-TO-ARTIKEL: Wie man URL zu PDF rendert
Wie man HTML-Datei zu PDF konvertiert
Das Konvertieren lokaler HTML-Dateien in PDF bewahrt alle relativen Ressourcen, einschließlich CSS, Bilder und JavaScript, als ob sie mit dem file://-Protokoll geöffnet würden. Diese HTML-zu-PDF-Methode eignet sich am besten zum Konvertieren von Vorlagen oder vordesignierten HTML-Seiten in PDF-Dokumente.
using IronPdf;
// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
// Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf");
// All CSS, JavaScript, and images load correctly in the generated PDF
using IronPdf;
// Initialize ChromePdfRenderer for HTML file conversion
var renderer = new ChromePdfRenderer();
// Convert HTML file to PDF documents
// Preserves all relative paths and linked resources in HTML
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");
// Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf");
// All CSS, JavaScript, and images load correctly in the generated PDF
Imports IronPdf
' Initialize ChromePdfRenderer for HTML file conversion
Dim renderer As New ChromePdfRenderer()
' Convert HTML file to PDF documents
' Preserves all relative paths and linked resources in HTML
Dim pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html")
' Save the HTML file as PDF
pdf.SaveAs("Invoice.pdf")
' All CSS, JavaScript, and images load correctly in the generated PDF
Leistung
Die Leistung wurde erneut gemessen, indem alle Variablen konstant gehalten wurden, um die vorherige 3-seitige Enterprise-Rechnung aus einer Datei auf der Festplatte zu rendern:
| Metrik | Wert |
|---|---|
| Durchschnittliche Renderzeit | ~502 ms |
| Speicher pro Rendering | ~3,1 MB |
Gemessen anhand von 5 aufeinanderfolgenden Renderings auf derselben 16-Kern-Workstation (Windows 11, .NET 8). Das dateibasierte Rendering weicht vom In-Memory-String-Rendering um maximal 3 % ab; Das Einlesen des HTML-Codes von der Festplatte verursacht keinen nennenswerten Mehraufwand.
VERBUNDENE HOW-TO Artikel: HTML-Datei in PDF rendern
So konvertieren Sie Razor Pages in PDF
Wenn Ihr ASP.NET Core Projekt bereits Razor Pages verwendet, können Sie diese direkt in PDF konvertieren, ohne Ihr HTML neu zu erstellen. Die Razor-Erweiterung von IronPDF fügt die Methode RenderRazorToPdf hinzu, die Ihre .cshtml-Seite – komplett mit Modell und Layout – in einem einzigen Aufruf als PDF-Dokument rendert.
PM > Install-Paket IronPdf.Extensions.Razor
PM > Install-Paket IronPdf.Extensions.Razor
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class ReportModel : PageModel
{
public IActionResult OnGet()
{
var renderer = new ChromePdfRenderer();
// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class ReportModel : PageModel
{
public IActionResult OnGet()
{
var renderer = new ChromePdfRenderer();
// Render a Razor Page directly to PDF
PdfDocument pdf = renderer.RenderRazorToPdf(this);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Public Class ReportModel
Inherits PageModel
Public Function OnGet() As IActionResult
Dim renderer As New ChromePdfRenderer()
' Render a Razor Page directly to PDF
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)
Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
End Function
End Class
VERWANDTER ANLEITUNGSARTIKEL: So konvertieren Sie CSHTML in Razor Pages in PDF
Wie man MVC-Ansichten in PDF konvertiert
Teams, die das MVC-Muster verwenden, können PDFs direkt aus ihren bestehenden Views und Controllern generieren. Installieren Sie das MVC Core-Erweiterungspaket und rufen Sie dann RenderRazorViewToPdf mit Ihrem View-Pfad und Ihrem Modell auf – IronPDF übernimmt die Razor-Rendering-Pipeline und gibt ein fertiges PDF aus.
Dies ist besonders nützlich für Berichte, Rechnungen und alle Seiten, deren HTML-Code bereits im Browser entworfen und getestet wurde. Die generierte PDF-Datei bewahrt die vollständige Ansichtsausgabe, einschließlich Layoutseiten und Teilansichten.
PM > Install-Paket IronPdf.Extensions.Mvc.Co/re
PM > Install-Paket IronPdf.Extensions.Mvc.Co/re
Registrieren Sie zunächst den Dienst IRazorViewRenderer in Ihrer Program.cs, damit Ihre Controller ihn einbinden können:
using IronPdf.Extensions.Mvc.Co/re;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
using IronPdf.Extensions.Mvc.Co/re;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Register the Razor view renderer for IronPDF
builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
Imports IronPdf.Extensions.Mvc.Core
Dim builder = WebApplication.CreateBuilder(args)
builder.Services.AddControllersWithViews()
' Register the Razor view renderer for IronPDF
builder.Services.AddSingleton(Of IHttpContextAccessor, HttpContextAccessor)()
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()
Anschließend können Sie in Ihrer Controller-Aktion den Renderer einbinden und jede Ansicht in ein PDF konvertieren:
using IronPdf;
using IronPdf.Extensions.Mvc.Co/re;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
// Inject the view renderer via constructor
public ReportController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Download()
{
var reportModel = new { Title = "Quarterly Report", Total = 1250.00 };
var renderer = new ChromePdfRenderer();
// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
_viewRenderService, "Views/Home/Report.cshtml", reportModel);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
using IronPdf.Extensions.Mvc.Co/re;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
// Inject the view renderer via constructor
public ReportController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Download()
{
var reportModel = new { Title = "Quarterly Report", Total = 1250.00 };
var renderer = new ChromePdfRenderer();
// Render an MVC View with model data to PDF
PdfDocument pdf = renderer.RenderRazorViewToPdf(
_viewRenderService, "Views/Home/Report.cshtml", reportModel);
Response.Headers.Add("Content-Disposition", "inline");
return new FileContentResult(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Imports IronPdf.Extensions.Mvc.Core
Imports Microsoft.AspNetCore.Mvc
Public Class ReportController
Inherits Controller
Private ReadOnly _viewRenderService As IRazorViewRenderer
' Inject the view renderer via constructor
Public Sub New(viewRenderService As IRazorViewRenderer)
_viewRenderService = viewRenderService
End Sub
Public Function Download() As IActionResult
Dim reportModel = New With {.Title = "Quarterly Report", .Total = 1250.0}
Dim renderer = New ChromePdfRenderer()
' Render an MVC View with model data to PDF
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Report.cshtml", reportModel)
Response.Headers.Add("Content-Disposition", "inline")
Return New FileContentResult(pdf.BinaryData, "application/pdf")
End Function
End Class
VERWANDTER ANLEITUNGSARTIKEL: So konvertieren Sie Ansichten in ASP.NET Core MVC in PDF
2. Wie man HTML-zu-PDF-Einstellungen konfiguriert
Was die Bearbeitung von PDF-Dokumenten angeht, bietet IronPDF umfangreiche Anpassungsmöglichkeiten über die Eigenschaft ChromePdfRenderer.RenderingOptions für gerenderte PDFs.
| Einstellungen | Beschreibung | Beispiel |
|---|---|---|
Papiergröße
|
Seitendimensionen für bestehende PDFs einstellen (A4, Letter, Legal, etc.) |
PdfPaperSize.A4
|
Papierorientation
|
Hoch- oder Querformat für vorhandene PDFs einstellen |
PdfPaperOrientation.Landscape
|
MarginTop/Bottom/Left/Right
|
Seitenränder in Millimetern einstellen (Standard: 25mm) | |
CssMediaType
|
CSS für HTML zu PDF anzeigen oder drucken |
PdfCssMediaType.Print
|
PrintHtmlBackgrounds
|
Hintergrundfarben/Bilder einfügen (Standard: true) | WAHR |
EnableJavaScript
|
JavaScript vor dem Rendern von HTML-Inhalten ausführen | WAHR |
WaitFor.RenderDelay
|
Wartezeit für dynamische HTML-Inhalte (ms) | 500 |
Sehen Sie sich diesen Codeausschnitt für ein vollständiges Konfigurationsbeispiel zur Bearbeitung von PDF-Dokumenten an:
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
using IronPdf;
using IronPdf.Rendering;
var renderer = new ChromePdfRenderer();
// Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
// Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
// Generate PDFs with all settings applied to HTML content
var htmlContent = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>";
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
pdfDocument.SaveAs("styled-output.pdf");
Imports IronPdf
Imports IronPdf.Rendering
Dim renderer As New ChromePdfRenderer()
' Apply print-specific CSS rules
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Set custom margins in millimeters
renderer.RenderingOptions.MarginTop = 50
renderer.RenderingOptions.MarginBottom = 50
' Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = True
' Set paper size and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
' Generate PDFs with all settings applied to HTML content
Dim htmlContent As String = "<div style='background-color: #f0f0f0; padding: 20px;'><h1>Styled Content</h1></div>"
Dim pdfDocument As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
pdfDocument.SaveAs("styled-output.pdf")
VERWANDTE HOW-TO-ARTIKEL:
| Maßgeschneiderte PDF-Konvertierung | PDF-Layout verfeinern |
|---|---|
So legen Sie benutzerdefinierte HTTP-Header, Cookies und Anmeldeinformationen fest
Beim Rendern von URLs, die eine Authentifizierung oder spezifische Anfragemetadaten erfordern, ermöglicht IronPDF das Einbinden von Anmeldeinformationen, Session-Cookies und HTTP-Headern in die Anfrage. Dadurch können Intranet-Dashboards, eingeschränkte Berichte oder API-generierte Seiten direkt als PDF gerendert werden, ohne dass der HTML-Code separat abgerufen werden muss.
Für die Basis- oder NTLM-Authentifizierung setzen Sie ein LoginCredentials-Objekt auf dem Renderer. Für tokenbasierten oder sitzungsbasierten Zugriff übergeben Sie Cookies und Header über RenderingOptions, bevor Sie RenderUrlAsPdf aufrufen.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword"
};
// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";
// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword"
};
// Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123";
// Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/quarterly-report");
pdf.SaveAs("quarterly-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Network authentication (Basic, Digest, NTLM)
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
.NetworkUsername = "user@domain.com",
.NetworkPassword = "securePassword"
}
' Session cookies for authenticated pages
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123"
' Custom HTTP headers (e.g., Bearer tokens, API keys)
renderer.RenderingOptions.CustomHttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."
Dim pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/quarterly-report")
pdf.SaveAs("quarterly-report.pdf")
VERWANDTE ANLEITUNGSARTIKEL: PDFs hinter Anmeldeauthentifizierung rendern | Benutzerdefinierte HTTP-Anfrageheader
So konfigurieren Sie einen Proxy für die PDF-Darstellung
Beim Rendern von HTML, das externe Ressourcen hinter einem Unternehmensproxy lädt, übergeben Sie die Proxy-Adresse als dritten Parameter an RenderHtmlAsPdf(). Dies ist ein Methodenparameter, keine Eigenschaft von ChromePdfRenderOptions – er wird also pro Render-Aufruf gesetzt, nicht auf der Renderer-Instanz.
Bei authentifizierten Proxys sind die Anmeldedaten direkt in die URL im Format http://user:pass@host:port einzubetten. Sonderzeichen in Passwörtern mit Uri.EscapeDataString() URL-kodieren.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Proxy is the third parameter — not a render option
PdfDocument pdf = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath: null,
proxy: "http://proxy.co/rp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Proxy is the third parameter — not a render option
PdfDocument pdf = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath: null,
proxy: "http://proxy.co/rp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Proxy is the third parameter — not a render option
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(
"<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
baseUrlOrPath:=Nothing,
proxy:="http://proxy.co/rp.local:8080"
)
pdf.SaveAs("proxied-report.pdf")
Beachten Sie, dass RenderUrlAsPdf() keinen Proxy-Parameter akzeptiert. Um eine Live-URL hinter einem Proxy darzustellen, rufen Sie zunächst den HTML-Code mit HttpClient ab, das mit einem WebProxy konfiguriert ist, und übergeben Sie ihn dann an RenderHtmlAsPdf() mit dem Proxy-Parameter zum Laden der Assets.
VERWANDTER ANLEITUNGSARTIKEL: So konfigurieren Sie Proxy-Server für die PDF-Darstellung
3. Wie man erweiterte PDF-Generierungs- & Sicherheitsfunktionen verwendet
Schalten Sie Unternehmensfunktionen für die HTML-zu-PDF-Konvertierung mit erweiterten Vorlagen, Async-Operationen und Sicherheitsfunktionen frei. Diese PDF-Bearbeitungsmethoden ermöglichen es Ihnen, PDF-Dokumente in großem Maßstab zu erstellen, sensible PDF-Dateien zu schützen und die Echtheit von Dokumenten zu gewährleisten, wenn Sie HTML in professionelles PDF-Format konvertieren.
Wie man eine HTML-Vorlage für Batch-PDF-Erstellung generiert
Einfaches Batching von PDF-Erstellung
Batch-PDF-Erstellung ist unerlässlich für das effiziente Erzeugen mehrerer personalisierter PDF-Dokumente. Für grundlegende Szenarien eignet sich die Methode String.Format in C# am besten für einfache PDF-Bearbeitung.
// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");
// Results in HTML content: <h1>Hello World!</h1>
// Simple HTML templating with String.Format
string htmlTemplate = String.Format("<h1>Hello {0}!</h1>", "World");
// Results in HTML content: <h1>Hello World!</h1>
' Simple HTML templating with String.Format
Dim htmlTemplate As String = String.Format("<h1>Hello {0}!</h1>", "World")
' Results in HTML content: <h1>Hello World!</h1>
Für längere Vorlagen, wenn Sie PDF-Dokumente generieren müssen, verwenden Sie Platzhalterersetzung in Ihren HTML-Inhalten:
using IronPdf;
// Define reusable HTML template for PDF files
var htmlTemplate = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>";
// Customer names for batch PDF conversion processing
var names = new[] { "John", "James", "Jenny" };
// Create personalized PDF documents for each customer
var renderer = new ChromePdfRenderer();
foreach (var name in names)
{
// Replace placeholder with actual data in HTML string
var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
// Generate personalized PDF document from HTML content
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
// Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf");
}
using IronPdf;
// Define reusable HTML template for PDF files
var htmlTemplate = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>";
// Customer names for batch PDF conversion processing
var names = new[] { "John", "James", "Jenny" };
// Create personalized PDF documents for each customer
var renderer = new ChromePdfRenderer();
foreach (var name in names)
{
// Replace placeholder with actual data in HTML string
var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);
// Generate personalized PDF document from HTML content
var pdf = renderer.RenderHtmlAsPdf(htmlInstance);
// Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf");
}
Imports IronPdf
' Define reusable HTML template for PDF files
Dim htmlTemplate As String = "<p>Dear [[NAME]],</p><p>Thank you for your order.</p>"
' Customer names for batch PDF conversion processing
Dim names As String() = {"John", "James", "Jenny"}
' Create personalized PDF documents for each customer
Dim renderer As New ChromePdfRenderer()
For Each name In names
' Replace placeholder with actual data in HTML string
Dim htmlInstance As String = htmlTemplate.Replace("[[NAME]]", name)
' Generate personalized PDF document from HTML content
Dim pdf = renderer.RenderHtmlAsPdf(htmlInstance)
' Save with customer-specific filename as PDF files
pdf.SaveAs($"{name}-invoice.pdf")
Next
HTML zu PDF-Vorlage mit Handlebars.NET
Verwenden Sie bei komplexen Vorlagen mit Schleifen und Bedingungen beim Konvertieren von HTML in PDF die erweiterte Vorlagenfunktion mit Handlebars.NET, um PDF-Dokumente mit dynamischen HTML-Inhalten zu erstellen.
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Paket Handlebars.NET
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Paket Handlebars.NET
using HandlebarsDotNet;
using IronPdf;
// Define Handlebars template with placeholders for HTML content
var source =
@"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>";
// Compile template for reuse in PDF conversion
var template = Handlebars.Com/pile(source);
// Create data object (can be database records) for HTML to PDF directly
var data = new {
title = "Monthly Report",
body = "Sales increased by 15% this month."
};
// Merge template with data to create HTML content
var htmlResult = template(data);
// Convert templated HTML to PDF using the PDF converter
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlResult);
pdf.SaveAs("monthly-report.pdf");
using HandlebarsDotNet;
using IronPdf;
// Define Handlebars template with placeholders for HTML content
var source =
@"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>";
// Compile template for reuse in PDF conversion
var template = Handlebars.Com/pile(source);
// Create data object (can be database records) for HTML to PDF directly
var data = new {
title = "Monthly Report",
body = "Sales increased by 15% this month."
};
// Merge template with data to create HTML content
var htmlResult = template(data);
// Convert templated HTML to PDF using the PDF converter
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlResult);
pdf.SaveAs("monthly-report.pdf");
Imports HandlebarsDotNet
Imports IronPdf
' Define Handlebars template with placeholders for HTML content
Dim source As String =
"<div class=""entry"">
<h1>{{title}}</h1>
<div class=""body"">
{{body}}
</div>
</div>"
' Compile template for reuse in PDF conversion
Dim template = Handlebars.Compile(source)
' Create data object (can be database records) for HTML to PDF directly
Dim data = New With {
.title = "Monthly Report",
.body = "Sales increased by 15% this month."
}
' Merge template with data to create HTML content
Dim htmlResult = template(data)
' Convert templated HTML to PDF using the PDF converter
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlResult)
pdf.SaveAs("monthly-report.pdf")
VERWANDTER HOW-TO-Artikell: Erfahren Sie mehr über Handlebars.NET auf GitHub
PDF-Seitenumbrüche kontrollieren:
Die Verwaltung des Seitenumbruchs in generierten PDF-Dokumenten gewährleistet professionelle, lesbare Layouts, wenn Sie HTML-Schnipsel konvertieren. Verwenden Sie CSS, um den Seitenumbruch in Ihren PDF-Dateien zu steuern.<!DOCTYPE html>
<html>
<head>
<style type="text/css" media="print">
.page {
page-break-after: always;
page-break-inside: avoid;
}
</style>
</head>
<body>
<div class="page">
<h1>Page 1 Content</h1>
</div>
<div class="page">
<h1>Page 2 Content</h1>
</div>
<div class="page">
<h1>Page 3 Content</h1>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style type="text/css" media="print">
.page {
page-break-after: always;
page-break-inside: avoid;
}
</style>
</head>
<body>
<div class="page">
<h1>Page 1 Content</h1>
</div>
<div class="page">
<h1>Page 2 Content</h1>
</div>
<div class="page">
<h1>Page 3 Content</h1>
</div>
</body>
</html>
Wie man PDF mit der Async-Methode generiert
IronPDF liefert Enterprise-Performance mit voller Async- und Multithreading-Unterstützung für Ihre Anforderungen an die HTML-zu-PDF-Konvertierung, wenn Sie PDF-Dateien in großem Maßstab erzeugen müssen.
using IronPdf;
using System.Co/llections.Generic;
using System.Linq;
using System.Threading.Tasks;
public class PdfGenerationService
{
// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
// Async HTML to PDF conversion preserves thread pool
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
// Return PDF files as byte array for web responses
return pdf.BinaryData;
}
// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> htmlVorlagen)
{
var renderer = new ChromePdfRenderer();
// Create parallel conversion tasks to generate PDF documents
var tasks = htmlVorlagen.Select(html =>
renderer.RenderHtmlAsPdfAsync(html)
);
// Await all PDF conversions simultaneously
var pdfs = await Task.WhenAll(tasks);
// Save generated PDF files from HTML content
for (int i = 0; i < pdfs.Length; i++)
{
pdfs[i].SaveAs($"document-{i}.pdf");
}
}
}
using IronPdf;
using System.Co/llections.Generic;
using System.Linq;
using System.Threading.Tasks;
public class PdfGenerationService
{
// Async method for non-blocking PDF generation from HTML content
public async Task<byte[]> GeneratePdfAsync(string html)
{
var renderer = new ChromePdfRenderer();
// Async HTML to PDF conversion preserves thread pool
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
// Return PDF files as byte array for web responses
return pdf.BinaryData;
}
// Concurrent batch PDF generation for multiple HTML strings
public async Task GenerateMultiplePdfsAsync(List<string> htmlVorlagen)
{
var renderer = new ChromePdfRenderer();
// Create parallel conversion tasks to generate PDF documents
var tasks = htmlVorlagen.Select(html =>
renderer.RenderHtmlAsPdfAsync(html)
);
// Await all PDF conversions simultaneously
var pdfs = await Task.WhenAll(tasks);
// Save generated PDF files from HTML content
for (int i = 0; i < pdfs.Length; i++)
{
pdfs[i].SaveAs($"document-{i}.pdf");
}
}
}
Imports IronPdf
Imports System.Collections.Generic
Imports System.Linq
Imports System.Threading.Tasks
Public Class PdfGenerationService
' Async method for non-blocking PDF generation from HTML content
Public Async Function GeneratePdfAsync(html As String) As Task(Of Byte())
Dim renderer As New ChromePdfRenderer()
' Async HTML to PDF conversion preserves thread pool
Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html)
' Return PDF files as byte array for web responses
Return pdf.BinaryData
End Function
' Concurrent batch PDF generation for multiple HTML strings
Public Async Function GenerateMultiplePdfsAsync(htmlVorlagen As List(Of String)) As Task
Dim renderer As New ChromePdfRenderer()
' Create parallel conversion tasks to generate PDF documents
Dim tasks = htmlVorlagen.Select(Function(html) renderer.RenderHtmlAsPdfAsync(html))
' Await all PDF conversions simultaneously
Dim pdfs = Await Task.WhenAll(tasks)
' Save generated PDF files from HTML content
For i As Integer = 0 To pdfs.Length - 1
pdfs(i).SaveAs($"document-{i}.pdf")
Next
End Function
End Class
- Verwenden Sie 64-Bit-Systeme für optimale PDF-Erzeugungsleistung.
- Sorgen Sie für ausreichende Serverressourcen, wenn Sie PDF-Dokumente generieren (vermeiden Sie unzureichende Gratisangebote)
- Gewähren Sie ausreichende RenderDelay für komplexes JavaScript in HTML-Inhalten.
- Verwenden Sie
ChromePdfRenderer-Instanzen nach Möglichkeit wieder. - Nutzen Sie die Speicheroptimierungen von v2025.9.4 für Batch-Operationen zur Reduzierung der Ressourcennutzung; testen Sie für reduzierte Dateigrößen mit wiederkehrenden benutzerdefinierten Kopf-/Fußzeilen.
VERBUNDENE HOW-TO-Artikel: Wie man PDFs mit Async und Multithreading erzeugt
Wie man erweiterte Sicherheitsfunktionen hinzufügt
Wie man PDF-Dateien in .NET mit einem Passwort schützt
Schützen Sie empfindliche generierte PDF-Dokumente mit Passwörtern und Berechtigungen, wenn Sie HTML-Inhalte in geschütztes PDF-Format konvertieren.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML to PDF with security
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>");
// Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123"; // Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456"; // Password to modify PDF files
// Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint;
// Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256;
pdf.SaveAs("secure-document.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Convert HTML to PDF with security
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>");
// Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123"; // Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456"; // Password to modify PDF files
// Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint;
// Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256;
pdf.SaveAs("secure-document.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Convert HTML to PDF with security
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Report</h1>")
' Configure security settings for PDF files
pdf.SecuritySettings.UserPassword = "user123" ' Password to open PDF documents
pdf.SecuritySettings.OwnerPassword = "owner456" ' Password to modify PDF files
' Set granular permissions for PDF format
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserPrinting = PrintPermissions.LowQualityPrint
' Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256
pdf.SaveAs("secure-document.pdf")
Wie man digitale Signaturen zu PDF-Dateien hinzufügt
Fügen Sie kryptografische Signaturen hinzu, um die Echtheit von PDF-Dokumenten zu gewährleisten, wenn Sie PDF-Dateien aus HTML-Inhalten generieren.
using IronPdf;
using IronPdf.Signing;
var renderer = new ChromePdfRenderer();
// Generate PDF from HTML page
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Create digital signature with certificate for PDF files
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval",
SignerName = "Authorized Signer" // New property in v2025.8.8 for enhanced signature details
};
// Apply signature to PDF documents
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
using IronPdf;
using IronPdf.Signing;
var renderer = new ChromePdfRenderer();
// Generate PDF from HTML page
var pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>");
// Create digital signature with certificate for PDF files
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "legal@company.com",
SigningLocation = "New York, NY",
SigningReason = "Contract Approval",
SignerName = "Authorized Signer" // New property in v2025.8.8 for enhanced signature details
};
// Apply signature to PDF documents
pdf.Sign(signature);
pdf.SaveAs("signed-contract.pdf");
Imports IronPdf
Imports IronPdf.Signing
Dim renderer As New ChromePdfRenderer()
' Generate PDF from HTML page
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Contract Agreement</h1>")
' Create digital signature with certificate for PDF files
Dim signature As New PdfSignature("certificate.pfx", "password") With {
.SigningContact = "legal@company.com",
.SigningLocation = "New York, NY",
.SigningReason = "Contract Approval",
.SignerName = "Authorized Signer" ' New property in v2025.8.8 for enhanced signature details
}
' Apply signature to PDF documents
pdf.Sign(signature)
pdf.SaveAs("signed-contract.pdf")
VERBUNDENE HOW-TO-Artikel: Digitales Signieren von PDF-Dokumenten mit C#
So konvertieren Sie HTML-Formulare in ausfüllbare PDFs
Um standardmäßige HTML-Formularelemente in interaktive, ausfüllbare PDF-Formularfelder umzuwandeln, aktivieren Sie die Rendering-Option CreatePdfFormsFromHtml. Dadurch bleiben Texteingabefelder, Kontrollkästchen, Optionsfelder und Dropdown-Menüs im generierten PDF-Dokument als bearbeitbare Felder erhalten.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string htmlForm = @"
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>";
var pdf = renderer.RenderHtmlAsPdf(htmlForm);
pdf.SaveAs("onboarding-form.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
string htmlForm = @"
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>";
var pdf = renderer.RenderHtmlAsPdf(htmlForm);
pdf.SaveAs("onboarding-form.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Enable HTML form to PDF form conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
Dim htmlForm As String = "
<h2>Employee Onboarding Form</h2>
<form>
<label>Full Name:</label>
<input type='text' name='fullName' value='' /><br/>
<label>Department:</label>
<select name='department'>
<option value='engineering'>Engineering</option>
<option value='marketing'>Marketing</option>
<option value='sales'>Sales</option>
</select><br/>
<label>Agree to Terms:</label>
<input type='checkbox' name='agreeTerms' />
</form>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlForm)
pdf.SaveAs("onboarding-form.pdf")
name-Attribut haben. Doppelte Namen führen dazu, dass Felder im generierten PDF denselben Wert haben, was beim Ausfüllen des Formulars zu unerwartetem Verhalten führt.VERWANDTER ANLEITUNGSARTIKEL: Wie man ausfüllbare PDF-Formulare in C# erstellt
Wie man bestimmte HTML-Elemente in PDF konvertiert
Um nur einen bestimmten Abschnitt einer Seite anstatt des gesamten Dokuments darzustellen, isolieren Sie das Zielelement vor dem Rendern. Der direkteste Ansatz nutzt die Rendering-Option JavaScript, um den Dokumenttext durch den Inhalt des Zielelements zu ersetzen, kombiniert mit WaitFor.HtmlQuerySelector(), um sicherzustellen, dass das Element vor der Extraktion vorhanden ist. Der folgende Ausschnitt bewahrt document.head, damit Stylesheets und Schriftarten übernommen werden – ohne diesen Schritt würden CSS-Regeln, die auf Vorfahren-Selektoren basieren, in der extrahierten PDF-Datei verloren gehen.
Für serverseitige Szenarien, in denen Sie Zugriff auf den rohen HTML-Code haben, extrahieren Sie das Zielfragment mit einem Parser wie AngleSharp und übergeben Sie es an RenderHtmlAsPdf() – eine JavaScript-Ausführung ist nicht erforderlich.
using IronPdf;
// Full page HTML containing the target element
string fullPageHtml = @"
<html>
<body>
<header><h1>Acme Corp Invoice</h1></header>
<div id='invoice-summary'>
<h2>Invoice #12345</h2>
<p>Total: $1,250.00</p>
</div>
<footer>Confidential</footer>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
// Replace the body with only the target element
renderer.RenderingOptions.JavaScript = @"
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
";
// Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000);
var pdf = renderer.RenderHtmlAsPdf(fullPageHtml);
pdf.SaveAs("invoice-summary.pdf");
using IronPdf;
// Full page HTML containing the target element
string fullPageHtml = @"
<html>
<body>
<header><h1>Acme Corp Invoice</h1></header>
<div id='invoice-summary'>
<h2>Invoice #12345</h2>
<p>Total: $1,250.00</p>
</div>
<footer>Confidential</footer>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
// Replace the body with only the target element
renderer.RenderingOptions.JavaScript = @"
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
";
// Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000);
var pdf = renderer.RenderHtmlAsPdf(fullPageHtml);
pdf.SaveAs("invoice-summary.pdf");
Imports IronPdf
' Full page HTML containing the target element
Dim fullPageHtml As String = "
<html>
<body>
<header><h1>Acme Corp Invoice</h1></header>
<div id='invoice-summary'>
<h2>Invoice #12345</h2>
<p>Total: $1,250.00</p>
</div>
<footer>Confidential</footer>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
' Replace the body with only the target element
renderer.RenderingOptions.JavaScript = "
var el = document.querySelector('#invoice-summary');
if (el) {
var head = document.head.innerHTML;
document.body.innerHTML = el.outerHTML;
document.head.innerHTML = head;
}
"
' Wait for the target element before JS executes
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("#invoice-summary", 10000)
Dim pdf = renderer.RenderHtmlAsPdf(fullPageHtml)
pdf.SaveAs("invoice-summary.pdf")
VERWANDTER ANLEITUNGSARTIKEL: So konvertieren Sie HTML-Elemente und Teilseiten in PDF
Wie man authentifizierte Seiten als PDF rendert
Es gibt drei Mechanismen zum Rendern von Seiten, die eine Authentifizierung erfordern: Netzwerk-Anmeldeinformationen, benutzerdefinierte Cookies und HTTP-Anforderungsheader. Diese decken die häufigsten Authentifizierungsszenarien bei der Konvertierung geschützter Webinhalte in PDF ab.
Anmeldeinformationen
Verwenden Sie ChromeHttpLoginCredentials für die Basic-, Digest- oder NTLM-Authentifizierung, wenn Sie geschützte URLs in PDF konvertieren.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure network authentication
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword",
AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
};
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/reports");
pdf.SaveAs("authenticated-report.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure network authentication
renderer.LoginCredentials = new ChromeHttpLoginCredentials
{
NetworkUsername = "user@domain.com",
NetworkPassword = "securePassword",
AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
};
var pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/reports");
pdf.SaveAs("authenticated-report.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Configure network authentication
renderer.LoginCredentials = New ChromeHttpLoginCredentials With {
.NetworkUsername = "user@domain.com",
.NetworkPassword = "securePassword",
.AuthenticationType = ChromeHttpLoginCredentials.AuthType.Basic
}
Dim pdf = renderer.RenderUrlAsPdf("https://intranet.com/pany.com/reports")
pdf.SaveAs("authenticated-report.pdf")
Cookies und HTTP-Header
Für tokenbasierte oder sitzungsbasierte Authentifizierung fügen Sie benutzerdefinierte Cookies und HTTP-Header direkt an die Rendering-Anfrage an.
using IronPdf;
var renderer = new ChromePdfRenderer();
// Add session cookies
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123token";
renderer.RenderingOptions.CustomCookies["authToken"] = "bearer-xyz";
// Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Add session cookies
renderer.RenderingOptions.CustomCookies["sessionId"] = "abc123token";
renderer.RenderingOptions.CustomCookies["authToken"] = "bearer-xyz";
// Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders["Authorization"] = "Bearer eyJhbGciOi...";
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard");
pdf.SaveAs("dashboard.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Add session cookies
renderer.RenderingOptions.CustomCookies("sessionId") = "abc123token"
renderer.RenderingOptions.CustomCookies("authToken") = "bearer-xyz"
' Add custom HTTP headers (e.g., API key or Bearer token)
renderer.RenderingOptions.CustomHttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."
Dim pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard")
pdf.SaveAs("dashboard.pdf")
HttpClient durchführen und anschließend die resultierenden Cookies an das CustomCookies-Wörterbuch übergeben, um die geschützte Seite darzustellen.VERWANDTER ANLEITUNGSARTIKEL: So konvertieren Sie HTML hinter der Anmeldeauthentifizierung in PDF
4. Wie man HTML auf Cloud-Plattformen in PDF umwandelt
Die Bereitstellung der HTML-zu-PDF-Konvertierung in Cloud-Umgebungen erfordert eine spezifische Konfiguration für das Headless-Rendering, temporäre Dateipfade und die Ressourcenzuweisung. Dieser Abschnitt behandelt die gängigsten Cloud-Plattformen und containerisierten Bereitstellungen mit IronPDF.
| Plattform | Min Ressourcen | Paket | AutoConfig | Temporärer Pfad | Schlüssel-Fang |
|---|---|---|---|---|---|
| Azure App Service | Stufe B1 (Grundstufe) |
IronPdf.Linux
|
true
|
/tmp | Kostenlose/Shared-Tarife scheitern – keine GPU, zu wenig Speicher |
| Azure Functions (Windows) | B1-Ebene |
IronPdf
|
true
|
/tmp | Deaktivieren Sie die Option "Aus Paketdatei ausführen". |
| AWS Lambda | 512 MB / 330 Sekunden Timeout |
IronPdf.Linux
|
true
|
/tmp (erforderlich) | Das Standarddateisystem ist schreibgeschützt. |
| Docker (Ubuntu/Debian) | Bildabhängig |
IronPdf.Linux
|
false
|
Standardbild |
Auf false setzen – Dockerfile kümmert sich um Abhängigkeiten
|
So stellen Sie die Bereitstellung in Azure vor
Bei der Bereitstellung in Azure Functions oder App Service deaktivieren Sie die GPU-Beschleunigung und stellen Sie sicher, dass Ihre Hosting-Ebene genügend Arbeitsspeicher für das Chrome-basierte Rendering bereitstellt. Fügen Sie diese Einstellungen beim Start der Anwendung hinzu, bevor Rendering-Aufrufe erfolgen.
Azure-Sandboxes laufen ohne grafische Oberfläche und ohne GPU-Zugriff, und die kostenlosen/gemeinsamen Tarife (F1, D1) verfügen nicht über die Ressourcen, die Chrome benötigt. Streben Sie eine B1-Einstufung (Basis) oder höher an.
using IronPdf;
// Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>");
pdf.SaveAs("azure-report.pdf");
using IronPdf;
// Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>");
pdf.SaveAs("azure-report.pdf");
Imports IronPdf
' Azure sandboxes block GPU access — always disable
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
' Required on non-GUI Linux systems
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Azure PDF Report</h1>")
pdf.SaveAs("azure-report.pdf")
VERWANDTE EINSTIEGSLEITFADEN: So stellen Sie IronPDF auf Azure bereit
Wie man auf AWS Lambda bereitstellt
AWS Lambda erfordert eine Docker-basierte Bereitstellung für das Chrome-basierte PDF-Rendering. Das Standard-Lambda-Dateisystem ist schreibgeschützt, daher müssen alle temporären und Bereitstellungs-Pfade auf /tmp verweisen.
Konfigurieren Sie diese Einstellungen am Anfang Ihres Funktionshandlers, bevor Sie Rendering-Aufrufe durchführen.
using Amazon.Lambda.Co/re;
using IronPdf;
public class PdfFunction
{
public string FunctionHandler(string input, ILambdaContext context)
{
// Lambda's only writable directory
var tmpPath = "/tmp/";
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
context.Logger.LogLine("Rendering PDF...");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(input);
// Save to /tmp before uploading to S3 or returning
var outputPath = $"{tmpPath}output.pdf";
pdf.SaveAs(outputPath);
return outputPath;
}
}
using Amazon.Lambda.Co/re;
using IronPdf;
public class PdfFunction
{
public string FunctionHandler(string input, ILambdaContext context)
{
// Lambda's only writable directory
var tmpPath = "/tmp/";
IronPdf.Installation.TempFolderPath = tmpPath;
IronPdf.Installation.CustomDeploymentDirectory = tmpPath;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
// Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
context.Logger.LogLine("Rendering PDF...");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(input);
// Save to /tmp before uploading to S3 or returning
var outputPath = $"{tmpPath}output.pdf";
pdf.SaveAs(outputPath);
return outputPath;
}
}
Imports Amazon.Lambda.Core
Imports IronPdf
Public Class PdfFunction
Public Function FunctionHandler(input As String, context As ILambdaContext) As String
' Lambda's only writable directory
Dim tmpPath As String = "/tmp/"
IronPdf.Installation.TempFolderPath = tmpPath
IronPdf.Installation.CustomDeploymentDirectory = tmpPath
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
' Let IronPDF install Chrome dependencies on first cold start
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = True
context.Logger.LogLine("Rendering PDF...")
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(input)
' Save to /tmp before uploading to S3 or returning
Dim outputPath As String = $"{tmpPath}output.pdf"
pdf.SaveAs(outputPath)
Return outputPath
End Function
End Class
VERWANDTE EINSTIEGSLEITFADEN: So stellen Sie IronPDF auf AWS Lambda bereit
Wie man mit Docker bereitstellt
Verwenden Sie für Docker-Bereitstellungen das NuGet-Paket IronPdf.Linux, um die Image-Größe zu reduzieren und das Herunterladen von Assets zur Laufzeit zu vermeiden. Dieses Paket enthält vorkonfigurierte, Linux-native Binärdateien, die für containerisierte Umgebungen optimiert sind.
Setzen Sie LinuxAndDockerDependenciesAutoConfig = false, wenn Ihre Dockerfile die Abhängigkeiten der gemeinsam genutzten Bibliotheken von Chrome bereits über apt-get installiert. Die automatische Installation zur Laufzeit ist in diesem Fall überflüssig und kann zu Berechtigungsfehlern oder längeren Kaltstarts führen.
| Plattform | Paket | Schlüsselkonfiguration |
|---|---|---|
| Ubuntu 22.04 / Debian |
IronPdf.Linux
|
Standardeinstellung – funktioniert sofort nach dem Auspacken |
| Alpine Linux |
IronPdf.Linux
|
Installieren Sie Chromium über eine APK-Datei in der Dockerfile. |
| Amazon Linux 2 |
IronPdf.Linux
|
Verwenden Sie LinuxAndDockerDependenciesAutoConfig = true
|
| Windows-Container |
IronPdf
|
Keine zusätzliche Konfiguration erforderlich |
Ein minimales mehrstufiges Dockerfile für ein Ubuntu/Debian-basiertes Image:
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app
COPY . .
RUN dotnet publish -c Release -o /out
FROM mcr.microsoft.com/dotnet/aspnet:8.0
# Install Chrome dependencies for PDF rendering
RUN apt-get update && apt-get install -y \
libglib2.0-0 libnss3 libatk1.0-0 libatk-bridge2.0-0 \
libcups2 libdrm2 libxkbcommon0 libxcomposite1 \
libxdamage1 libxrandr2 libgbm1 libpango-1.0-0 \
libcairo2 libasound2 libxshmfence1 && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /out .
ENTRYPOINT ["dotnet", "MyApp.dll"]
using IronPdf;
// Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
// No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>");
pdf.SaveAs("output.pdf");
using IronPdf;
// Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = false;
// No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>");
pdf.SaveAs("output.pdf");
Imports IronPdf
' Dependencies handled by Dockerfile apt-get — disable runtime install
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = False
' No GPU in containers
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Dockerized PDF</h1>")
pdf.SaveAs("output.pdf")
VERWANDTE EINSTIEGSLEITFADEN: So verwenden Sie IronPDF mit Docker
5. Vergleich von IronPDF mit anderen .NET PDF-Bibliotheken
IronPDF ist die Lösung der Wahl für viele Teams, wenn es um C#-PDF-Erzeugung geht, dank seiner robusten Chrom-basierten Rendering-Engine, benutzerfreundlichen APIs und häufigen Produktverbesserungen. Lassen Sie uns IronPDF mit anderen PDF-Konvertern vergleichen, um die beste Lösung für Ihre PDF-Erzeugungsanforderungen zu finden.
Schnelle Entscheidungsmatrix: IronPDF gegenüber anderen .NET PDF-Konvertern
| Lösung | Wann zu verwenden | Am besten geeignet für |
|---|---|---|
| IronPDF | Konvertierung moderner Websites/HTML in PDF mit exakter visueller Treue. | Unternehmensanwendungen, die eine zuverlässige HTML-Rendering-Engine, dynamische Inhalte und professionellen Support erfordern. |
| wkhtmltopdf | Einfache HTML-Konvertierung in unkritischen Anwendungen, bei denen eine veraltete Darstellung akzeptabel ist. | Grundlegende Dokumentenerierung mit Legacy HTML/CSS. |
| Syncfusion | Wenn Sie bereits in das Syncfusion-Ökosystem investiert haben oder für eine kostenlose Community-Lizenz in Frage kommen. | Organisationen, die mehrere Syncfusion-Komponenten verwenden. |
| Aspose.PDF | Komplexe PDF-Bearbeitung, wenn die Qualität der HTML-Darstellung weniger wichtig ist. | Umfassende PDF-Bearbeitungsfunktionen, die über die HTML-Konvertierung hinausgehen. |
VERWANDTE VERGLEICHE:
Detaillierter Vergleich: IronPDF gegenüber anderen .NET PDF-Konvertern
| Merkmal | ★ Empfohlen: IronPDF | wkhtmltopdf | iText | Aspose.PDF | Syncfusion | Apryse | SelectPdf | Spire.PDF | PDFSharp | QuestPDF |
|---|---|---|---|---|---|---|---|---|---|---|
| Rendering & Konvertierung | ||||||||||
| Rendering-Genauigkeit | Pixelperfekt – das Beste | Druckansicht | Nur programmatisch | Gut | Gut | Gut | Gut | Niedriges Niveau | Keine Darstellung | Code-First-Layout |
| HTML5-Unterstützung | Voll | Veraltet | Hinzufügen Auf | Teilweise | Voll | Modul | Voll | Beschränkt | NEIN | Nein (Code-First) |
| CSS3-Unterstützung | Voll | Beschränkt | Hinzufügen Auf | Teilweise | Voll | Modul | Voll | Beschränkt | NEIN | Nein (Code-First) |
| JavaScript-Ausführung | Vollständig Best | NEIN | NEIN | Umstritten | Beschränkt | Beschränkt | Beschränkt | Sehr begrenzt | NEIN | NEIN |
| HTML→PDF (Modernes Layout) | Eingebettetes Chromium Best | Qt WebKit (veraltet) | Kostenpflichtiges Zusatzangebot | Teilweise; JS umstritten | Blink Engine | Erfordert Modul | Vollständiges HTML→PDF | Bildbasiert | NEIN | Kein HTML-Renderer |
| PDF→Bildwiedergabe | Ja | NEIN | Ja | Ja | Ja | Ja | NEIN | Beschränkt | NEIN | Nur eigene Dokumente |
| Dokumentenvorgänge | ||||||||||
| PDFs programmatisch generieren | Ja | NEIN | Ja | Ja | Ja | Ja | Nur HTML | Ja | Grundlegend | Ja (Fluent API) |
| Zusammenführen, Aufteilen & Neu anordnen | Ja | NEIN | Ja | Ja | Ja | Ja | Ja | Ja | Beschränkt | Ja |
| Kopfzeilen / Fußzeilen / Seitenzahlen | HTML/Text/Bild am besten | Begrenzt | Ja | Über Veranstaltungen | Über Veranstaltungen | Ja | Vorlagen | Handbuch | Nur Handbuch | Spielautomaten erster Klasse |
| Wasserzeichen & Stempel | Text & Bild | NEIN | Ja | Ja | Ja | Ja | Ja | Beschränkt | NEIN | Ja (Overlays) |
| Text aus PDFs extrahieren | Ja | NEIN | Ja | Ja | Ja | Ja | Ja | Ja | Grundlegend | NEIN |
| OCR für gescannte PDFs | Über IronOCR Integrated | NEIN | Hinzufügen Auf | Separates Produkt | Hinzufügen Auf | Hinzufügen Auf | NEIN | Workaround | NEIN | NEIN |
| Sicherheit und Konformität | ||||||||||
| Digitale Signaturen | Ja | NEIN | Ja | Ja | Ja | Beispielcode | Ja | NEIN | NEIN | Nicht dokumentiert |
| PDF/A-Konformität | Ja (PDF/A-3B) | NEIN | Vollständiges PDF/A | Validieren & Erstellen | Erfordert ein natives SDK | PDF-Konformität | NEIN | Ja | Beschränkt | PDF/A-2x & 3x |
| Plattform- und Entwicklererfahrung | ||||||||||
| Plattformübergreifend | Windows · Linux · macOS Alle 3 | Abhängig von Binärdateien | .NET Standard 2.0 | Linux-Zusatzkonfiguration | Blink + .NET Server | Natives SDK | Nur für Windows * | Begrenzte Linux-Dokumentation | Windows-orientiert | Windows/Linux/macOS |
| Cloud- und Docker-Bereitstellung | Azure · AWS · Docker Beste | Komplex; Altlasten | Mehrere Pakete | Teilweise; Container | Blink Extras benötigt | Einheimische Abteilungen | Nur für Windows | Begrenzte Informationen | Einfach; leicht | Docker/K8s; Lokal |
| Support & Dokumentation | ||||||||||
| Dokumentation | Umfangreich + Kopieren /Einfügen | Teilweise CLI-Dokumentation | Umfangreich; KB | Breit; GitHub | Hilfezentrum | Sprachübergreifender Katalog | Leitfäden für Einsteiger | Programm | Community-Leitfäden | Strukturierte + Begleit-App |
| Entwicklerunterstützung | 24/7 Ingenieure Beste | Nur für die Community | Abonnement inklusive | Forum + Bezahlt | 24/5 Direct-Trac | Kommerziell | Forum + E-Mail | Nur für die Community | Community + GitHub | |
| Lizenzierung & Preisgestaltung | ||||||||||
| Lizenzmodell | Ewige | Open Source | AGPL / Abonnement | Ewige | Jahresabonnement | Kundenspezifisch / Verbrauch | Ewige | Jahresabonnement | Kostenlos (MIT) | MIT Kostenlose / Bezahlte Stufen |
| Startpreis | $liteLicense Unbefristet · 1 Entwickler | style="color:#16a34a">Frei | ~45.000 $/Jahr Individuelles Angebot | 1.175 $+ pro Entwickler | 995 $/Jahr Abonnement · Kostenlos <1 Mio. $ | ~9.000 $+/Jahr Individuelles Angebot | 499 $+ Unbefristet | 999 $/Jahr Jahresabonnement | style="color:#16a34a">Frei | style="color:#16a34a">Kostenlose Community MIT <1 Mio. $ |
| Kostenlose Testversion | 30 Tage · Voller Funktionsumfang · Keine Einschränkungen | Nicht verfügbar (kostenlos) | 30 Tage | Ja (mit Wasserzeichen) | Community <$1M Rev | Ja | Community (5 Seiten) | Kostenlos (10 Seiten) | Nicht verfügbar (kostenlos) | N/A (MIT Free <$1M) |
| Preistransparenz | Veröffentlicht und am besten | Open Source | Komplex AGPL | Viele Ebenen | Angebot anfordern | Keine Preisangaben veröffentlicht | Veröffentlicht | Veröffentlicht | MIT-Lizenz; Keine Einschränkungen | MIT; Vertrauensbasiert |
Vergleich der HTML-zu-PDF-Konvertierung im echten Leben: Rendering der Reddit-Startseite
Um die Qualität der Ausgabe-PDF zu bewerten, haben wir diese Bibliotheken mit der Startseite von Reddit getestet, die dynamische Webinhalte, modernes CSS und HTML-Elemente von JavaScript enthält. Diese Seite dient als ideales Testbeispiel für die Ausgabe-PDF-Erstellung.

IronPDF

IronPDF liefert pixelgenaue Ergebnisse, indem es alle dynamischen Webinhalte, modernen Webfonts, Styling und interaktive Elemente genau so erhält, wie sie in Chrome angezeigt werden - alles in nur wenigen Codezeilen.
Syncfusion

Syncfusion gerenderte PDF mit den meisten Abschnitten und Stylings fehlt, insbesondere mit dynamischen Inhalten. Ursprünglich durch Reddits Sicherheit blockiert. Bessere Ergebnisse erfordern umfangreiche Anpassungen der Befehlszeile, dennoch bleibt das Ergebnis unvollständig.
Aspose.PDF

Aspose.PDF erforderte zunächst einen manuellen HTML-Download (keine direkte URL-Unterstützung). Nach der Konvertierung fehlte es der Ausgabe an ordentlichem Format und fast alle Inhaltsabschnitte fehlten, was sie für moderne Webs mit dynamischen Inhalten ungeeignet machte.
wkhtmltopdf

wkhtmltopdf wurde schnell abgeschlossen, erzeugte aber eine einfache, statische Seite, die wichtige Inhalte wie Live-Updates, dynamische Elemente und interaktive Abschnitte vermisste. Dies demonstriert die Inkompatibilität von wkhtmltopdf mit modernen, JavaScript-gesteuerten Websites.
Schlussfolgerung zur Leistung und Ausgabe-PDF-Qualität
Für .NET-Entwickler, die einen zuverlässigen HTML-zu-PDF-Konverter benötigen, sticht IronPDF mit minimalem Code, einfach zu verwendenden APIs und häufigen Produktverbesserungen heraus.
In einem realen Test mit Webinhalten lieferte es die schnellsten und genausten Ergebnisse, während Syncfusion hinterherhinkte, Aspose zusätzliche Schritte erforderte und wkhtmltopdf moderne Stylings verpasste. IronPDF bietet das beste Gleichgewicht zwischen Geschwindigkeit, Genauigkeit und Einfachheit für heutige HTML-zu-PDF-Konvertierungsworkflows.
Bitte beachten: Aspose, Syncfusion und wkhtmltopdf sind Warenzeichen ihrer jeweiligen Eigentümer. Diese Seite ist nicht mit ihnen verbunden oder wird von ihnen unterstützt. Alle Namen, Logos und Marken gehören ihren Eigentümern und Vergleiche basieren auf öffentlich verfügbaren Informationen zum Zeitpunkt des Schreibens.
Zusammenfassung
Diese Anleitung deckte alles ab, was zum Konvertieren von HTML zu PDF in .NET erforderlich ist: von der grundlegenden Zeichenfolgenkonvertierung bis zu erweiterten Funktionen wie asynchrone Verarbeitung, digitale Signaturen und Stapelerzeugung. Wir haben drei Konvertierungsmethoden demonstriert, wesentliche Konfigurationen, erweiterte Funktionen und Sicherheitseinstellungen sowie IronPDF mit anderen Bibliotheken im Rahmen eines realen Tests der dynamischen Dokumenterzeugung verglichen.
Während Konkurrenten Schwierigkeiten mit modernen Websites hatten oder komplexe Umgehungsmöglichkeiten erforderlich waren, lieferte IronPDF fehlerfreie Ergebnisse mit minimalem Code und einer leistungsstarken Rendering-Engine.
Bereit, Ihren PDF-Workflow zu vereinfachen und vielseitige PDF-Erstellung mit nur wenigen Codezeilen zu erleben? Installieren Sie IronPDF über den NuGet-Paket-Manager (oder wählen Sie NuGet-Paket verwalten in Visual Studio) und konvertieren Sie noch heute Ihr erstes HTML zu PDF.
Starten Sie Ihre kostenlose 30-tägige Testversion für Produkttests ohne Wasserzeichen. Flexible Lizenzierung beginnt bei $999 mit transparenten Team-Preisen, die sich Ihren Anforderungen anpassen.
6. Fehlerbehebung und technischer Support
Haben Sie Probleme mit den folgenden Fehlern bei der HTML-zu-PDF-Konvertierung? IronPDF bietet 24/7 Ingenieurunterstützung über das Chat-Widget auf https://ironpdf.com/
Schnelle Lösungen für häufige Fehler
- Langsames erstes Rendering? Normal. Chrome initialisiert in 2-3s, dann beschleunigt es.
- Cloud-Probleme? Verwenden Sie mindestens Azure B1 oder gleichwertige Ressourcen.
- Fehlende Assets? Basiswege setzen oder als Base64 einbetten.
- Fehlende Elemente? Fügen Sie
RenderDelayfür die JavaScript-Ausführung hinzu. - Speicher beim Rendern? Aktualisieren Sie auf v2025.9.4 für Korrekturen bei HTML-zu-PDF, Stempeln und Kopfzeilen/Fußzeilen.
- Formularfeldprobleme (z. B. lange Textbereiche, Kontrollkästchen)? Behoben in v2025.7.17; sichere einzigartige Namen für Kontrollkästchen.
- Benutzerspezifisches Header/Footer-Überlappen oder spezielle Zeichen beschädigt? Gelöst in v2025.8.8; testen Sie Wortumbruch und Metadaten.
Hilfe von den Ingenieuren, die IronPDF entwickelt haben, 24/7
- Umfassender Leitfaden zur Fehlersuche
- Leistungsoptimierungsstrategien
- Engineering Support-Anfragen
- Schnell-Checkliste zur Fehlersuche
Nächste Schritte
Häufig gestellte Fragen
Wie kann ich HTML in C# in PDF konvertieren?
Sie können HTML in C# in PDF konvertieren, indem Sie eine Chrome-Rendering-Bibliothek verwenden, die HTML, CSS3 und JavaScript in pixelgenaue PDFs verwandelt. Mit Tools wie IronPDF können Sie aus URLs, HTML-Strings oder Dateien rendern und dabei Kopfzeilen, Authentifizierung und Druckeinstellungen unterstützen.
Welches ist die beste HTML-zu-PDF-Bibliothek for .NET?
Die beste Bibliothek sollte genaue Chrome-Darstellung, plattformübergreifende Bereitstellung und Unternehmensfunktionen unterstützen. IronPDF deckt all dies ab – läuft auf Windows, Linux, macOS und Docker, mit Unterstützung für Sicherheit, Signaturen, Konformität und skalierbare .NET-Anwendungen.
Wie kann ich HTML-Strings mit C# in PDF konvertieren?
Um HTML-Strings in PDF zu konvertieren, verwenden Sie die ChromePdfRenderer-Klasse und ihre RenderHtmlAsPdf-Methode. Übergeben Sie Ihren HTML-String an diese Methode und speichern Sie das PDF dann mit SaveAs.
Was sind die Schritte, um eine Webseiten-URL in ein PDF-Dokument in C# umzuwandeln?
Sie können eine Webseiten-URL direkt in ein PDF konvertieren, indem Sie die RenderUrlAsPdf-Methode verwenden, die es Ihnen ermöglicht, Stile, Bilder und interaktive Elemente wie Formulare und Hyperlinks zu bewahren.
Wie konvertiere ich in C# eine HTML-Datei in PDF?
Verwenden Sie ChromePdfRenderer.RenderHtmlFileAsPdf("path/to/file.html"), um lokale HTML-Dateien in PDF zu konvertieren. IronPDF löst alle relativen Asset-Pfade (Bilder, CSS, JS) automatisch.
Wie konvertiere ich ASP.NET Razor Pages oder MVC Views zu PDF?
IronPDF bietet dedizierte Erweiterungspakete – IronPdf.Extensions.Razor für Razor Pages und IronPdf.Extensions.Mvc.Core für MVC Views. Verwenden Sie RenderRazorToPdf oder RenderRazorViewToPdf mit Dependenz-Injektion, um Views direkt von Ihren Controllern in PDF zu konvertieren. Razor-Handbuch ansehen →
Wie stelle ich sicher, dass JavaScript-Inhalte im PDF korrekt gerendert werden?
Aktivieren Sie die JavaScript-Darstellung, indem Sie RenderingOptions.EnableJavaScript = true setzen, und fügen Sie eine Renderverzögerung mit RenderingOptions.WaitFor.RenderDelay hinzu, um sicherzustellen, dass dynamische Inhalte vor der Konversion vollständig geladen sind. See WaitFor guide →
Was ist die beste Methode, um Header und Footer in ein PDF in C# hinzuzufügen?
Verwenden Sie die TextHeaderFooter-Klasse für einfache Text-Header und -Footer oder die HtmlHeaderFooter-Klasse für komplexere HTML-Inhalte. Sie können dynamische Platzhalter wie {page}, {total-pages} und {date} für die automatische Inhaltserzeugung einfügen. Kopf- und Fußzeilen-Handbuch ansehen →
Wie verwalte ich Seitenumbrüche in der PDF-Ausgabe in C# .NET?
Steuern Sie Seitenumbrüche in Ihren PDFs, indem Sie CSS-Eigenschaften wie page-break-after: always und page-break-inside: avoid innerhalb eines Print-Media-Typ-CSS-Blocks verwenden. Seitenumbrüche-Handbuch ansehen →
Welche Optionen stehen für das Festlegen von Papiergröße und Ausrichtung in PDFs zur Verfügung?
Stellen Sie die Papiergröße mit RenderingOptions.PaperSize ein (Optionen umfassen A4, Letter, Legal usw.) und die Ausrichtung mit RenderingOptions.PaperOrientation für Hoch- oder Querformat. Benutzerdefinierte Größen in Millimetern oder Zoll werden ebenfalls unterstützt. Papiergrößen-Handbuch ansehen →
Kann ich authentifizierte Webseiten in PDF konvertieren?
Ja. IronPDF unterstützt Cookies, benutzerdefinierte HTTP-Header und formularbasierte Authentifizierung. Setzen Sie Cookies über ChromePdfRenderer.RenderingOptions.CustomCookies, oder geben Sie Auth-Header für tokenbasierte Authentifizierung an. Windows NTLM und Kerberos-Authentifizierung werden ebenfalls unterstützt. Cookie-Handbuch ansehen →
Kann ich aus einer einzigen HTML-Vorlage mehrere PDFs in C# erstellen?
Ja, erstellen Sie HTML-Vorlagen mit Platzhaltern und verwenden Sie String-Ersetzungen oder Templating-Bibliotheken wie Handlebars.NET. Ersetzen Sie Platzhalter durch tatsächliche Werte in Ihren Schleifen-Daten und erstellen Sie PDFs mit RenderHtmlAsPdf.
Ist es möglich, meine generierten PDFs mit einem Passwort zu sichern?
Ja, Sie können die SecuritySettings-Eigenschaft verwenden, um Benutzer- und Eigentümerpasswörter festzulegen, Berechtigungen wie Drucken und Kopieren zu konfigurieren und AES256-Verschlüsselung mit SecuritySettings.EncryptionAlgorithm anzuwenden. Verschlüsselungs-Handbuch ansehen →
Kann ich PDF/A-konforme Dokumente aus HTML generieren?
Ja. IronPDF unterstützt die Standards PDF/A-1b, PDF/A-2b, PDF/A-3b und PDF/UA für Archivierung und Barrierefreiheit, die die meisten HTML-zu-PDF-Konverter nicht bieten. Siehe PDF/A-Leitfaden →
Wie kann ich die Leistung bei der Erstellung einer großen Anzahl von PDFs optimieren?
Optimieren Sie die Leistung, indem Sie asynchrone Methoden wie RenderHtmlAsPdfAsync für nicht blockierende Operationen verwenden. Nutzen Sie ChromePdfRenderer-Instanzen erneut, verarbeiten Sie mehrere PDFs gleichzeitig mit Task.WhenAll und stellen Sie sicher, dass Sie über ausreichende Serverressourcen auf einem 64-Bit-System verfügen. Siehe asynchronen Leitfaden →
Wie kann ich mehrere PDFs zusammenführen oder eine Titelseite in mein Dokument einfügen?
Verwenden Sie die statische PdfDocument.Merge-Methode, um mehrere PDFs zu kombinieren. Erstellen Sie Ihre Titelseite separat und fügen Sie sie in Ihr Hauptdokument ein, um ein umfassendes PDF zu erstellen. Siehe Zusammenführungsanleitung →
Kann ich IronPDF auf Azure, AWS oder Docker bereitstellen?
Ja. IronPDF läuft auf Azure App Service, Azure Functions, AWS Lambda und Docker-Containern unter Linux. Spezielle Installationsanleitungen und Docker-Images sind für jede Plattform verfügbar. Siehe Azure-Leitfaden → · Siehe AWS-Leitfaden → · Siehe Docker-Leitfaden →
.NET 10-Kompatibilität: Unterstützt IronPDF for .NET 10 von Anfang an?
Ja — IronPDF ist vollständig kompatibel mit .NET 10. Laut IronPDF-Release-Notes ist die Bibliothek direkt am ersten Tag bereit for .NET 10-Projekte, ohne zusätzliche Konfiguration. Egal, ob Sie Web-, Konsolen-, Desktop- oder Microservice-Anwendungen verwenden, IronPDF funktioniert „out of the box“ mit .NET 10.
Ist IronPDF kostenlos nutzbar?
IronPDF bietet eine kostenlose 30-Tage-Testversion mit voller Funktionalität und ohne Wasserzeichen in der Entwicklung. Für den Produktiveinsatz ist eine kommerzielle Lizenz ab $749 erforderlich. Lite-, Plus-, Professional- und Enterprise-Stufen sind verfügbar. Siehe Preisinformationen →
Wie vergleicht sich die Rendering-Qualität dieser Bibliothek mit anderen Optionen wie wkhtmltopdf?
Diese Bibliothek verwendet eine moderne Chrome-Rendering-Engine für pixelgenaue PDFs, im Gegensatz zu wkhtmltopdfs veralteter WebKit-Engine. Es erfordert keine Server-Executables, unterstützt vollständige JavaScript/CSS3, erhält regelmäßige Updates und bietet professionellen Support.
Warum sollte ich diese Bibliothek gegenüber PDFSharp für HTML-zu-PDF-Konvertierung wählen?
PDFSharp fehlt die eingebaute HTML-zu-PDF-Konvertierung, was komplexe Umgehungsmethoden erfordert. Diese Bibliothek bietet direkte HTML/URL-/Dateikonvertierung mit einer hochrangigen API, Unterstützung für moderne Webtechnologien und regelmäßige Updates mit professionellem Support. Siehe PDFSharp-Vergleich →
Was macht dies zur besseren Wahl als iTextSharp für die HTML-Konvertierung?
Die kostenlose Version von iTextSharp unterstützt keine native HTML-zu-PDF-Konvertierung und hat eine komplexe Low-Level-API. Diese Bibliothek bietet nahtlose HTML-Konvertierung mit einer intuitiven API, volle CSS3-/JavaScript-Unterstützung und keine AGPL-Lizenzbeschränkungen. Siehe iTextSharp-Vergleich →
Wie vergleicht sich die Rendering-Qualität dieser Bibliothek mit der von Aspose.PDF?
Diese Bibliothek erzeugt pixelgenaue PDFs in Chrome-Qualität, während Aspose.PDF oft Stil- und dynamische Inhalte vernachlässigt. Aspose erfordert manuelle HTML-Downloads für die URL-Konvertierung, aber diese Bibliothek konvertiert URLs direkt mit überlegener Genauigkeit. Siehe Aspose-Vergleich →
Warum sollte ich diese Bibliothek gegenüber Syncfusion PDF wählen?
Obwohl Syncfusion leistungsfähig ist, arbeitet der optimierte Chrome-Engine dieser Bibliothek schneller und behandelt dynamische Inhalte effektiver. Es bietet eine einfachere API und zusätzliche Funktionen wie OCR und Barcode-Generierung. Siehe Syncfusion-Vergleich →

