HTML do PDF: krótki samouczek dla C# .NET

Jak konwertować HTML na PDF w C# (Przewodnik dla Deweloperów)

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

Konwertowanie HTML na PDF w C# wydaje się proste, dopóki rzeczywiste projekty nie osiągną ograniczeń renderowania, wdrożenia i skalowalności. Ten przewodnik pokazuje, jak to zrobić niezawodnie z silnikiem Chromium IronPDF, zaczynając od działającego kodu, który można uruchomić w mniej niż minutę. Jeśli wciąż wybierasz narzędzie, porównaj wszystkie biblioteki C# HTML do PDF najpierw.

Skrócona instrukcja: Przewodnik szybkiego startu, jak przekonwertować HTML na PDF

Możesz łatwo przekonwertować HTML na PDF w C# używając biblioteki IronPDF, która zapewnia metodę ChromePdfRenderer.RenderHtmlAsPdf do tworzenia wysokiej jakości plików PDF z HTML, CSS i JavaScript.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    new IronPdf.ChromePdfRenderer()
        .RenderHtmlAsPdf("<p>Hello World</p>")
        .SaveAs("pixelperfect.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Po zakupie lub zarejestrowaniu się na 30-dniowy okres próbny IronPDF, znajdź klucz licencyjny wysłany na twój e-mail. Dodaj klucz licencyjny na początku swojej aplikacji.

IronPdf.License.LicenseKey = "KEY";
IronPdf.License.LicenseKey = "KEY";
Imports IronPdf

IronPdf.License.LicenseKey = "KEY"
$vbLabelText   $csharpLabel

Cały kod w tym przewodniku był zweryfikowany w IronPDF v2026.6.1 · .NET 10 · czerwiec 2026.

Dlaczego programiści .NET potrzebują konwertera HTML na PDF dla C#

IronPDF korzysta z wbudowanego mechanizmu renderującego Google Chromium, aby zapewnić wysoką wierność konwersji, dokładnie zachowując układ i stylizację treści webowych.

Solidny silnik renderowania Chrome: używa silnika Blink Chrome'a do dokładnej konwersji HTML na PDF.

Dokładność na poziomie pikseli: generowane PDF odpowiadają precyzyjnie stronie internetowej, a nie wersji przyjaznej dla druku.

Pełne wsparcie dla nowoczesnej sieci: pełna obsługa CSS3, HTML5 i JavaScript dla wszystkich elementów HTML.

Wzrost wydajności o 5-20x: znacznie szybszy niż automatyzacja przeglądarki lub sterowniki sieciowe.

Zgodność z PDF/UA: generowanie dostępnych PDF-ów spełniających standardy Sekcji 508.

✅ Brak zewnętrznych zależności: bez plików wykonywalnych do zainstalowania na serwerach.

✅ Designed for C#, F#, and VB.NET on .NET 10, 9, 8, 7, 6, Core, Standard, and Framework.

Zwróć uwagęNajnowsze w wersji v2026.6.1 (czerwiec 2026): automatyczne zakładki PDF generowane z nagłówków HTML podczas renderowania, pełna liniaryzacja PDF w pamięci dla środowisk chmurowych i izolowanych, cyfrowe podpisy ECDSA z inspekcją certyfikatu podpisującego, klikalne adnotacje z linkami oraz mniejsze, wzmocnione obrazy Linux i Docker. Zobacz pełną listę zmian, aby uzyskać kompletną historię wydania.

IronPDF upraszcza proces dla programistów .NET, oferując prostą i wydajną metodę generowania profesjonalnie wyglądających dokumentów PDF z HTML aplikacji webowych. Od faktur i raportów po certyfikaty i archiwa, programiści mogą korzystać z dobrze znanej stosu webowego, podczas gdy IronPDF obsługuje złożoność w zaledwie kilku linijkach kodu.

POWIĄZANE: Dziennik zmian IronPDF: Aktualizacje, kamienie milowe, plan

Czego się nauczysz

  1. Jak przekonwertować HTML na PDF w C#

  2. Jak skonfigurować ustawienia HTML na PDF

  3. Jak używać zaawansowanych funkcji generowania i bezpieczeństwa PDF

  4. Jak wdrożyć HTML na PDF na platformach chmurowych

  5. Porównaj IronPDF z innymi bibliotekami PDF .NET

  6. Rozwiązywanie problemów i wsparcie techniczne

Wybierz swoją ścieżkę HTML do PDF według przypadku użycia

Nie wiesz, od czego zacząć? Przejdź bezpośrednio do ścieżki, która odpowiada temu, co budujesz:

Co budujesz Zacznij tutaj
Konwersja jednorazowego łańcucha HTML HTML String to PDF
Archiwizacja aktywnego adresu URL lub strony internetowej URL to PDF
Tworzenie aplikacji Razor Pages lub MVC Razor / MVC to PDF
Generacja na serwerze dużych wolumenów lub w partiach Generacja asynchroniczna i wsadowa

1. How to Convert HTML to PDF C

Niezależnie od tego, czy pracujesz z stringami HTML, URL-ami, czy plikami HTML, IronPDF oferuje elastyczne opcje generowania wysokiej jakości dokumentów PDF spełniających twoje konkretne wymagania.

W tym tutorialu przeprowadzimy cię przez najczęstsze scenariusze, w tym konwersję stringu HTML na PDF, URL-a na PDF, i pliku HTML na PDF. Ponadto, IronPDF oferuje również różnorodne operacje manipulacji dokumentami PDF:

Jak przekonwertować string HTML na PDF

Najbardziej podstawową operacją jest konwersja stringu HTML na PDF. Ta metoda jest doskonała dla dynamicznie generowanych treści HTML. Metoda RenderHtmlAsPdf w pełni wspiera HTML5, CSS3, JavaScript i obrazy podczas konwersji HTML na PDF bezpośrednio.

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")
$vbLabelText   $csharpLabel

Zweryfikowane na IronPDF v2026.6.1 · .NET 10 · czerwiec 2026.

Wynik

Uruchom powyższy fragment, a IronPDF zwróci jednostronicowy PDF zawierający dokładnie nagłówek, który podałeś, najprostszą możliwą renderowania:

Wydajność

Wydajność konwersji IronPDF do formatu PDF z ciągów znaków, adresów URL i kodu HTML została zmierzona przy użyciu laptopa Lenovo z 16 GB pamięci RAM. Dokument testowy to 3-stronicowa faktura dla Enterprise, zawierająca standardowy CSS Grid, gradienty i tabele wielosekcyjne.

Wyniki są następujące:

Metryka Wartość
Średni czas renderowania ~486 ms
Pamięć na render ~3,6 MB

Pomiar przeprowadzono na podstawie 5 kolejnych renderowań na 16-rdzeniowej stacji roboczej (Windows 11, .NET 8). Pierwsze wywołanie obejmuje również jednorazową inicjalizację silnika Chromium (~1,3 s)

Kiedy po raz pierwszy uruchomiłem test, renderowanie przebiegało bardzo wolno (ponad sekundę na każde wywołanie!). Po przyjrzeniu się sytuacji zdałem sobie sprawę, że miałem uruchomionych kilka instancji Chromium i korzystałem z zasilania bateryjnego, co uniemożliwiało bibliotece wykazanie się prawdziwą prędkością. Po zamknięciu konkurencyjnych procesów i podłączeniu się sytuacja uległa poprawie: średni czas działania w trybie warm run wyniósł ~486 ms, a najszybszy wynik to około 473 ms.

PoradyNiedawne aktualizacje naprawiają problemy z znakami specjalnymi/emoji w metadanych HTML i zapewniają lepsze zarządzanie polami formularzy html, w tym chińskimi znakami na Linuxie. Testuj dynamiczną zawartość za pomocą <spanEnableJavaScript = true dla optymalnych wyników.

Gdy ciąg HTML odwołuje się do lokalnych zasobów, takich jak obrazy czy arkusze stylów, użyj parametru baseUrlOrPath, aby właściwie przekonwertować zawartość HTML z wszystkimi zasobami:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-2.cs
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")
$vbLabelText   $csharpLabel

PoradybaseUrlOrPath informuje IronPDF, gdzie znaleźć twoje pliki CSS, JavaScript i obrazy. Wszystkie względne ścieżki w twoim stringu HTML będą rozwiązywane w tym katalogu.

OstrzeżenieJedną z kwestii, na którą należy zwrócić uwagę, i powodem, dla którego testowanie wyników jest ważne niezależnie od tego, jakiej biblioteki używasz do automatycznego generowania dokumentów, jest to, że dokument Enterprise może zawierać uszkodzone elementy lub brakujące zasoby, gdy odniesienia powracają do ustawień systemowych. IronPDF daje Ci parametr baseUrlOrPath, aby wskazać ścieżki względne na odpowiedni katalog, więc szybki test wyjścia przed dużą operacją jest zazwyczaj wszystkim, czego potrzebujesz, aby to wykryć.

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Jak przekonwertować string HTML na PDF w C#

Jak wyeksportować istniejący URL do PDF

Renderowanie całych stron internetowych do PDF z C# umożliwia zespołom oddzielenie projektu PDF od renderowania backendu. To podejście pozwala na konwersję dowolnego określonego URL bezpośrednio do formatu PDF.

Główna metoda to RenderUrlAsPdf, która pobiera żywą stronę i renderuje ją w jednym wywołaniu:

using IronPdf;

// Create a PDF from any existing web page
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("wikipedia.pdf");
using IronPdf;

// Create a PDF from any existing web page
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("wikipedia.pdf");
Imports IronPdf

' Create a PDF from any existing web page
Private renderer = New ChromePdfRenderer()
Private pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
pdf.SaveAs("wikipedia.pdf")
$vbLabelText   $csharpLabel

Wynik

Tutaj RenderUrlAsPdf przechwytuje artykuł z Wikipedii na żywo w statyczny, gotowy do druku PDF, z tekstem, obrazami, tabelkami i układem zachowanym na wszystkich 33 stronach:

CSS dla Drukowania vs Ekran

Możesz skonfigurować IronPDF do renderowania z użyciem dowolnego typu mediów CSS.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-4.cs
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
$vbLabelText   $csharpLabel

Wsparcie JavaScript

IronPDF w pełni obsługuje JavaScript, jQuery, a nawet AJAX podczas konwersji HTML na PDF. Dla dynamicznych treści HTML możesz skonfigurować IronPDF, aby czekał na zakończenie JavaScript przed renderowaniem stron webowych w PDF. Jest to idealne dla jednorożnych aplikacji internetowych i dynamicznych witryn.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-5.cs
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
$vbLabelText   $csharpLabel

Wykonywanie JavaScriptu można również zobaczyć przy renderowaniu zaawansowanej wizualizacji d3.js z witryny do PDF.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-6.cs
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://observablehq.com/@d3/chord-diagram");

// 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://observablehq.com/@d3/chord-diagram")

' Save the interactive chart as static PDF
pdf.SaveAs("chart.pdf")
$vbLabelText   $csharpLabel

Zweryfikowane na IronPDF v2026.6.1 · .NET 10 · czerwiec 2026.

CSS Responsywny

Ponieważ responsywne strony internetowe są projektowane do oglądania w przeglądarce, a IronPDF nie otwiera prawdziwego okna przeglądarki w systemie operacyjnym serwera, elementy HTML mogą być renderowane w najmniejszym możliwym rozmiarze. PdfCssMediaType.Print jest zalecana, aby poradzić sobie z tym problemem podczas renderowania całych stron internetowych.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-7.cs
// Configure for optimal responsive design handling in HTML to PDF
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
$vbLabelText   $csharpLabel

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Jak renderować URL na PDF

Jak przekonwertować plik HTML na PDF

Konwersja lokalnych plików HTML na PDF zachowuje wszystkie względne zasoby, w tym CSS, obrazy i JavaScript, jakby były otwarte przy użyciu protokołu file://. Metoda ta jest najlepsza do konwersji szablonów lub wstępnie zaprojektowanych stron HTML na dokumenty PDF.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-8.cs
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
$vbLabelText   $csharpLabel

Zweryfikowane na IronPDF v2026.6.1 · .NET 10 · czerwiec 2026.

Wynik

Wskaż RenderHtmlFileAsPdf na szablon faktury HTML, a cały design pliku (logo, tabelka z pozycjami, sumy) zostanie odwzorowany doskonale, bez dodatkowego kodu po Twojej stronie:

Wydajność

Wydajność została ponownie zmierzona przy stałych zmiennych podczas renderowania poprzedniej 3-stronicowej faktury dla Enterprise z pliku na dysku:

Metryka Wartość
Średni czas renderowania ~502 ms
Pamięć na render ~3,1 MB

Pomiar przeprowadzono na podstawie 5 kolejnych renderowań na tej samej stacji roboczej z 16-rdzeniowym procesorem (Windows 11, .NET 8). Renderowanie oparte na plikach odpowiada renderowaniu ciągów znaków w pamięci z dokładnością do około 3%; odczytanie kodu HTML z dysku nie powoduje żadnego wymiernego obciążenia.

PoradyZachowaj swoje pliki HTML w osobnym folderze z ich zasobami (CSS, obrazy), aby edytować i testować w przeglądarce przed konwersją pliku HTML na PDF. To zapewnia, że twoje HTML renderuje się perfekcyjnie dla wysokiej jakości dokumentów PDF.

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Renderuj plik HTML na PDF

Jak przekonwertować strony Razor na PDF

Jeśli twój projekt ASP.NET Core już używa stron Razor, możesz je bezpośrednio przekonwertować na PDF bez przebudowywania HTML. Rozszerzenie Razor IronPDF dodaje metodę RenderRazorToPdf, która pobiera Twoją stronę .cshtml (uzupełnioną o model i układ) i renderuje ją jako dokument PDF w jednym wywołaniu.

Install-Pakiet 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
$vbLabelText   $csharpLabel

Zwróć uwagęRenderRazorToPdf wymaga projektu ASP.NET Core Web App. Nie będzie działać w aplikacjach konsolowych ani bibliotekach klas; silnik widoków Razor musi być dostępny w kanale hostingu.

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Jak przekonwertować CSHTML na PDF w stronach Razor

Jak przekonwertować widoki MVC na PDF

Zespoły używające wzorca MVC mogą generować PDF-y bezpośrednio z swoich istniejących Widoków i kontrolerów. Zainstaluj pakiet rozszerzeń MVC Core, a następnie wywołaj RenderRazorViewToPdf z Twoją ścieżką widoku i modelem; IronPDF obsługuje kanał renderowania Razor i wypuszcza gotowy PDF.

Jest to szczególnie przydatne dla raportów, faktur i wszelkich stron, gdzie HTML już został zaprojektowany i przetestowany w przeglądarce. Generowany PDF zachowuje pełną treść Widoku, włącznie z stronami układu i widokami cząstkowymi.

Install-Pakiet IronPdf.Extensions.Mvc.Core

Najpierw zarejestruj usługę IRazorViewRenderer w swoim Program.cs, aby Twoje kontrolery mogły ją wstrzykiwać:

using IronPdf.Extensions.Mvc.Core;

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

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)()
$vbLabelText   $csharpLabel

Następnie w działaniu kontrolera wstrzyknij renderer i przekonwertuj dowolny widok na PDF:

using IronPdf;
using IronPdf.Extensions.Mvc.Core;
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.Core;
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
$vbLabelText   $csharpLabel

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Jak przekonwertować widoki na PDF w ASP.NET Core MVC

2. Jak skonfigurować ustawienia HTML na PDF

W zakresie manipulacji dokumentami PDF, IronPDF zapewnia rozległe możliwości dostosowywania przez właściwość ChromePdfRenderer.RenderingOptions dla renderowanych PDF.

Ustawienia Opis Przykład
RozmiarPapieru Ustaw wymiary strony dla istniejących PDF-ów (A4, Letter, Legal, itp.) PdfPaperSize.A4
OrientacjaPapieru Ustaw Orientację pionową lub poziomą dla istniejących PDF-ów PdfPaperOrientation.Landscape
MarginTop/Bottom/Left/Right Ustaw marginesy stron w milimetrach (domyślnie: 25 mm) 25
CssMediaType CSS dla Ekranu lub Drukowania dla HTML na PDF PdfCssMediaType.Print
PrintHtmlBackgrounds Uwzględnij kolory tła i obrazy (domyślnie: true) true
EnableJavaScript Wykonaj JavaScript przed renderowaniem treści HTML true
WaitFor.RenderDelay Czas oczekiwania na dynamiczną treść HTML (ms) 500

Zobacz ten fragment kodu dla pełnego przykładu konfiguracji manipulacji dokumentami 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");
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")
$vbLabelText   $csharpLabel

PoradyUżyj PdfCssMediaType dla czystszych, zoptymalizowanych do druku układów w twoim formacie pliku PDF. Użyj Ekranu, aby dokładnie dopasować to, co użytkownicy widzą w swojej przeglądarce.

POWIĄZANE ARTYKUŁY INSTRUKTAŻOWE:

Jak ustawić niestandardowe nagłówki HTTP, ciasteczka i dane logowania

Podczas renderowania URL-ów, które wymagają uwierzytelnienia lub konkretnej metadanych żądania, IronPDF pozwala na dołączenie danych logowania, ciasteczek sesyjnych i nagłówków HTTP z żądaniem. To umożliwia renderowanie pulpitów intranetowych, raportów ograniczonych dostępu lub generowanych przez API stron bez potrzeby samodzielnego pobierania HTML.

Dla podstawowej lub NTLM uwierzytelniania ustaw obiekt LoginCredentials na rendererze. Dla dostępu opartego na tokenach lub sesjach przeprowadź ciasteczka i nagłówki przez RenderingOptions przed wywołaniem RenderUrlAsPdf.

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.company.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.company.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.company.com/quarterly-report")
pdf.SaveAs("quarterly-report.pdf")
$vbLabelText   $csharpLabel

POWIĄZANE ARTYKUŁY INSTRUKTAŻOWE: Renderuj PDFy za logowaniem | Niestandardowe nagłówki żądań HTTP

Jak skonfigurować proxy dla renderowania PDF

Podczas renderowania HTML ładującego zasoby zewnętrzne za firmowym proxy, przekaż adres proxy jako trzeci parametr na RenderHtmlAsPdf(). To jest parametr metody, a nie właściwość na ChromePdfRenderOptions, więc jest ustawiany dla każdego wywołania rendera, a nie instancji renderera.

Dla proxy z uwierzytelnianiem, osadź dane uwierzytelniające bezpośrednio w URL używając formatu http://user:pass@host:port. Zakoduj specjalne znaki w hasłach za pomocą Uri.EscapeDataString().

using IronPdf;

var renderer = new ChromePdfRenderer();

// Proxy is the third parameter, not a render option
var pdf = renderer.RenderHtmlAsPdf(
    "<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
    baseUrlOrPath: null,
    proxy: "http://proxy.corp.local:8080"
);
pdf.SaveAs("proxied-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Proxy is the third parameter, not a render option
var pdf = renderer.RenderHtmlAsPdf(
    "<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
    baseUrlOrPath: null,
    proxy: "http://proxy.corp.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 = renderer.RenderHtmlAsPdf(
    "<h1>Report</h1><link rel='stylesheet' href='https://cdn.example.com/styles.css'>",
    baseUrlOrPath:=Nothing,
    proxy:="http://proxy.corp.local:8080"
)
pdf.SaveAs("proxied-report.pdf")
$vbLabelText   $csharpLabel

Zauważ, że RenderUrlAsPdf() nie akceptuje parametru proxy. Aby renderować aktywny adres URL za proxy, najpierw pobierz HTML za pomocą HttpClient skonfigurowanego z WebProxy, następnie przekaż go do RenderHtmlAsPdf() z parametrem proxy dla załadowania zasobów.

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Jak skonfigurować serwery proxy dla renderowania PDF

3. Jak używać zaawansowanych funkcji generowania i bezpieczeństwa PDF

Odblokuj możliwości na poziomie Enterprise dla konwersji HTML na PDF z zaawansowanym szablonowaniem, operacjami asynchronicznymi i funkcjami bezpieczeństwa. Te metody manipulacji PDF umożliwiają tworzenie dokumentów PDF na dużą skalę, ochronę poufnych plików PDF oraz zapewnienie autentyczności dokumentu podczas konwersji HTML na profesjonalny format PDF.

Jak generować szablon HTML dla wsadowego tworzenia PDF

Podstawowe wsadowe tworzenie PDF

Tworzenie wsadowego PDF jest kluczowe dla efektywnego generowania wielu spersonalizowanych dokumentów PDF. Dla podstawowych scenariuszy metoda String.Format w C# działa najlepiej do prostych manipulacji PDF.

// 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>
$vbLabelText   $csharpLabel

Dla dłuższych szablonów, kiedy potrzebujesz generować dokumenty PDF, użyj zamiany symboli zastępczych w treści HTML:

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-16.cs
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
$vbLabelText   $csharpLabel

Szablonowanie HTML do PDF z Handlebars.NET

Dla złożonych szablonów z pętli i warunkach, kiedy konwertujesz HTML na PDF, użyj zaawansowanego szablonowania z Handlebars.NET do generowania plików PDF z dynamiczną zawartością HTML.

# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Pakiet Handlebars.NET
# First, install Handlebars.NET for HTML to PDF templating
PM > Install-Pakiet Handlebars.NET
SHELL
:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-21.cs
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.Compile(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")
$vbLabelText   $csharpLabel

POWIĄZANY ARTYKUŁ: Dowiedz się więcej na temat Handlebars.NET na GitHub

Kontrola podziałów stron PDF:

Zarządzanie paginacją w generowanych dokumentach PDF zapewnia profesjonalne, czytelne układy podczas konwersji fragmentów HTML. Użyj CSS, aby kontrolować, gdzie strony się załamują w plikach PDF.
<!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>
HTML

Jak generować PDF metodą asynchroniczną

IronPDF dostarcza wydajność na poziomie przedsiębiorstwa z pełnym wsparciem dla asynchronicznego i wielowątkowego dla twoich potrzeb konwersji HTML na PDF, kiedy potrzebujesz generować pliki PDF na dużą skalę.

using IronPdf;
using System.Collections.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> htmlSzablony)
    {
        var renderer = new ChromePdfRenderer();

        // Create parallel conversion tasks to generate PDF documents
        var tasks = htmlSzablony.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.Collections.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> htmlSzablony)
    {
        var renderer = new ChromePdfRenderer();

        // Create parallel conversion tasks to generate PDF documents
        var tasks = htmlSzablony.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(htmlSzablony As List(Of String)) As Task
        Dim renderer As New ChromePdfRenderer()

        ' Create parallel conversion tasks to generate PDF documents
        Dim tasks = htmlSzablony.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
$vbLabelText   $csharpLabel

Zweryfikowane na IronPDF v2026.6.1 · .NET 10 · czerwiec 2026.

PoradyWskazówki dotyczące optymalizacji wydajności konwersji HTML na PDF

  • Używaj systemów 64-bitowych dla optymalnej wydajności generowania PDF.
  • Zapewnij odpowiednie zasoby serwera, gdy generujesz dokumenty PDF (unikaj słabyćh darmowych poziomów)
  • Daj wystarczająco RenderDelay dla złożonego JavaScriptu w treści HTML.
  • Ponownie wykorzystuj instancje ChromePdfRenderer kiedy to możliwe.
  • Wykorzystaj ostatnie poprawki pamięci dla operacji asynchronicznych / w partiach, aby zmniejszyć zużycie zasobów; testuj dla zmniejszonych rozmiarów plików z powtarzającymi się niestandardowymi nagłówkami/stopkami.

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Jak generować PDF-y z asynchronicznie i wielowątkowo

Jak dodać zaawansowane funkcje bezpieczeństwa

Jak dodać ochronę hasłem dla plików PDF w .NET

Zabezpieczaj poufne generowane dokumenty PDF hasłami i uprawnieniami podczas konwersji treści HTML na chroniony format PDF.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-24.cs
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 = PdfPrintSecurity.PrintLowQuality;

// 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 = PdfPrintSecurity.PrintLowQuality

' Apply strong encryption to PDF documents
pdf.SecuritySettings.EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256
pdf.SaveAs("secure-document.pdf")
$vbLabelText   $csharpLabel

Jak dodać podpisy cyfrowe do plików PDF

Dodaj podpisy kryptograficzne, aby zapewnić autentyczność dokumentu PDF, gdy generujesz pliki PDF z treści HTML. Po podpisaniu możesz zweryfikować podpis i przeczytać certyfikat podpisującego dla audytu i kontroli zgodności.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-25.cs
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"
};

// 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"
}

' Apply signature to PDF documents
pdf.Sign(signature)
pdf.SaveAs("signed-contract.pdf")
$vbLabelText   $csharpLabel

Zweryfikowane na IronPDF v2026.6.1 · .NET 10 · czerwiec 2026.

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Podpisywanie cyfrowo dokumentów PDF w C#

Jak konwertować formularze HTML na wypełnialne PDFy

Aby przekonwertować standardowe elementy formularza HTML na interaktywne, wypełnialne pola formularza PDF, włącz opcję renderowania CreatePdfFormsFromHtml. To zachowuje pola tekstowe, pola wyboru, radio buttony i menu rozwijane jako edytowalne pola w generowanym dokumencie PDF.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-26.cs
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 = 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")
$vbLabelText   $csharpLabel

OstrzeżenieKażde pole formularza w Twoim HTML musi mieć unikalny atrybut name. Duplikaty nazw spowodują, że pola będą dzielić tę samą wartość w generowanym PDF, co prowadzi do niespodziewanych zachowań, gdy użytkownicy wypełniają formularz.

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Jak tworzyć wypełnialne formularze PDF w C#

Jak konwertować określone elementy HTML na PDF

Aby renderować konkretną sekcję strony, a nie cały dokument, odizoluj docelowy element przed renderowaniem. Najbardziej bezpośrednie podejście używa opcji renderowania JavaScript do zastąpienia treści dokumentu zawartością docelowego elementu, połączonego z WaitFor.HtmlQuerySelector() aby upewnić się, że element istnieje przed ekstrakcją. Fragment poniżej zachowuje document.head, więc arkusze stylów i czcionki są przenoszone; bez tego kroku, reguły CSS opierające się na selektorach przodków byłyby utracone w wyodrębnionym PDF.

Dla scenariuszy po stronie serwera, gdzie masz dostęp do surowego HTML, wyodrębnij docelowy fragment za pomocą parsera takiego jak AngleSharp i przekaż go do RenderHtmlAsPdf(), bez potrzeby wykonywania JavaScriptu.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-27.cs
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")
$vbLabelText   $csharpLabel

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Jak konwertować elementy HTML i częściowe strony na PDF

Jak przekształcać uwierzytelnione strony na PDF

Istnieją trzy mechanizmy do renderowania stron za uwierzytelnianiem: dane logowania sieciowego, niestandardowe ciasteczka i nagłówki żądań HTTP. To pokrywa najczęstsze scenariusze uwierzytelniania podczas konwersji chronionych treści webowych na PDF.

Dane logowania

Użyj ChromeHttpLoginCredentials dla podstawowego, 'digest' lub NTLM uwierzytelniania przy konwertowaniu chronionych adresów URL na PDF.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-28.cs
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.company.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.company.com/reports")
pdf.SaveAs("authenticated-report.pdf")
$vbLabelText   $csharpLabel

Ciasteczka i nagłówki HTTP

Dla uwierzytelnienia oparte na tokenach lub sesjach, dołącz niestandardowe ciasteczka i nagłówki HTTP bezpośrednio do żądania renderowania.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-29.cs
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.HttpRequestHeaders["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.HttpRequestHeaders("Authorization") = "Bearer eyJhbGciOi..."

Dim pdf = renderer.RenderUrlAsPdf("https://app.example.com/dashboard")
pdf.SaveAs("dashboard.pdf")
$vbLabelText   $csharpLabel

PoradyDla logowań opartych na formularzach HTML (POST nazwa użytkownika/hasło), rozważ użycie HttpClient do pierwotnej autoryzacji, a następnie przekaż uzyskane ciasteczka do słownika CustomCookies, by renderować chronioną stronę.

POWIĄZANY ARTYKUŁ INSTRUKTAŻOWY: Jak przekonwertować HTML za logowaniem na PDF

Icon Quote related to Jak przekształcać uwierzytelnione strony na PDF

Moją ulubioną biblioteką tego typu jest IronPDF. Umożliwia ona szybkie i efektywne manipulowanie plikami PDF. Posiada także wiele cennych funkcji, takich jak eksport do formatu PDF/A i cyfrowe podpisywanie dokumentów PDF.

Milan Jovanovic related to Jak przekształcać uwierzytelnione strony na PDF

Milan Jovanovic

Microsoft MVP

Zobacz studium przypadku
Icon Quote related to Jak przekształcać uwierzytelnione strony na PDF

IronOCR pozwala nam oszczędzić 40 000 USD rocznie na ręcznym przetwarzaniu, jednocześnie zwiększając produktywność i uwalniając zasoby do zadań o wysokim wpływie. Gorąco polecam.

Brent Matzelle related to Jak przekształcać uwierzytelnione strony na PDF

Brent Matzelle

Dyrektor technologiczny, OPYN

Zobacz studium przypadku
Icon Quote related to Jak przekształcać uwierzytelnione strony na PDF

IronSuite odgrywa kluczową rolę w naszej działalności. Są to narzędzia zwiększające wydajność w całej firmie, w tym tworzenie planów pięter i poprawa zarządzania zapasami.

David Jones related to Jak przekształcać uwierzytelnione strony na PDF

David Jones

Główny inżynier oprogramowania, Agorus Build

Zobacz studium przypadku

4. Jak wdrożyć HTML na PDF na platformach chmurowych

Wdrażanie konwersji HTML na PDF w środowiskach chmurowych wymaga specyficznej konfiguracji dla renderowania bezgłowego, tymczasowych ścieżek plików i przydziału zasobów. Aby zadawaliśmy kluczowe zagadnienia dotyczące wdrożeń w popularnych platformach chmurowych i w kontenerach z IronPDF.

Platforma Min Zasoby Pakiet AutoKonfiguracja Tymczasowa Ścieżka Kluczowy Problem
Usługa aplikacji Azure Poziom B1 (Podstawowy) IronPdf.Linux true /tmp Bezpłatne/Współdzielone poziomy nie działają (brak GPU, mało pamięci)
Azure Functions (Windows) Poziom B1 IronPdf true /tmp Odznacz "Uruchom z pliku pakietu"
AWS Lambda 512 MB / 60s timeout IronPdf.Linux true /tmp (wymagane) Domyślny system plików jest tylko do odczytu
Docker (Ubuntu/Debian) Zależne od obrazu IronPdf.Linux false Domyślny obraz Ustaw false (Dockerfile zarządza zależnościami)

Jak wdrożyć na Azure

Podczas wdrażania na Azure Functions lub Usłudze App, wyłącz akcelerację GPU i zapewnij, że twoja warstwa hostingowa dostarcza wystarczającą pamięć dla renderowania opartego na Chrome. Dodaj te ustawienia podczas uruchamiania aplikacji, przed wszelkimi wywołaniami renderowania.

Piaskownice Azure działają bezgłowo bez dostępu do GPU, a poziomy darmowe/współdzielone (F1, D1) brakuje zasobów wymaganych przez Chrome. Celuj w Poziom B1 (Podstawowy) lub wyższy.

:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-30.cs
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")
$vbLabelText   $csharpLabel

UwagaUsługa App Azure Darmowa i Współdzielona (F1, D1) nie ma wystarczających zasobów dla renderowania PDF z Chrome. Użyj przynajmniej poziomu B1 (Podstawowy) lub wyższego, aby uniknąć błędów braku pamięci i timeoutów procesów.

POWIĄZANY PRZEWODNIK ROZPOCZYNAJĄCY: Jak wdrożyć IronPDF na Azure

Jak wdrożyć na AWS Lambda

AWS Lambda wymaga wdrożenia opartego na Dockerze dla renderowania PDF opartego na Chrome. Domyślny system plików Lambda jest tylko do odczytu, więc wszystkie tymczasowe i ścieżki wdrożenia muszą wskazywać na /tmp.

Skonfiguruj te ustawienia na górze obsługiwacza funkcji, przed jakimikolwiek wywołaniami renderowania.

using Amazon.Lambda.Core;
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.LinuxAndDockerDependenciesAutoKonfiguracja = 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.Core;
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.LinuxAndDockerDependenciesAutoKonfiguracja = 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.LinuxAndDockerDependenciesAutoKonfiguracja = 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
$vbLabelText   $csharpLabel

Zwróć uwagęKonfiguruj swoją funkcję Lambda z co najmniej 512 MB pamięci i minimum 60-sekundowym czasem wywołania. Renderowanie oparte na Chrome jest intensywne pod względem pamięci, a zimne starty wymagają dodatkowego czasu na inicjalizację wbudowanego silnika przeglądarki.

RELATED GET-STARTED Guide: Jak wdrożyć IronPDF na AWS Lambda

Jak wdrożyć z Dockerem

Dla wdrożeń Dockera użyj pakietu NuGet IronPdf.Linux, aby zmniejszyć rozmiar obrazu i uniknąć pobierania zasobów podczas wykonywania. Ten pakiet zawiera wcześniej skompilowane binaria natywne dla Linuksa, zoptymalizowane dla środowisk kontenerowych.

Ustaw LinuxAndDockerDependenciesAutoKonfiguracja = false, gdy Twój Dockerfile już instaluje współdzielone zależności biblioteki Chrome za pomocą apt-get. Automatyczna instalacja w czasie wykonywania jest w tym przypadku zbędna i może powodować błędy uprawnień lub dłuższe zimne starty.

Platforma Pakiet Konfiguracja kluczowa
Ubuntu 22.04 / Debian IronPdf.Linux Domyślny, działa od razu po wyjęciu z pudełka
Alpine Linux IronPdf.Linux Zainstaluj chromium przez apk w Dockerfile
Amazon Linux 2 IronPdf.Linux Użyj LinuxAndDockerDependenciesAutoKonfiguracja = true
Kontenery Windows IronPdf Nie wymaga dodatkowej konfiguracji


Minimalny wieloetapowy Dockerfile dla obrazu opartego na Ubuntu/Debian:

FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /app
COPY . .
RUN dotnet publish -c Release -o /out

FROM mcr.microsoft.com/dotnet/aspnet:10.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"]


:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf-33.cs
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")
$vbLabelText   $csharpLabel

Zweryfikowane na IronPDF v2026.6.1 · .NET 10 · czerwiec 2026.

RELATED GET-STARTED Guide: Jak korzystać z IronPDF z Dockerem

5. Porównanie IronPDF z innymi bibliotekami PDF dla .NET

IronPDF jest preferowanym rozwiązaniem dla wielu zespołów, jeśli chodzi o generowanie plików PDF w C# dzięki solidnemu silnikowi renderowania opartemu na Chromium, intuicyjnemu API i częstym ulepszeniom produktu. Porównajmy IronPDF z innymi konwerterami PDF, aby znaleźć najlepsze rozwiązanie dla Twoich potrzeb generowania PDF.

Bezplatne i otwarte alternatywy

Niektóre narzędzia, które mogą wziąć pod uwagę:

  • PuppeteerSharp: wersja portu Puppeteer na platformę .NET na licencji MIT, która steruje bezgłowym Chrome'a.
  • Playwright dla .NET: biblioteka automatyzacji Microsoftu na licencji Apache-2.0, również oparta na Chromium.
  • wkhtmltopdf: długoterminowa samodzielna binarna konwersja HTML do PDF.
  • Natywne drogi przeglądarki: drukowanie do PDF bezpośrednio z bezgłowej przeglądarki lub sterownika drukarki systemu operacyjnego.

Warto najpierw zwrócić uwagę na rozróżnienie: PuppeteerSharp i Playwright są ramkami automatyzacji przeglądarki, a nie bibliotekami PDF. Ekspozycja wywołania drukowania do PDF na bazie prawdziwego Chromium, więc wierność renderowania jest doskonała, ale szczegóły PDF, takie jak nagłówki i stopki, szyfrowanie, podpisy i PDF/A, wraz z cyklem życia przeglądarki, pozostają do zrealizowania przez ciebie: wysyłanie i aktualizowanie binarium Chromium, zarządzanie współbieżnością i odzyskiwanie po awarii, oraz budowanie struktury dokumentu ręcznie. Playwright dodaje warunek warty poznania wcześnie: jego PdfAsync działa tylko w bezgłowym Chromie (nie w Firefox ani WebKit), więc wdrożenia muszą zapewniać bezgłowego Chrome, co ma znaczenie w kontenerach i rozwiązaniach bezserwerowych.

wkhtmltopdf znowu zajmuje inne miejsce. Projekt został zarchiwizowany w 2024 roku, a jego ostatnie wydanie (0.12.6, 2020) działa na ~2012 Qt WebKit silniku, który nie otrzymuje dalszych łatek bezpieczeństwa, w tym krytyczna niezałatana porada dotyczącą SSRF (CVE-2022-35583); pozostaje użyteczny dla prostych statycznych dokumentów na zaufanym wejściu, ale mniej dla jawnego wyjścia. Natywne drogi przeglądarek nie wymagają w ogóle biblioteki, kosztem jakiejkolwiek rodzimój biblioteki PDF .NET ani faktycznej kontroli nad automatyzacją po stronie serwera.

Dla prototypów, narzędzi wewnętrznych i pracy bez budżetu, są to legalne wybory. Poniższe porównanie obejmuje funkcję po funkcji bibliotek komercyjnych.

Szybka macierz decyzyjna: IronPDF versus inne konwertery PDF dla .NET

Rozwiązanie Kiedy używać Najlepsze dla
IronPDF Konwersja nowoczesnych stron internetowych/HTML do PDF z dokładnym wizualnym podobieństwem. Aplikacje Enterprise wymagające niezawodnego silnika renderowania HTML, dynamicznych treści i profesjonalnego wsparcia.
wkhtmltopdf Prosta konwersja HTML w aplikacjach niekrytycznych, gdzie przestarzałe renderowanie jest akceptowalne. Podstawowe generowanie dokumentów z dziedzicznym HTML/CSS.
Syncfusion Jeśli już zainwestowano w ekosystem Syncfusion lub uprawnione do bezpłatnej licencji dla społeczności. Organizacje używające wielu komponentów Syncfusion.
Aspose.PDF Skomplikowana manipulacja PDF, gdy jakość renderowania HTML jest mniej istotna. Obszerne funkcje edycji PDF poza konwersją HTML.

POWIĄZANE PORÓWNANIA:

Szczegółowe porównanie: IronPDF versus inne konwertery PDF .NET

Show the full feature-by-feature table (10 .NET PDF libraries)
Funkcja ★ Zalecane IronPDF wkhtmltopdf iText Aspose.PDF Syncfusion Apryse SelectPdf Spire.PDF PDFsharp QuestPDF
Renderowanie i konwersja
Dokładność renderowania Pixel-Perfect Najlepsze Styl druku Tylko programistyka Dobrze Dobrze Dobrze Dobrze Niski poziom Bez renderowania Układ Code-First
Wsparcie HTML5 Pełne Przestarzałe Dodatek Częściowe Pełne Moduł Pełne Ograniczone Nie Nie (Code-First)
Wsparcie dla CSS3 Pełne Ograniczone Dodatek Częściowe Pełne Moduł Pełne Ograniczone Nie Nie (Code-First)
Wykonanie JavaScript Pełna Najlepsze Nie Nie Kwestionowane Ograniczone Ograniczone Ograniczone Bardzo ograniczone Nie Nie
HTML→PDF (Nowoczesny układ) Wbudowane Chromium Najlepsze Qt WebKit (Przestarzałe) Płatny dodatek Częściowe; JS Kwestionowane Silnik Blink Wymaga modułu Pełne HTML→PDF Oparte na obrazach Nie Nie jest rendererem HTML
Renderowanie PDF→Obraz Tak Nie Tak Tak Tak Tak Nie Ograniczone Nie Tylko własne dokumenty
Operacje na dokumentach
Generowanie PDF programistycznie Tak Nie Tak Tak Tak Tak Tylko HTML Tak Podstawowe Tak (Fluent API)
Scałanie, dzielenie i przearanżowanie Tak Nie Tak Tak Tak Tak Tak Tak Ograniczone Tak
Nagłówki / Stopki / Numery stron HTML/Tekst/Obraz Najlepsze Ograniczone Tak Przez wydarzenia Przez wydarzenia Tak Szablony Podręcznik Tylko ręcznie Slot najwyższej klasy
Znakowanie wodne i pieczętowanie Tekst & Obraz Nie Tak Tak Tak Tak Tak Ograniczone Nie Tak (Nakładki)
Wyodrębnianie tekstu z plików PDF Tak Nie Tak Tak Tak Tak Tak Tak Podstawowe Nie
OCR dla zeskanowanych PDF Za pomocą IronOCR Zintegrowane Nie Dodatek Osobny produkt Dodatek Dodatek Nie Sposób obejścia Nie Nie
Bezpieczeństwo i zgodność
Podpisy cyfrowe Tak Nie Tak Tak Tak Przykładowy kod Tak Nie Nie Nieudokumentowane
Zgodność z PDF/A Tak (PDF/A-3B) Nie Pełny PDF/A Walidacja & Tworzenie Wymaga natywnego SDK Zgodność z PDFA Nie Tak Ograniczone PDF/A-2x i 3x
Platformaa i doświadczenie deweloperskie
Wielopłatformowe Windows · Linux · macOS Wszystkie 3 Zależy od binariów .NET Standard 2.0 Dodatkowa konfiguracja Linuksa Blink + Serwer .NET SDK natywne Tylko Windows * Ograniczona dokumentacja Linuksa Skoncentrowane na Windows Win/Linux/macOS
Wdrożenie Cloud & Docker Azure · AWS · Docker Najlepsze Skomplikowane; Dziedziczne Wiele pakietów Częściowe; Kontenery Potrzebne dodatki Blink Natywne zależności Tylko Windows Ograniczone informacje Proste; Lekki Docker/K8s; Lokalnie
Wsparcie i dokumentacja
Dokumentacja Obszerna + Kopiuj/Wklej Najlepsze Częściowa dokumentacja CLI Obszerna; KB Szeroka; GitHub Centrum pomocy Katalog Cross-Language Przewodniki na start Przewodnik programowy Przewodniki społecznościowe Strukturalna + Aplikacja towarzysząca
Wsparcie dla deweloperów 24/7 Inżynierowie Najlepsze Tylko społeczność Subskrypcja wliczona Forum + Płatne 24/5 Direct-Trac Komercjalne E-mail Forum + E-mail Tylko społeczność Społeczność + GitHub
Licencjonowanie i ceny
Model licencji Wieczysta Otwarto źródłowy AGPL / Subskrypcja Wieczysta Subskrypcja roczna Dostosowane / Według zużycia Wieczysta Wieczysta Darmowe (MIT) MIT Darmowe / Płatne poziomy
Cena wyjściowa $liteLicense Wieczysta · 1 programista Darmowe ~45 000 USD/rok Indywidualna wycena 1 175 USD+ Na programistę Custom Quote Free <M (Community) ~9 000 USD+/rok Indywidualna wycena 499 USD+ Na czas nieokreślony 9 Wieczysta · aktualizacje przez 1 rok Darmowe Bezpłatne Społeczność MIT <1 mln USD
Bezpłatna wersja próbna 30 dni · Pełne funkcje Bez limitów N/D (Darmowe) 30 dni Tak (Z watermarkiem) Community <$1M Rev Tak Wspólnota (5 stron) Darmowe (10 stron) N/D (Darmowe) N/A (MIT Free <$1M)
Przejrzystość cenowa Opublikowana & Jasna Najlepsze Otwarto źródłowy Skomplikowane AGPL Wiele poziomów Skontaktuj się po wycenę Brak opublikowanych cen Opublikowana Opublikowana MIT; Bez ograniczeń MIT; Oparte na zaufaniu

Porównanie prawdziwego życia HTML do PDF: Renderowanie strony głównej Reddita

Aby ocenić jakość wyjściowego PDF, przetestowaliśmy te biblioteki na stronie głównej Reddita zawierającej dynamiczne treści webowe, nowoczesne CSS i elementy HTML JavaScript. Ta strona służy jako idealny przypadek testowy do generowania wyjściowego PDF.

https://www.reddit.com/

Zrzut ekranu strony głównej Reddit pokazujący dynamiczną zawartość, nowoczesny styl i interaktywne elementy użyte do testowania konwersji PDF

IronPDF

Wynik konwersji IronPDF pokazujący renderowanie pixel-perfect strony głównej Reddit ze wszystkimi zachowanymi dynamicznymi treściami, stylizacją i elementami interaktywnymi

IronPDF dostarcza pixel-perfect wyniki, zachowując całą dynamiczną zawartość webową, stylizację nowoczesnych czcionek webowych i elementy interaktywne dokładnie tak, jak są wyświetlane w Chrome, wszystko w zaledwie kilku liniach kodu.

Syncfusion

Konwersja PDF przez Syncfusion pokazująca częściowe renderowanie z brakującymi sekcjami i niekompletnym stylizowaniem strony głównej Reddit

Syncfusion wyrenderowało PDF z większością brakujących sekcji i stylizacji, szczególnie dynamicznej zawartości. Początkowo zablokowany przez zabezpieczenia Reddita. Osiągnięcie lepszych wyników wymaga obszernego dostosowania wiersza poleceń, ale wyjściowy wciąż jest niekompletny.

Aspose.PDF

Próba konwersji przez Aspose.PDF pokazująca minimalne uchwycenie treści z większością elementów strony brakujących ze strony głównej Reddit

Aspose.PDF wymagał ręcznego pobrania HTML na początku (brak obsługi bezpośredniego URL). Po konwersji wyjściowy brakował właściwego formatowania i prawie wszystkich sekcji zawartości, czyniąc go nieodpowiednim dla nowoczesnego webu z dynamiczną zawartością.

wkhtmltopdf

Wyjście wkhtmltopdf pokazujące statyczną, nieulepszoną wersję strony głównej Reddit bez dynamicznych elementów czy nowoczesnego CSS

wkhtmltopdf zakończył szybko, ale wyprodukował czystą, statyczną stronę z brakującą istotną zawartością, jak aktualizacje na żywo, elementy dynamiczne i interaktywne sekcje. To pokazuje niekompatybilność wkhtmltopdf z nowoczesnymi stronami opartymi na JavaScript.

Wnioski dotyczące wydajności i jakości wyjściowego PDF

.NET deweloperzy potrzebujący niezawodnego konwertera HTML do PDF, wybierają IronPDF ze względu na minimalny kod, łatwe w użyciu API i częste ulepszenia produktu.

W prawdziwym teście na treści webowej dostarczył najszybsze, najbardziej dokładne wyniki, podczas gdy Syncfusion pozostawało w tyle, Aspose wymagał dodatkowych kroków, a wkhtmltopdf brakowało nowoczesnych stylizacji. IronPDF oferuje najlepszą równowagę między szybkością, dokładnością i prostotą dla dzisiejszych procesów konwersji HTML do PDF.

Zwróć uwagęAspose, Syncfusion i wkhtmltopdf są znakami towarowymi swoich odpowiednich właścicieli. Ta strona nie jest z nimi powiązana ani nie jest przez nie zatwierdzona. Wszystkie nazwy, logotypy i marki należą do ich właścicieli, a porównania są oparte na ogólnodostępnych informacjach w momencie pisania.

Podsumowanie

Ta instrukcja obejmowała wszystko, co potrzebne do konwersji HTML do PDF w .NET: od podstawowej konwersji ciągu do zaawansowanych funkcji, takich jak przetwarzanie asynchroniczne, cyfrowe podpisy i generowanie wsadowe. Demonstrowaliśmy trzy metody konwersji, niezbędne konfiguracje, zaawansowane funkcje i ustawienia bezpieczeństwa oraz porównaliśmy IronPDF z innymi bibliotekami poprzez testy w realnym świecie generowania dokumentów dynamicznych.

Podczas gdy konkurenci mieli problemy z nowoczesnymi stronami lub wymagały skomplikowanych obejść, IronPDF dostarczył nieskazitelne wyniki z minimalnym kodem i potężnym silnikiem renderowania.

Gotowy, aby uprościć swoje procesy PDF i doświadczyć wszechstronnej generacji PDF w zaledwie kilku liniach kodu? Zainstaluj IronPDF przez NuGet Pakiet Manager (lub wybierz Zarządzaj pakietem NuGet w Visual Studio) i skonwertuj swój pierwszy HTML do PDF już dziś.

Rozpocznij darmowy 30-dniowy okres próbny dla testów produkcyjnych bez znaków wodnych. Elastyczne licencjonowanie zaczyna się od $999 z przejrzystym cenowaniem dla zespołów, które skalują się zgodnie z Twoimi potrzebami.

Zobacz licencjonowanie IronPDF

6. Rozwiązywanie problemów i wsparcie techniczne

Masz problem z poniższymi błędami w konwersji HTML na PDF? IronPDF oferuje całodobowe wsparcie inżynieryjne przez czat na https://ironpdf.com/

Szybkie Naprawy Najczęstszych Błędów

  • Powolne pierwsze renderowanie? Normalne. Chrome inicjalizuje się w 2–3 sekundy, a następnie przyspiesza.
  • Problemy z chmurą? Użyj co najmniej zasobów Azure B1 lub równoważnych.
  • Brakujące zasoby? Ustaw ścieżki bazowe lub osadź jako base64.
  • Brakujące elementy? Dodaj RenderDelay do wykonania JavaScriptu.
  • Problemy z pamięcią podczas renderowania? Zaktualizuj do najnowszej wersji (v2026.6.1) dla poprawek w HTML do PDF, pieczątkach i nagłówkach/stopkach.
  • Problemy z pola formularza (np. długie obszary tekstowe, checkboksy)? Naprawione w wersji v2025.7.17; zapewnij unikalne nazwy dla checkboksów.
  • Zacinanie niestandardowych nagłówków/stopek lub uszkodzone znaki specjalne? Rozwiązane w wersji v2025.8.8; przetestuj zawijanie słów i metadane.

Uzyskaj Pomoc od Inżynierów, Którzy Stworzyli IronPDF, 24/7

Następne kroki

Jak scalić lub podzielić dokumenty PDF
Zobacz jak-to
Jak dodać niestandardowe nagłówki i stopki do plików PDF
Zobacz jak-to
Jak zaciemniać tekst i regiony w PDF
Zobacz jak-to

Często Zadawane Pytania

Jak przekonwertować HTML na PDF w języku C#?

Możesz konwertować HTML na PDF w C#, korzystając z biblioteki renderującej w Chrome, która zamienia HTML, CSS3 i JavaScript na pliki PDF o idealnej rozdzielczości. Narzędzia takie jak IronPDF pozwalają na renderowanie z adresów URL, ciągów HTML lub plików, obsługując jednocześnie nagłówki, uwierzytelnianie i ustawienia drukowania.

Jaka jest najlepsza biblioteka do konwersji HTML na PDF dla platformy .NET?

Najlepsza biblioteka powinna obsługiwać dokładne renderowanie w przeglądarce Chrome, wdrażanie na wielu platformach oraz funkcje dla przedsiębiorstw. IronPDF spełnia wszystkie te wymagania — działa w systemach Windows, Linux, macOS i Docker, zapewniając obsługę zabezpieczeń, podpisów, zgodności z przepisami oraz skalowalnych aplikacji .NET.

Jakie są darmowe opcje HTML do PDF dla .NET?

Otwarte źródła jak wkhtmltopdf, PuppeteerSharp i Playwright konwertują HTML do PDF bez kosztów, ale zamieniają wygodę na utrzymanie — starsze silniki renderujące, dołączone binaria przeglądarki lub ręczna konfiguracja serwera. IronPDF jest komercyjny, z darmowym 30-dniowym okresem próbnym, który oferuje pełną funkcjonalność i brak znaków wodnych podczas rozwoju; licencje produkcyjne zaczynają się od 999 $. Zobacz cennik →

Jak mogę przekonwertować ciągi znaków HTML do formatu PDF przy użyciu języka C#?

Aby przekonwertować ciągi HTML na PDF, użyj klasy ChromePdfRenderer i jej metody RenderHtmlAsPdf. Przekaż swój ciąg HTML do tej metody, a następnie zapisz plik PDF za pomocą SaveAs.

Jakie kroki należy wykonać, aby przekonwertować adres URL strony internetowej na dokument PDF w języku C#?

Możesz przekonwertować adres URL strony internetowej bezpośrednio do formatu PDF, korzystając z metody RenderUrlAsPdf, która pozwala zachować styl, obrazy i elementy interaktywne, takie jak formularze i hiperłącza.

Jak przekonwertować plik HTML na PDF w C#?

Użyj ChromePdfRenderer.RenderHtmlFileAsPdf("path/to/file.html"), aby przekonwertować lokalne pliki HTML do formatu PDF. IronPDF automatycznie rozpoznaje wszystkie względne ścieżki zasobów (obrazy, CSS, JS).

Jak przekonwertować strony ASP.NET Razor Pages lub widoki MVC do formatu PDF?

IronPDF udostępnia dedykowane pakiety rozszerzeń — IronPdf.Extensions.Razor dla Razor Pages oraz IronPdf.Extensions.Mvc.Core dla widoków MVC. Użyj RenderRazorToPdf lub RenderRazorViewToPdf z wstrzykiwaniem zależności, aby konwertować widoki bezpośrednio do formatu PDF z kontrolerów. Zobacz przewodnik Razor →

Jak zapewnić prawidłowe renderowanie treści JavaScript w pliku PDF?

Włącz renderowanie JavaScript, ustawiając RenderingOptions.EnableJavaScript = true, i dodaj opóźnienie renderowania za pomocą RenderingOptions.WaitFor.RenderDelay, aby zapewnić pełne załadowanie treści dynamicznych przed konwersją. Zobacz przewodnik WaitFor →

Dlaczego mój wynik HTML do PDF jest pusty lub brakuje zawartości?

Pusty lub częściowy PDF prawie zawsze oznacza, że strona nie została wykończona podczas tworzenia zrzutu lub jej zasoby nie zostały załadowane. Dla treści dynamicznych lub napędzanych JavaScript, ustaw RenderingOptions.EnableJavaScript = true i dodaj WaitFor.RenderDelay (lub WaitFor.HtmlQuerySelector), aby Chrome zakończył najpierw malowanie. Jeśli lokalne obrazy, CSS lub czcionki brakuje, podaj BaseUrlPath, aby względne ścieżki zostały poprawnie rozpoznane. Zobacz przewodnik WaitFor →

Jaka jest najlepsza metoda dodawania nagłówków i stopek do pliku PDF w języku C#?

Użyj klasy TextHeaderFooter do prostych nagłówków i stopek tekstowych lub klasy HtmlHeaderFooter do bardziej złożonej zawartości HTML. Możesz dołączyć dynamiczne symbole zastępcze, takie jak {page}, {total-pages} i {date}, w celu automatycznego generowania treści. Zobacz przewodnik po nagłówkach i stopkach →

Jak zarządzać podziałami stron w pliku PDF w C# .NET?

Kontroluj podziały stron w plikach PDF, używając właściwości CSS, takich jak page-break-after: always i page-break-inside: avoid w bloku CSS typu PRINT. Zobacz przewodnik po podziałach stron →

Jakie opcje są dostępne w zakresie ustawiania rozmiaru i orientacji papieru w plikach PDF?

Rozmiar papieru ustawia się za pomocą opcji RenderingOptions.PaperSize (dostępne opcje to A4, Letter, Legal itp.), a orientację za pomocą opcji RenderingOptions.PaperOrientation (portretowa lub krajobrazówa). Obsługiwane są również niestandardowe rozmiary w milimetrach lub całach. Zobacz przewodnik po rozmiarach papieru →

Czy mogę konwertować uwierzytelnione strony internetowe do formatu PDF?

Tak. IronPDF obsługuje pliki cookie, niestandardowe nagłówki HTTP oraz uwierzytelnianie oparte na formularzach. Pliki cookie można ustawić za pomocą ChromePdfRenderer.RenderingOptions.CustomCookies lub przekazać nagłówki uwierzytelniające w celu uwierzytelniania opartego na tokenach. Obsługiwane jest również uwierzytelnianie Windows NTLM i Kerberos. Zobacz przewodnik dotyczący plików cookie →

Czy w języku C# mogę utworzyć wiele plików PDF z jednego szablonu HTML?

Tak, utwórz szablony HTML z symbolami zastępczymi, a następnie użyj funkcji zamiany ciągów znaków lub bibliotek szablonów, takich jak Handlebars.NET. Zastąp symbole zastępcze rzeczywistymi wartościami w danych z pętli i wygeneruj pliki PDF za pomocą RenderHtmlAsPdf.

Czy można zabezpieczyć wygenerowane pliki PDF hasłem?

Tak, można użyć właściwości SecuritySettings do ustawienia haseł użytkownika i właściciela, skonfigurowania uprawnień, takich jak drukowanie i kopiowanie, oraz zastosowania szyfrowania AES256 za pomocą SecuritySettings.EncryptionAlgorithm. Zobacz przewodnik po szyfrowaniu →

Czy mogę generować dokumenty zgodne ze standardem PDF/A na podstawie kodu HTML?

Tak. IronPDF obsługuje standardy PDF/A-1b, PDF/A-2b, PDF/A-3b i PDF/UA dotyczące archiwizacji i zgodności z wymogąmi dostępności, których nie oferuje większość konwerterów HTML na PDF. Zobacz przewodnik po PDF/A →

Jak mogę zoptymalizować wydajność generowania dużej ilości plików PDF?

Zoptymalizuj wydajność, używając metod asynchronicznych, takich jak RenderHtmlAsPdfAsync, do operacji nieblokujących. Ponownie wykorzystuj instancje ChromePdfRenderer, przetwarzaj wiele plików PDF jednocześnie za pomocą Task.WhenAll i upewnij się, że masz odpowiednie zasoby serwera w systemie 64-bitowym. Zobacz przewodnik po asynchroniczności →

Jak mogę połączyć wiele plików PDF lub dołączyć stronę tytułową do mojego dokumentu?

Użyj statycznej metody PdfDocument.Merge, aby połączyć wiele plików PDF. Wygeneruj stronę tytułową osobno i połącz ją z głównym dokumentem, aby utworzyć kompleksowy plik PDF. Zobacz przewodnik po scałaniu →

Czy mogę wdrożyć IronPDF na platformie Azure, AWS lub w środowisku Docker?

Tak. IronPDF działa na Azure App Service, Azure Functions, AWS Lambda oraz w kontenerach Docker na systemie Linux. Dla każdej platformy dostępne są dedykowane przewodniki konfiguracji oraz obrazy Docker. Zobacz przewodnik Azure → · Zobacz przewodnik AWS → · Zobacz przewodnik Docker →

Zgodność z .NET 10: Czy IronPDF od razu obsługuje .NET 10?

Tak — IronPDF jest w pełni kompatybilny z .NET 10. Zgodnie z informacjami zawartymi w notatkach dotyczących wydania IronPDF, biblioteka jest gotowa do użycia w projektach .NET 10 od pierwszego dnia, bez konieczności dodatkowej konfiguracji. Niezależnie od tego, czy korzystasz z aplikacji internetowych, konsolowych, desktopowych czy mikrousług, IronPDF działa „od razu po uruchomieniu” z .NET 10.

Czy korzystanie z IronPDF jest darmowe?

IronPDF oferuje darmowy 30-dniowy okres próbny z pełną funkcjonalnością i bez znaków wodnych na etapie rozwoju. Użycie produkcyjne wymaga komercyjnej licencji zaczynającej się od 999 $. Dostępne są poziomy: Lite, Plus, Professional i Enterprise. Zobacz cennik →

Jak jakość renderowania tej biblioteki wypada w porównaniu z innymi opcjami, takimi jak wkhtmltopdf?

Biblioteka ta wykorzystuje nowoczesny silnik renderujący Chrome do tworzenia plików PDF o idealnej rozdzielczości, w przeciwieństwie do przestarzałego silnika WebKit stosowanego w wkhtmltopdf. Nie wymaga ona plików wykonywalnych na serwerze, obsługuje pełną funkcjonalność JavaScript/CSS3, jest regularnie aktualizowana i oferuje profesjonalne wsparcie techniczne.

Dlaczego warto wybrać tę bibliotekę zamiast PDFSharp do konwersji HTML na PDF?

PDFSharp nie posiada wbudowanej funkcji konwersji HTML do PDF, co wymaga stosowania skomplikowanych rozwiązań zastępczych. Ta biblioteka oferuje bezpośrednią konwersję HTML/URL/plików za pomocą API wysokiego poziomu, obsługę nowoczesnych technologii internetowych oraz regularne aktualizacje wraz z profesjonalnym wsparciem. Zobacz porównanie PDFSharp →

Dlaczego jest to lepszy wybór niż iTextSharp do konwersji HTML?

Darmowa wersja iTextSharp nie obsługuje natywnej konwersji HTML do PDF i ma skomplikowany interfejs API niskiego poziomu. Ta biblioteka zapewnia płynną konwersję HTML dzięki intuicyjnemu interfejsowi API, pełnej obsłudze CSS3/JavaScript i braku ograniczeń licencyjnych AGPL. Zobacz porównanie iTextSharp →

Jak jakość renderowania tej biblioteki wypada w porównaniu z Aspose.PDF?

Ta biblioteka generuje pliki PDF o jakości Chrome z idealną rozdzielczością, podczas gdy Aspose.PDF często pomija stylizację i treści dynamiczne. Aspose wymaga ręcznego pobierania kodu HTML w celu konwersji adresów URL, ale ta biblioteka konwertuje adresy URL bezpośrednio z najwyższą dokładnością. Zobacz porównanie z Aspose →

Dlaczego warto wybrać tę bibliotekę zamiast Syncfusion PDF?

Chociaż Syncfusion jest wydajny, zoptymalizowany silnik Chrome tej biblioteki działa szybciej i skuteczniej obsługuje treści dynamiczne. Oferuje prostsze API oraz dodatkowe funkcje, takie jak OCR i generowanie kodów kreskowych. Zobacz porównanie z Syncfusion →

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej
Sprawdzone przez
Jeff Fritz
Jeffrey T. Fritz
Główny Menedżer Programu - Zespół .NET Community
Jeff jest również Głównym Menedżerem Programu dla zespołów .NET i Visual Studio. Jest producentem wykonawczym wirtualnej serii konferencji .NET Conf i prowadzi 'Fritz and Friends', transmisję na żywo dla deweloperów emitowaną dwa razy w tygodniu, gdzie rozmawia o technologii i pisze kod razem z widzami. Jeff pisze warsztaty, prezentacje i planuje treści dla największych wydarzeń Microsoft dla deweloperów, w tym Microsoft Build, Microsoft Ignite, .NET Conf i Microsoft MVP Summit.
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 19,936,792 | Wersja: 2026.7 właśnie wydany
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.