Wie man PDF-Dateien in .NET Core erzeugt

Convert HTML to PDF in .NET Core using C# with IronPDF

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

Hochwertige PDFs direkt aus HTML zu generieren, ist eine Routineanforderung in modernen .NET-Anwendungen – Berichte, Rechnungen und Tickets benötigen pixelgenaue Ausgaben, die mit der Web-Oberfläche übereinstimmen. IronPDF rationalisiert diesen Workflow, indem es eine einzige C#-API bereitstellt, um HTML, Razor-Ansichten und vollständige Websites in standardkonforme PDF-Dokumente umzuwandeln. Am Ende dieser Anleitung wird ein Entwickler in der Lage sein, URLs, rohes HTML oder MVC-Ansichten in einem ASP.NET Core-Projekt zu konvertieren und denselben Code auf Windows, Linux, Docker oder serverlosen Umgebungen bereitzustellen.

TippsFür Layoutprobleme liefert IronPDF einen Headless-Chrome-Debugger, der hilft, CSS-, JavaScript- und Media-Query-Feinheiten zu diagnostizieren, bevor das PDF gerendert wird. Überprüfen Sie den speziellen pixelgenauen HTML-zu-PDF-Leitfaden für tiefgehende Techniken.

Schnellstart: Erstellen eines PDFs aus HTML in .NET Core

Mühelos HTML zu PDF in .NET Core mit der IronPDF-Bibliothek konvertieren. Diese Anleitung bietet ein einfaches Beispiel, um Ihnen schnell den Einstieg zu erleichtern, indem Sie HTML-Inhalte mit minimalem Code in ein hochwertiges PDF rendern. Perfekt für Entwickler, die die PDF-Erstellung mühelos in ihre Anwendungen integrieren möchten.

  1. Installieren Sie IronPDF mit NuGet Package Manager

    PM > Install-Package IronPdf
  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello World</h1>");
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronPDF in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion

    arrow pointer

Schnellstart-Checkliste

  1. InstallierenInstall-Package IronPdf
  2. URL rendernChromePdfRenderer.RenderUrlAsPdf()
  3. Rohes HTML rendernChromePdfRenderer.RenderHtmlAsPdf()
  4. Exportieren einer Razor AnsichtChromePdfRenderer.RenderHtmlAsPdfAsync()
  5. Ausgabe feinabstimmenChromePdfRenderer.RenderingOptions nutzen

Was dieses Tutorial abdeckt

  • URL-, HTML-String- und Razor-Ansicht-Konvertierung
  • Papier-, Rand- und Medientyp-Konfiguration
  • Plattformübergreifende Bereitstellung (Windows, Linux, Docker)
  • Nachbearbeitung: Zusammenführen, Wasserzeichen, Passwortschutz und digitale Signatur von PDFs
  • End-to-End-Beispiel: MVC-App zur Ticketbuchung

Wie installiere ich die PDF-Bibliothek in .NET Core?

Die Installation der Bibliothek ist eine Einzeiler in jedem .NET 8-Projekt und bleibt vorwärts kompatibel mit .NET 9-Vorschau und dem kommenden .NET 10-Release. Verwenden Sie die Paket-Manager-Konsole von NuGet und der Paketmanager löst jede Abhängigkeit automatisch für Windows, Linux, Docker und serverlose Ziele.

PM> Install-Package IronPdf             # .NET 8 LTS and higher
PM> Install-Package IronPdf             # .NET 8 LTS and higher
SHELL

Hinweis: Benötigen Sie die Befehlszeile? Derselbe Befehl funktioniert auch mit dotnet add package IronPdf in Ihrem Projektordner.

Bestätigen Sie nach der Installation, dass alles funktioniert, indem Sie eine öffentlicheURLin PDF konvertieren:

// Program.cs — .NET 8 LTS
using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live website to PDF
using PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com");

// Persist to disk
pdf.SaveAs("website-snapshot.pdf");
// Program.cs — .NET 8 LTS
using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live website to PDF
using PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com");

// Persist to disk
pdf.SaveAs("website-snapshot.pdf");
$vbLabelText   $csharpLabel

Wie es funktioniert

  • ChromePdfRenderer startet im Hintergrund eine isolierte Chromium-Instanz – eine separate Chrome-Installation ist nicht erforderlich.
  • RenderUrlAsPdf erfasst das vollständig gerenderte DOM, einschließlich JavaScript-gesteuerter Inhalte, CSS-Medienabfragen und Schriftarten.
  • Das resultierende PdfDocument stellt Hilfsmethoden zum Zusammenführen, Passwortschutz oder digitalen Signieren der Ausgabe bereit - Funktionen, die später in diesem Tutorial behandelt werden.

Für mehr Details zu Bereitstellungsnuancen (Azure App Service, AWS Lambda, On-Premise Linux), siehe den speziellen Installationsleitfaden und die erweiterte NuGet-Setup-Seiten. Interne CI/CD-Tipps für Docker und K8s-Cluster werden in den Best Practices für Docker-Bereitstellungen behandelt.


Wie kann ein .NET Core-Dienst eine Live-Website-URL in PDF umwandeln?

Ein einziger Aufruf von RenderUrlAsPdf genügt: Übergeben Sie eine beliebige öffentlich erreichbare URL, und IronPDF liefert ein vollständig gerendertes, standardkonformes PDF zurück. Der unten stehende Code zielt auf .NET 8 LTS ab und kompiliert unverändert auf .NET 9-Vorschau sowie das kommende .NET 10-Release im Jahr 2025.

Schritt-für-Schritt-Beispiel

// Program.cs — .NET 8 LTS-compatible
using IronPdf;

// 1. Activate a license (or trial key)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// 2. Create a reusable renderer instance
var renderer = new ChromePdfRenderer
{
    RenderingOptions =
    {
        // Force A4 portrait output and apply @media print styles
        PaperSize    = PdfPaperSize.A4,
        CssMediaType = PdfCssMediaType.Print
    }
};

// 3. Convert Microsoft Docs home page to PDF
using PdfDocument pdf = renderer.RenderUrlAsPdf("https://learn.microsoft.com/");

// 4. Save the PDF or stream it from a Web API
pdf.SaveAs("docs-offline-copy.pdf");
// Program.cs — .NET 8 LTS-compatible
using IronPdf;

// 1. Activate a license (or trial key)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// 2. Create a reusable renderer instance
var renderer = new ChromePdfRenderer
{
    RenderingOptions =
    {
        // Force A4 portrait output and apply @media print styles
        PaperSize    = PdfPaperSize.A4,
        CssMediaType = PdfCssMediaType.Print
    }
};

// 3. Convert Microsoft Docs home page to PDF
using PdfDocument pdf = renderer.RenderUrlAsPdf("https://learn.microsoft.com/");

// 4. Save the PDF or stream it from a Web API
pdf.SaveAs("docs-offline-copy.pdf");
$vbLabelText   $csharpLabel

Warum es funktioniert

  • ChromePdfRenderer startet eine isolierte Chromium-Instanz – keine Systemabhängigkeit von Chrome, wodurch die Docker-Images schlank bleiben.
  • RenderUrlAsPdf wartet, bis DOM und JavaScript fertig sind, bevor ein Snapshot erstellt wird, damit Single-Page-Anwendungen korrekt gerendert werden.
  • Durch die Einstellung CssMediaType auf Print wird der Engine mitgeteilt, dass druckspezifische Regeln verwendet werden sollen, die der Ausgabe Print → Save as PDF eines Browsers entsprechen.
  • Das resultierende PdfDocument kann verschlüsselt, digital signiert, zusammengeführt oder gerastert werden - Funktionen, die in späteren Abschnitten behandelt werden.

Tipps Pixelgenaues Debuggen: Aktivieren Sie renderer.LoggingOptions.DebugMode = true und folgen Sie der Anleitung zum Debuggen im Headless-Chrome-Modus, um die Live-Entwicklertools während des Renderns zu untersuchen.

Verwandte Ressourcen


Wie kann ich rohes HTML in .NET Core in ein PDF konvertieren?

Durch Übergabe einer HTML-Zeichenkette – oder des gerenderten Markups einer Razor Ansicht – an ChromePdfRenderer.RenderHtmlAsPdf wird sofort ein standardkonformes PDF erzeugt. Die Methode startet IronPDFs eingebettete Chromium-Engine, sodass keine externe Browser-Installation oder WebView-Abhängigkeit erforderlich ist. Der unten gezeigte Code kompiliert heute auf .NET 8 LTS und bleibt vorwärts kompatibel mit .NET 9 und dem angesetzten .NET 10-Release im November 2025.

Beispiel — ein PDF aus einem HTML-Fragment generieren

// Program.cs — compatible with .NET 8 and newer
using IronPdf;

// Sample HTML fragment (could also be read from a file, Razor view, or CMS)
const string html = """
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Quarterly Report</title>
  <style>
     body { font-family:'Segoe UI', sans-serif; margin:1.2rem; }
     header { margin-bottom:2rem; }
     h1 { color:#3056d3; }
     table { width:100%; border-collapse:collapse; margin-top:1rem; }
     th,td { border:1px solid #ddd; padding:0.5rem; text-align:right; }
     tr:nth-child(even){ background-color:#f8f9fa; }
  </style>
</head>
<body>
  <header><h1>Q2 Revenue Summary</h1></header>
  <table>
    <thead><tr><th>Product</th><th>Revenue ($)</th></tr></thead>
    <tbody>
      <tr><td>IronPDF for .NET</td><td>1,200,000</td></tr>
      <tr><td>IronOCR for .NET</td><td>890,000</td></tr>
      <tr><td>IronXL for .NET</td><td>610,000</td></tr>
    </tbody>
  </table>
</body>
</html>
""";

// 1. Create a renderer once and reuse it across conversions
var renderer = new ChromePdfRenderer
{
    RenderingOptions =
    {
        PaperSize    = PdfPaperSize.A4,                  // ISO-standard paper size
        PaperOrientation = PdfPaperOrientation.Portrait,
        CssMediaType = PdfCssMediaType.Screen,           // Respect on-screen CSS
        RenderDelay  = 100,                              // Wait 100 ms for JS/animations
        FallbackEncoding = "utf-8"                       // Handle non-ASCII correctly
    }
};

// 2. Render the HTML fragment
using PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// 3. Persist to disk or return via ASP.NET Core FileStreamResult
pdf.SaveAs("q2-report.pdf");
// Program.cs — compatible with .NET 8 and newer
using IronPdf;

// Sample HTML fragment (could also be read from a file, Razor view, or CMS)
const string html = """
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Quarterly Report</title>
  <style>
     body { font-family:'Segoe UI', sans-serif; margin:1.2rem; }
     header { margin-bottom:2rem; }
     h1 { color:#3056d3; }
     table { width:100%; border-collapse:collapse; margin-top:1rem; }
     th,td { border:1px solid #ddd; padding:0.5rem; text-align:right; }
     tr:nth-child(even){ background-color:#f8f9fa; }
  </style>
</head>
<body>
  <header><h1>Q2 Revenue Summary</h1></header>
  <table>
    <thead><tr><th>Product</th><th>Revenue ($)</th></tr></thead>
    <tbody>
      <tr><td>IronPDF for .NET</td><td>1,200,000</td></tr>
      <tr><td>IronOCR for .NET</td><td>890,000</td></tr>
      <tr><td>IronXL for .NET</td><td>610,000</td></tr>
    </tbody>
  </table>
</body>
</html>
""";

// 1. Create a renderer once and reuse it across conversions
var renderer = new ChromePdfRenderer
{
    RenderingOptions =
    {
        PaperSize    = PdfPaperSize.A4,                  // ISO-standard paper size
        PaperOrientation = PdfPaperOrientation.Portrait,
        CssMediaType = PdfCssMediaType.Screen,           // Respect on-screen CSS
        RenderDelay  = 100,                              // Wait 100 ms for JS/animations
        FallbackEncoding = "utf-8"                       // Handle non-ASCII correctly
    }
};

// 2. Render the HTML fragment
using PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// 3. Persist to disk or return via ASP.NET Core FileStreamResult
pdf.SaveAs("q2-report.pdf");
$vbLabelText   $csharpLabel

Was der Code demonstriert

  • Eingebettetes Chromium – IronPDF bündelt die Chromium-Engine und garantiert HTML5-, CSS3- und JavaScript-Kompatibilität mit modernen Browsern.
  • Einzelne Abhängigkeit – Eine leichtgewichtige NuGet-Installation deckt Windows, Linux, Docker und Azure/AWS ohne zusätzliche Systembibliotheken ab.
  • Rendering-Optionen -- PaperSize, CssMediaType und RenderDelay spiegeln die Druckeinstellungen des Browsers wider, sodass PDFs mit dem Layout auf dem Bildschirm übereinstimmen.
  • Zukunftssicheres Targeting – Die API-Oberfläche ist identisch in .NET 8, .NET 9 STS und dem kommenden .NET 10, sodass langfristiger Wartungsaufwand minimal ist.
  • Nachbearbeitungs-Hooks -- PdfDocument stellt Hilfsfunktionen für das Zusammenführen, den Passwortschutz und digitale Signaturen bereit – jede wird später in diesem Leitfaden behandelt.

Weiterführende Informationen: siehe das Schritt-für-Schritt -Tutorial zur Umwandlung von HTML-Strings in PDFs und die vollständige API-Dokumentation ChromePdfRenderer .


Wie kann eine ASP .NET Core MVC-Ansicht in PDF exportiert werden?

IronPDF rendert eine vollständig verarbeitete Razor Ansicht ( .cshtml ) auf die gleiche Weise wie ein Browser und streamt das Ergebnis als PdfDocument. Der folgende Workflow hält die Controller-Logik sauber, erfordert keine Browser-Plugins und funktioniert in .NET 8 LTS, .NET 9-Vorschau und dem angesetzten .NET 10-Release im November 2025.

End-to-End-Controller-Beispiel

// TicketsController.cs — .NET 8 LTS / MVC
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using YourApp.Models;           // TicketViewModel

public class TicketsController : Controller
{
    private readonly ChromePdfRenderer _renderer;

    public TicketsController()
    {
        _renderer = new ChromePdfRenderer
        {
            RenderingOptions =
            {
                PaperSize        = PdfPaperSize.A5,            // Compact ticket size
                PaperOrientation = PdfPdfOrientation.Portrait,
                FitToPaperWidth  = true,
                CssMediaType     = PdfCssMediaType.Print,
                Margins = new PdfMargins(5, 10, 5, 10)         // mm
            }
        };
    }

    // GET /Tickets/Print/42
    public async Task<IActionResult> Print(int id)
    {
        TicketViewModel vm = await _service.GetTicketAsync(id);

        // 1. Render the Razor view to an HTML string
        string html  = await RazorTemplateEngine.RenderViewAsync(
                           HttpContext, "~/Views/Tickets/Print.cshtml", vm);

        // 2. Convert HTML → PDF
        using PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);

        // 3. Stream back as a file
        return File(pdf.BinaryData, "application/pdf",
                    $"ticket-{id}.pdf");
    }
}
// TicketsController.cs — .NET 8 LTS / MVC
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using YourApp.Models;           // TicketViewModel

public class TicketsController : Controller
{
    private readonly ChromePdfRenderer _renderer;

    public TicketsController()
    {
        _renderer = new ChromePdfRenderer
        {
            RenderingOptions =
            {
                PaperSize        = PdfPaperSize.A5,            // Compact ticket size
                PaperOrientation = PdfPdfOrientation.Portrait,
                FitToPaperWidth  = true,
                CssMediaType     = PdfCssMediaType.Print,
                Margins = new PdfMargins(5, 10, 5, 10)         // mm
            }
        };
    }

    // GET /Tickets/Print/42
    public async Task<IActionResult> Print(int id)
    {
        TicketViewModel vm = await _service.GetTicketAsync(id);

        // 1. Render the Razor view to an HTML string
        string html  = await RazorTemplateEngine.RenderViewAsync(
                           HttpContext, "~/Views/Tickets/Print.cshtml", vm);

        // 2. Convert HTML → PDF
        using PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);

        // 3. Stream back as a file
        return File(pdf.BinaryData, "application/pdf",
                    $"ticket-{id}.pdf");
    }
}
$vbLabelText   $csharpLabel

Was dieser Code illustriert

  • Keine temporären Dateien -- die Razor Ansicht wird im Arbeitsspeicher gerendert und dann direkt an RenderHtmlAsPdf übergeben, wodurch Festplatten-E/A und Race Conditions durch temporäre Ordner vermieden werden.
  • Ticketgroße Ausgabe -- PaperSize = A5 und schmale Ränder sorgen für kompakte Ausdrucke der Tickets für zu Hause.
  • Einheitliche Druckstile -- CssMediaType = Print wendet dieselben @media print CSS-Regeln an, die auch Browser verwenden.
  • Binärstreaming -- pdf.BinaryData streamt das Dokument, ohne das Dateisystem zu berühren; ideal für API-Endpunkte und Lambda-Funktionen.
  • Wiederverwendbarer Renderer -- ChromePdfRenderer wird einmal pro Controller instanziiert und dann wiederverwendet, wodurch der Prozess-Spawn-Overhead minimiert wird.
##

`PaperSize` , `PaperOrientation` , `FitToPaperWidth`

##

`Margins` , `Header` , `Footer` , `Watermark`

Nächster Schritt: Fügen Sie Verschlüsselung, digitale Signaturen hinzu oder fügen Sie mehrere Tickets in einer Datei zusammen. Siehe das Zusammenführungsbeispiel und das Digitalsignatur-How-To.


Wie kann ich Papiergröße, Ränder, Kopfzeilen, Wasserzeichen und Sicherheit vor dem Rendern anpassen?

IronPDF stellt ein einziges ChromePdfRenderOptions-Objekt bereit, das jeden Aspekt der Ausgabe steuert – Papierabmessungen, Ausrichtung, Kopf- und Fußzeilen, JavaScript Timing, Wasserzeichen, Verschlüsselung und digitale Signaturen – und das alles ohne zusätzliche Browser-Plugins.

Codebeispiel – Wenden Sie mehrere Optionen gleichzeitig an

// AdvancedOptions.cs — .NET 8 compatible
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure everything in one place
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // 1. Page layout
    PaperSize        = PdfPaperSize.A4,                     // ISO size
    PaperOrientation = PdfPdfOrientation.Portrait,
    Margins          = new PdfMargins { Top = 20, Bottom = 25, Left = 15, Right = 15 }, // mm

    // 2. Timing & media
    CssMediaType     = PdfCssMediaType.Print,               // Respect @media print
    EnableJavaScript = true,
    RenderDelay      = 200,                                 // Wait 200 ms for animations

    // 3. Headers & footers (HTML gives full design freedom)
    HtmlHeader       = "<header style='font:14px Segoe UI'>Invoice — {{date}}</header>",
    HtmlFooter       = "<footer style='text-align:right;font-size:10px'>Page {{page}} / {{total-pages}}</footer>",

    // 4. Watermark
    Watermark        = new HtmlStamp
    {
        HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>",
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalAlignment = HorizontalAlignment.Center
    },

    // 5. Security
    SecurityOptions = new PdfSecurityOptions
    {
        OwnerPassword = "StrongOwnerPwd!",
        UserPassword  = "ReadOnly",
        AllowUserPrinting = false,
        AllowUserCopyPasteContent = false
    }
};

// Render any HTML
using PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Advanced Options Demo</h1>");

// Digitally sign with a PFX certificate (optional)
pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval");

// Save
pdf.SaveAs("advanced-options-demo.pdf");
// AdvancedOptions.cs — .NET 8 compatible
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure everything in one place
renderer.RenderingOptions = new ChromePdfRenderOptions
{
    // 1. Page layout
    PaperSize        = PdfPaperSize.A4,                     // ISO size
    PaperOrientation = PdfPdfOrientation.Portrait,
    Margins          = new PdfMargins { Top = 20, Bottom = 25, Left = 15, Right = 15 }, // mm

    // 2. Timing & media
    CssMediaType     = PdfCssMediaType.Print,               // Respect @media print
    EnableJavaScript = true,
    RenderDelay      = 200,                                 // Wait 200 ms for animations

    // 3. Headers & footers (HTML gives full design freedom)
    HtmlHeader       = "<header style='font:14px Segoe UI'>Invoice — {{date}}</header>",
    HtmlFooter       = "<footer style='text-align:right;font-size:10px'>Page {{page}} / {{total-pages}}</footer>",

    // 4. Watermark
    Watermark        = new HtmlStamp
    {
        HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>",
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalAlignment = HorizontalAlignment.Center
    },

    // 5. Security
    SecurityOptions = new PdfSecurityOptions
    {
        OwnerPassword = "StrongOwnerPwd!",
        UserPassword  = "ReadOnly",
        AllowUserPrinting = false,
        AllowUserCopyPasteContent = false
    }
};

// Render any HTML
using PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Advanced Options Demo</h1>");

// Digitally sign with a PFX certificate (optional)
pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval");

// Save
pdf.SaveAs("advanced-options-demo.pdf");
$vbLabelText   $csharpLabel

Warum diese Optionen wichtig sind

  • PaperSize, Margins und CssMediaType spiegeln den Druckdialog eines Browsers wider, sodass die Bildschirmdarstellung und die PDF-Datei unter Windows, Linux und Docker identisch bleiben.
  • HTML-Kopf- und Fußzeilen unterstützen Razor-Token, CSS und JavaScript – nützlich für dynamische Seitennummern oder Branding.
  • HtmlStamp ermöglicht es, mit nur einer Zeile markenspezifische Wasserzeichen mit voller HTML- und CSS-Kontrolle zu erstellen .
  • Sicherheitsoptionen ermöglichen 128-Bit-Verschlüsselung, Besitzer-/Benutzerpasswörter und granulare Berechtigungen ohne Drittanbieter-Tools.
  • Digitale Signaturen fügen einen kryptografischen Siegel direkt im Code hinzu und bewahren die rechtliche Authentizität und Manipulationsbeweise.
  • Extraktionshilfsfunktionen wie ExtractAllText und ExtractAllImages kehren den Prozess um, wenn eine Analyse erforderlich ist.

Schnellreferenz — Beliebte Einstellungen

##

`PaperSize` , `PaperOrientation` , `Margins` , `CssMediaType` , `RenderDelay`

##

`HtmlHeader`, `HtmlFooter`, dynamische Razor-Platzhalter, Seitenzahl-Token

##

`Wasserzeichen`, `HtmlStamp`, Deckkraft, Ausrichtung

##

`SecurityOptions`, `SignAndStamp`, Eigentümer-/Benutzerpasswörter, Zertifikatsversiegelung

Nächste Aufgaben: Mehrere PDFs zusammenführen, Text & Bilder extrahieren und an Docker oder serverlos bereitstellen. Fahren Sie mit dem Bereitstellungsabschnitt fort, um plattformübergreifende Kompatibilität sicherzustellen.


Wie kann ich PDF-Erstellungscode in Docker unter Linux und Windows bereitstellen?

IronPDF wird als einzelnes selbstenthaltenes NuGet-Paket geliefert, daher ist das Containerisieren einer ASP.NET Core- (oder Konsolen-App) auf sowohl Windows als auch Linux unkompliziert. Der Schlüssel besteht darin, die veröffentlichten Binärdateien in ein schlankes Laufzeit-Image zu kopieren und unter Linux die beiden nativen Bibliotheken hinzuzufügen, die IronPDF benötigt (libnss3 und libatk1.0-0).

Multi-Stage-Dockerfile (Ubuntu 22.04)

Hinweis:Warum Multi-Stage? Das SDK-Image (Stufe 1) kompiliert das Projekt; das finale Laufzeit-Image (Stufe 2) bleibt schlank – < 120 MB – weil Build-Tools verworfen werden.

####### ---------- stage 1 ----------
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["MyPdfApp.csproj", "."]
RUN dotnet restore

COPY . .
RUN dotnet publish -c Release -o /app/publish

####### ---------- stage 2 ----------
FROM mcr.microsoft.com/dotnet/aspnet:8.0-jammy
######## Install two native libs required by Chromium
RUN apt-get update && \
    apt-get install -y --no-install-recommends libnss3 libatk1.0-0 && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "MyPdfApp.dll"]

Hinweis: Windows-Container? Ersetzen Sie die zweite Stufe durch mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022 – es werden keine zusätzlichen Pakete benötigt, da Chromium-DLLs enthalten sind.

End-to-End-Validierungsskript

docker build -t pdf-demo .
docker run --rm -p 8080:80 pdf-demo
######### ↳ Navigate to http://localhost:8080/api/pdf?url=https://example.com
docker build -t pdf-demo .
docker run --rm -p 8080:80 pdf-demo
######### ↳ Navigate to http://localhost:8080/api/pdf?url=https://example.com
SHELL
  • Die API-Aktion ruft intern ChromePdfRenderer.RenderUrlAsPdf auf, genau wie in Abschnitt 2.
  • IronPDF startet seinen sandboxed Chromium-Prozess im Container – kein X-Server erforderlich, da es im Headless-Modus rendert.
  • Der Speicherbedarf bleibt auch bei großen Renderings unter 200 MB.

Tipps Troubleshooting tip: If the container logs show a "libnss3.so not found' error, verify both libnss3 and libatk1.0-0 are present. Alpine-Images werden nicht unterstützt, da die musl C-Bibliothek erforderliche Symbole fehlt.

Interne Ressourcen


Wie kann ich bestehende PDFs in .NET Core öffnen, zusammenführen, mit Wasserzeichen versehen und Inhalte extrahieren?

IronPDF behandelt jede PDF-Datei – egal ob sie mit IronPDF, Adobe® Acrobat oder Drittanbieter-Tools erstellt wurde – als erstklassiges PdfDocument-Objekt, das ohne Qualitätsverlust geöffnet, bearbeitet, geschützt und erneut gespeichert werden kann. Die gleiche API-Oberfläche funktioniert heute unter .NET 8 LTS und lässt sich unverändert mit .NET 9 Preview und der kommenden .NET 10-Version kompilieren.

Einheitliches Beispiel — öffnen → zusammenführen → Wasserzeichen → extrahieren

// ManipulateExistingPdf.cs — .NET 8 LTS compatible
using IronPdf;
using System.Linq;

// Step 1: Open two existing files (password-protected PDFs are supported)
PdfDocument invoice  = PdfDocument.FromFile("invoice.pdf", "ReadOnly");   // open with user pwd
PdfDocument tAndCs   = PdfDocument.FromFile("terms.pdf");                 // no pwd required

// Step 2: Merge them (invoice pages first, then T&Cs)
PdfDocument mergedPdf = PdfDocument.Merge(invoice, tAndCs);               // 1-liner merge

// Step 3: Apply a diagonal CONFIDENTIAL watermark to every page
mergedPdf.ApplyStamp(
    "<div style='font-size:60px;color:#d9534f;opacity:0.2;transform:rotate(-45deg);"
  + "width:100%;text-align:center;'>CONFIDENTIAL</div>",
    verticalAlignment   : VerticalAlignment.Center,
    horizontalAlignment : HorizontalAlignment.Center);

// Step 4: Extract all text and the first image for audit purposes
string fullText = mergedPdf.ExtractAllText();
var    image    = mergedPdf.ExtractAllImages().FirstOrDefault();

// Step 5: Save or stream
mergedPdf.SaveAs("invoice-with-terms.pdf");
// ManipulateExistingPdf.cs — .NET 8 LTS compatible
using IronPdf;
using System.Linq;

// Step 1: Open two existing files (password-protected PDFs are supported)
PdfDocument invoice  = PdfDocument.FromFile("invoice.pdf", "ReadOnly");   // open with user pwd
PdfDocument tAndCs   = PdfDocument.FromFile("terms.pdf");                 // no pwd required

// Step 2: Merge them (invoice pages first, then T&Cs)
PdfDocument mergedPdf = PdfDocument.Merge(invoice, tAndCs);               // 1-liner merge

// Step 3: Apply a diagonal CONFIDENTIAL watermark to every page
mergedPdf.ApplyStamp(
    "<div style='font-size:60px;color:#d9534f;opacity:0.2;transform:rotate(-45deg);"
  + "width:100%;text-align:center;'>CONFIDENTIAL</div>",
    verticalAlignment   : VerticalAlignment.Center,
    horizontalAlignment : HorizontalAlignment.Center);

// Step 4: Extract all text and the first image for audit purposes
string fullText = mergedPdf.ExtractAllText();
var    image    = mergedPdf.ExtractAllImages().FirstOrDefault();

// Step 5: Save or stream
mergedPdf.SaveAs("invoice-with-terms.pdf");
$vbLabelText   $csharpLabel

Warum das wichtig ist

  • Öffnen & ZusammenführenPdfDocument.FromFile lädt beliebige standardkonforme PDF-Dateien, einschließlich verschlüsselter Dateien, während PdfDocument.Merge eine beliebige Anzahl von Dokumenten in einem einzigen Aufruf zusammenfügt.
  • WatermarkApplyStamp (alias HtmlStamp) bettet vollständig gestaltete HTML/CSS-Overlays – Logo, QR-Code oder diagonalen Text – auf ausgewählten Seiten ohne Rasterisierung ein.
  • InhaltsextraktionExtractAllText und ExtractAllImages extrahieren rohe UTF-8-Text- oder Binärbildströme zur nachgelagerten Archivierung oder für KI-Pipelines.
  • Digitale Signaturen bereit – dieselbe PdfDocument Instanz kann mit SignAndStamp versiegelt werden, wodurch RFC 3161-konforme Hashes entstehen, die den Anforderungen an digitale Signaturen gemäß ISO 32000-2 entsprechen.
  • Off-Standard-Konformität – IronPDF behält die ursprüngliche PDF-Struktur (Schriften, Ebenen, XMP-Metadaten) bei, sodass die Ausgabe mit Adobe® Reader und anderen ISO 32000-1 Betrachtern kompatibel bleibt.
  • Zukunftssicher – Die API vermeidet Interop-Assemblies und Win32-GDI-Aufrufe, sodass der Code unverändert auf Windows, Linux, Docker und kommenden .NET 10-serverlosen SKUs läuft.

Benötigen Sie Seitenaufteilung, Drehen oder Löschen? Siehe das seitenspezifische Bearbeitungs-Tutorial für granulare Operationen.


Wie können PDFs in .NET Core verschlüsselt und digital signiert werden?

IronPDF sichert ein Dokument in zwei Schritten: AES-basierte Verschlüsselung (Benutzer-/Besitzerpasswörter + granulare Berechtigungen) und X.509 digitale Signaturen, die die Datei mit einem kryptografischen Hash versiegeln. Beide APIs befinden sich auf demselben PdfDocument Objekt, daher ist der Workflow auf .NET 8 LTS heute identisch und lässt sich auf .NET 9 Preview und der kommenden .NET 10-Version unverändert kompilieren.

Beispiel — 256-Bit-AES anwenden, Druckrechte sperren und eine sichtbare Signatur hinzufügen

// SecureAndSign.cs — .NET 8 LTS compatible
using IronPdf;

// Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf)
PdfDocument pdf = PdfDocument.FromFile("financial-report.pdf");

// Step 2: Configure AES-256 encryption & permissions
pdf.SecuritySettings = new PdfSecuritySettings
{
    EncryptionAlgorithm   = PdfEncryptionAlgorithm.AES256Bit,
    OwnerPassword         = "IronAdmin!2025",
    UserPassword          = "ReadOnly",
    AllowUserPrinting     = PdfPrintSecurity.Disabled,
    AllowUserCopyPasteContent = false,
    AllowUserAnnotations  = false
};

// Step 3: Digitally sign with a PFX certificate
pdf.SignAndStamp(
    certificatePath : "./certs/ironsoftware.pfx",
    authority       : "Iron Software Ltd.",
    location        : "Chicago, IL",
    reason          : "Final approval"
);

// Step 4: Persist or stream
pdf.SaveAs("financial-report-secured-signed.pdf");
// SecureAndSign.cs — .NET 8 LTS compatible
using IronPdf;

// Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf)
PdfDocument pdf = PdfDocument.FromFile("financial-report.pdf");

// Step 2: Configure AES-256 encryption & permissions
pdf.SecuritySettings = new PdfSecuritySettings
{
    EncryptionAlgorithm   = PdfEncryptionAlgorithm.AES256Bit,
    OwnerPassword         = "IronAdmin!2025",
    UserPassword          = "ReadOnly",
    AllowUserPrinting     = PdfPrintSecurity.Disabled,
    AllowUserCopyPasteContent = false,
    AllowUserAnnotations  = false
};

// Step 3: Digitally sign with a PFX certificate
pdf.SignAndStamp(
    certificatePath : "./certs/ironsoftware.pfx",
    authority       : "Iron Software Ltd.",
    location        : "Chicago, IL",
    reason          : "Final approval"
);

// Step 4: Persist or stream
pdf.SaveAs("financial-report-secured-signed.pdf");
$vbLabelText   $csharpLabel

Hinter den Kulissen

  • AES-256-Verschlüsselung – IronPDF umhüllt die Nutzlast mit NIST-geprüften AES-Schlüsseln, blockiert unbefugtes Öffnen, Drucken oder Copy-Paste.
  • Berechtigungsgranularität -- Eigenschaften wie AllowUserPrinting und AllowUserFormData schalten die Rechte pro Aktion um; ein Besitzerpasswort ist erforderlich, damit eine Einschränkung wirksam wird.
  • Digitale Signaturen -- SignAndStamp bettet einen RFC 3161-Zeitstempel und eine Zertifikatskette ein und erzeugt manipulationssichere Hashes, die von Adobe® Acrobat und anderen ISO 32000-2-Viewern erkannt werden.
  • One-Stop-API - sowohl Verschlüsselung als auch Signierung modifizieren dieselbe PdfDocument Instanz, wodurch mehrfache Dateiübergaben vermieden und interne Schriftarten, Ebenen und Metadaten erhalten bleiben.

Tipps Tipp zur Fehlerbehebung: Falls Adobe Reader eine "ungültige Signatur" meldet, stellen Sie sicher, dass die PFX-Datei ein vertrauenswürdiges Stammzertifikat enthält und die Zeichenketten location ASCII-konform sind.

Kern-Sicherheitseinstellungen

##

`PdfSecuritySettings` → `OwnerPassword` , `UserPassword` , `EncryptionAlgorithm` , `AllowUserPrinting`

##

`PdfDocument.SignAndStamp` - PFX Pfad, Autorität, Ort, Grund, Zeitstempel

Interne Ressourcen für tiefere Einblicke


Wie kann die HTML-zu-PDF-Leistung in .NET Core optimiert und skaliert werden?

IronPDFs Chromium-Engine rendert die meisten Seiten bereits in < 1 s auf moderner Hardware, aber der Durchsatz kann durch Batch-Renders, Multithreading und den Abbau von Headless-Chrome-Overhead vervielfacht werden. Die folgenden Tipps gelten gleichermaßen für alle .NET-Versionen.

1. Batch-Rendern in einem Hintergrund-Thread-Pool

// BatchRender.cs — Thread-safe on .NET 8+
using IronPdf;
using System.Threading.Tasks;

var htmlSources = Directory.GetFiles("./html", "*.html");
var renderer    = new ChromePdfRenderer();                 // reuse 1 instance

Parallel.ForEach(htmlSources, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, file =>
{
    string html = File.ReadAllText(file);
    using PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs(Path.ChangeExtension(file, ".pdf"));
});
// BatchRender.cs — Thread-safe on .NET 8+
using IronPdf;
using System.Threading.Tasks;

var htmlSources = Directory.GetFiles("./html", "*.html");
var renderer    = new ChromePdfRenderer();                 // reuse 1 instance

Parallel.ForEach(htmlSources, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, file =>
{
    string html = File.ReadAllText(file);
    using PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs(Path.ChangeExtension(file, ".pdf"));
});
$vbLabelText   $csharpLabel

2. Headless-Chrome-Startkosten trimmen

IronPDF liefert sein eigenes Chromium-Build, aber jeder Render verursacht eine kleine Startsteuer. Pooling hilft, und Linux-Container müssen zwei native libs enthalten:

RUN apt-get update && \
    apt-get install -y --no-install-recommends libnss3 libatk1.0-0

Missing either library manifests as a libnss3.so not found error in Docker logs.

Recommended Chrome flags (automatically applied by IronPDF) include --disable-gpu and --no-sandbox to reduce memory and root-user issues in containers.

3. Warten Sie auf verspätetes JavaScript mit RenderDelay oder WaitFor

Seiten, die Zähler animieren oder Daten nach DOMContentLoaded abrufen, benötigen möglicherweise eine kurze Verzögerung:

renderer.RenderingOptions.RenderDelay = 200;        // ms
// OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')";
renderer.RenderingOptions.RenderDelay = 200;        // ms
// OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')";
$vbLabelText   $csharpLabel

Siehe das dedizierte WaitFor-Tutorial für benutzerdefinierte Versprechen und DOM-Abfragen.

4. Debug-Logging für eine Anfrage aktivieren

renderer.LoggingOptions.DebugMode        = true;
renderer.LoggingOptions.LogsToConsole    = true;
renderer.LoggingOptions.LogFilePath      = "./logs/ironpdf-debug.log";
renderer.LoggingOptions.DebugMode        = true;
renderer.LoggingOptions.LogsToConsole    = true;
renderer.LoggingOptions.LogFilePath      = "./logs/ironpdf-debug.log";
$vbLabelText   $csharpLabel

Live DevTools-Spuren zeigen fehlende Schriftarten, 404-Bilder und Zeitsereignisse ohne erneutes Kompilieren des Codes.

5. PDF-Vorlagen wiederverwenden anstatt neu zu rendern

Für Rechnungsläufe sollte eine PDF-Vorlage mit Platzhaltern wie [[name]] erstellt und ein Textaustausch durchgeführt werden, anstatt komplexes HTML neu zu generieren. Es ist 10× schneller und speicherschonend.

Schnellabstimmungs-Checkliste

##

`Parallel.ForEach`, `async/await`, Wiederverwendung eines einzelnen `ChromePdfRenderer`

##

Verwenden Sie `aspnet:8.0-jammy`; installieren Sie `libnss3` + `libatk1.0-0`; Flags `--no-sandbox`, `--disable-gpu`

##

`RenderDelay`, `WaitFor()`, log DevTools Zeitleiste für langsame SPA-Hydrationen

Weiterführende Lektüre


Wo kann ich eine kostenlose Testversion herunterladen, eine Lizenz auswählen und Expertenunterstützung finden? {#anchor-10-resources}

Ein 30-tägiger Testschlüssel wird sofort über das Start Free Trial-Formular ausgegeben und schaltet alle Funktionen frei, einschließlich HTML-zu-PDF, digitale Signaturen und Verschlüsselung, ohne Wasserzeichen.

Nach der Bewertung der Bibliothek wählen Sie eine unbefristete Entwickler-, Bereitstellungs- oder Unternehmens-Lizenz; jeder Plan beinhaltet kostenlose kleinere Updates, Nutzungsrechte für Entwicklung/Test/Produktion und eine 30-tägige Geld-zurück-Garantie. Das Anwenden des Schlüssels ist eine einzige Codezeile (IronPdf.License.LicenseKey = "YOUR-KEY";) und kann in CI/CD-Pipelines automatisiert werden.

Umfassende Dokumentation—Schnellstart-Anleitungen, API-Referenz und Tutorial-Videos—stehen im Dokumentationsportal zur Verfügung und werden für jede .NET-Version aktualisiert.

Ingenieurfragen erhalten eine Antwort innerhalb eines Geschäftstages via Live-Chat, E-Mail oder Telefon vom in Chicago ansässigen Support-Team.

Leistungsoptimierung und Bereitstellungs-FAQs sind im Performance Assistance Centre zusammengefasst.

Ressource URL Warum es wichtig ist
Erhalten Sie einen 30-tägigen Testschlüssel https://ironpdf.com/demos/ Schaltet alle Funktionen ohne Wasserzeichen frei
Lizenzierung & Preisgestaltung https://ironpdf.com/licensing/ Unbefristete oder Abonnementpläne; Iron Suite bündelt 10 Bibliotheken
API-Referenz https://ironpdf.com/object-reference/api/ Vollständige Klassendokumentation, z. B. ChromePdfRenderer
Dokumentenportal https://ironpdf.com/docs/ Anleitungen, Tutorials, Beispielprojekte
Performance-Unterstützung https://ironpdf.com/troubleshooting/ironpdf-performance-assistance/ Optimierungs- und Skalierungstipps
Kontaktieren Sie den Support https://ironsoftware.com/contact-us/ Live-Chat, E-Mail, Telefonunterstützung

Nächste Schritte

  1. Klone das Beispiel-Repo, das jede Hauptfunktion demonstriert—von MVC-Ansicht-Rendering bis hin zu AES-256-Verschlüsselung.
  2. Probeschlüssel einstecken in eine bestehende Lösung und die Modultests ausführen, um plattformübergreifende Kompatibilität zu validieren.
  3. Buchen Sie eine Live-Demo mit dem Engineering-Team für projektspezifische Empfehlungen.

Mit diesen Ressourcen in der Hand kann jedes .NET-Team pixelgenaue PDFs in der Produktion bereitstellen—on-prem, in Docker oder serverlos—innerhalb eines einzigen Sprints.

Häufig gestellte Fragen

Wie kann ich HTML in .NET Core in PDF umwandeln?

Sie können HTML in .NET Core mit der IronPDF-Bibliothek in PDF umwandeln. Installieren Sie zuerst das IronPDF NuGet-Paket und erstellen Sie dann eine ChromePdfRenderer-Instanz. Verwenden Sie die RenderHtmlAsPdf-Methode, um HTML-Strings in PDFs umzuwandeln.

Wie konvertiere ich eine Website-URL in ein PDF-Dokument?

Um eine Website-URL in ein PDF-Dokument zu konvertieren, installieren Sie das IronPDF NuGet-Paket, erstellen Sie eine ChromePdfRenderer-Instanz und verwenden Sie die RenderUrlAsPdf-Methode, um die URL in ein PDF zu rendern. Das Ergebnis kann mit der SaveAs-Methode gespeichert werden.

Was ist der beste Weg, um Razor-Ansichten in PDFs zu konvertieren?

Der beste Weg, um Razor-Ansichten in PDFs zu konvertieren, ist die Verwendung von IronPDF. Rendern Sie zuerst die Razor-Ansicht in einen HTML-String und übergeben Sie diesen String dann an die RenderHtmlAsPdf-Methode, um ein PDF-Dokument zu erstellen.

Wie kann ich die Sicherheit meiner PDF-Dokumente erhöhen?

Verbessern Sie die PDF-Sicherheit durch die Verwendung von IronPDF, indem Sie AES-256-Verschlüsselung anwenden, Passwörter setzen und Benutzerberechtigungen steuern. Konfigurieren Sie diese Einstellungen über die SecuritySettings-Eigenschaft, um Aktionen wie Drucken und Bearbeiten einzuschränken.

Welche Optionen gibt es zur Anpassung der PDF-Renderung?

IronPDF bietet verschiedene Renderoptionen über die ChromePdfRenderOptions-Klasse, einschließlich der Einstellung von Papiergröße, Ausrichtung, Rändern und der Anwendung von CSS-Medien-Typen. Sie können auch Kopf- und Fußzeilen sowie Wasserzeichen für einen individuell gestalteten Dokumentenausgang hinzufügen.

Wie deploye ich eine PDF-Generierungsanwendung in einem Docker-Container?

Um eine PDF-Generierungsanwendung in einem Docker-Container zu deployen, konfigurieren Sie Linux-Abhängigkeiten in Ihrer Dockerfile und setzen Sie Benutzerberechtigungen. Verwenden Sie IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig für die automatische Verwaltung von Abhängigkeiten.

Wie kann ich Wasserzeichen mit C# zu einem PDF hinzufügen?

Sie können Wasserzeichen zu PDFs mit IronPDF hinzufügen, indem Sie die Watermark-Eigenschaft mit HtmlStamp-Objekten nutzen. Für erweiterte Optionen erlaubt die HtmlStamper-Klasse benutzerdefinierte Positionierung und Transparenzeffekte.

Kann ich digitale Signaturen zu PDF-Dokumenten hinzufügen?

Ja, Sie können digitale Signaturen zu PDFs mit der PdfSignature-Klasse von IronPDF hinzufügen. Verwenden Sie die Sign-Methode an einem PdfDocument und geben Sie eine Zertifikatsdatei an, um die Integrität und Authentizität des Dokuments sicherzustellen.

Wie kann ich die Leistung der PDF-Generierung in .NET Core optimieren?

Optimieren Sie die PDF-Generierungsleistung, indem Sie eine threadsichere ChromePdfRenderer-Instanz wiederverwenden, Multithreading aktivieren und unnötige Headless-Chrome-Start-Flags entfernen. Diese Praktiken tragen zur Effizienzsteigerung Ihrer Anwendung bei.

Funktioniert das .NET Core HTML-zu-PDF-Beispiel in diesem Tutorial auch mit .NET 10?

Ja. IronPDF ist vollständig kompatibel mit .NET 10, sodass Sie das ChromePdfRenderer HTML-zu-PDF-Beispiel aus diesem Tutorial in .NET 10 Projekten verwenden können, ohne den Kerncode zu ändern. Der Hauptunterschied besteht darin, dass Sie .NET 10 beim Erstellen des Projekts anvisieren, dann das neueste IronPDF-Paket von NuGet installieren, um pixelgenaue PDFs aus HTML, Razor-Ansichten oder URLs zu erstellen.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO ...

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

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronPdf
Führen Sie eine Probe aus Sehen Sie zu, wie Ihr HTML-Code in eine PDF-Datei umgewandelt wird.