IRONSOFTWAREHOME

HTML do PDF w C# .NET

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 17 września 2026

Jako twórcy IronPDF, wiemy, jak ważne jest, aby konwersja HTML do PDF dawała dokładne, wysokiej jakości wyniki, które spełniają oczekiwania klientów. Ten samouczek C# poprowadzi Cię przez budowę konwertera HTML do PDF dla Twoich aplikacji, projektów i stron internetowych. Opracujemy konwerter HTML do PDF w C#, a dokumenty PDF wygenerowane przez IronPDF będą idealnie odwzorowane w stosunku do PDF-ów generowanych przez przeglądarkę Google Chrome.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Skopiuj i uruchom ten fragment kodu.

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

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

Przegląd


Konwerter HTML do PDF dla C# i VB.NET

Tworzenie plików PDF programowo w .NET może być frustrującym zadaniem. Format pliku dokumentu PDF został zaprojektowany bardziej dla drukarek niż dla programistów. A C# nie ma wielu odpowiednich bibliotek ani funkcji do generowania PDF wbudowanych, wiele bibliotek wymaga dodatkowej konfiguracji i powoduje dalszą frustrację, gdy wymagają wielu linii kodu do wykonania prostego zadania.

Narzędzie do konwersji HTML do PDF w C#, które będziemy używać w tym samouczku, to IronPDF od Iron Software, bardzo popularna biblioteka do generowania i edytowania PDF w C#. Ta biblioteka ma pełną funkcjonalność edycji i generowania PDF, działa od razu po instalacji, robi dokładnie to, czego potrzebujesz w najmniejszej liczbie linii, i ma znakomitą dokumentację swoich 50+ funkcji. IronPDF wyróżnia się tym, że obsługuje .NET 10, .NET 9, .NET 8, .NET 7, .NET 6 i .NET 5, .NET Core, .NET Standard i .NET Framework na Windows, macOS, Linux, Docker, Azure i AWS.

Z C# i IronPDF, logika "generowania dokumentu PDF" lub "konwersji HTML do PDF" jest prosta. Dzięki zaawansowanemu rendererowi Chrome w IronPDF, większość lub całość projektu i układu dokumentu PDF będzie używać istniejących zasobów HTML.

Ta metoda dynamicznego generowania PDF w .NET z HTML5 działa równie dobrze w aplikacjach konsolowych, aplikacjach Windows Forms, WPF, jak również na stronach internetowych i w MVC.

IronPDF obsługuje również debugowanie HTML z Chrome dla idealnych PDF-ów. Samouczek dotyczący konfiguracji można znaleźć tutaj.

IronPDF jest dostępny w kilku językach, zarówno wewnątrz, jak i poza ekosystemem .NET.

IronPDF jest darmowy do celów rozwojowych; klucz licencyjny jest potrzebny do wdrożenia na żywo i usunięcia znaku wodnego wersji próbnej. Możesz kupić licencję tutaj lub zarejestrować się na darmowy 30-dniowy klucz próbny tutaj.


Krok 1

Pobierz i zainstaluj bibliotekę HTML do PDF w C#

Visual Studio - Menedżer pakietów NuGet

W Visual Studio kliknij prawym przyciskiem myszy na swoim projekcie w eksploratorze rozwiązań i wybierz "Zarządzaj pakietami NuGet...". Stamtąd po prostu wyszukaj IronPDF i zainstaluj najnowszą wersję do swojego rozwiązania... kliknij OK na wszelkie okna dialogowe, które się pojawią. To zadziała równie dobrze w projektach VB.NET.

PM > Install-Package IronPdf

IronPDF na stronie NuGet

Aby uzyskać pełny przegląd funkcji, kompatybilności i pobrań IronPDF, sprawdź IronPDF na oficjalnej stronie NuGet: https://www.nuget.org/packages/IronPdf

Instalacja przez DLL

Inną opcją jest zainstalowanie bezpośrednio pliku DLL IronPDF. IronPDF można pobrać i ręcznie zainstalować do projektu lub GAC z https://ironpdf.com/packages/IronPdf.zip


Jak to zrobić - Samouczki

Utwórz PDF z ciągu HTML w C# .NET

Jak: Przekonwertować ciąg HTML na PDF? Jest to bardzo efektywna i satysfakcjonująca umiejętność, aby utworzyć nowy plik PDF w C#.

Możemy po prostu użyć metody ChromePdfRenderer.RenderHtmlAsPdf, aby zamienić dowolny ciąg HTML (HTML5) na PDF. Renderowanie HTML do PDF w C# jest realizowane przez w pełni funkcjonalną wersję silnika Google Chromium, która jest dostarczana z pakietem NuGet IronPDF.

using IronPdf;

// ChromePdfRenderer turns HTML into a PDF using IronPDF's embedded Chrome engine
var renderer = new ChromePdfRenderer();

// Render an HTML string. The result is a PdfDocument held in memory
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");

// Write the PDF to disk
pdf.SaveAs("pixel-perfect.pdf");

RenderHtmlAsPdf w pełni obsługuje HTML5, CSS3, JavaScript i obrazy. Jeśli te zasoby znajdują się na dysku twardym, możemy chcieć ustawić drugi parametr RenderHtmlAsPdf na katalog zawierający zasoby. Ta metoda zwraca obiekt PdfDocument, który jest klasą używaną do przechowywania informacji o PDF.

IronPDF wyrenderuje Twój HTML dokładnie tak, jak wygląda w Chrome

Mamy pełny samouczek poświęcony umożliwieniu Ci skonfigurowania Chrome do pełnego debugowania HTML, aby upewnić się, że zmiany, które tam widzisz podczas edytowania HTML, CSS i JavaScript, są idealnie takie same jak wyjściowy PDF z IronPDF, gdy zdecydujesz się na renderowanie. Proszę znaleźć samouczek tutaj: Jak debugować HTML w Chrome, aby tworzyć idealne PDF-y.

Ścieżka bazowa URL (argument BaseUrlOrPath):

using IronPdf;

var renderer = new ChromePdfRenderer();

// The second argument is the base path. Relative URLs in the HTML (the image
// below, but also stylesheets, scripts and fonts) are resolved against it.
var pdf = renderer.RenderHtmlAsPdf("<img src='image1.png'/>", @"C:\MyProject\Assets\");

pdf.SaveAs(@"C:\MyProject\Assets\output.pdf");

Wszystkie odwołane arkusze stylów CSS, obrazy i pliki JavaScript będą względne do tej ścieżki bazowej i mogą być utrzymywane w schludnej i logicznej strukturze. Możesz również, oczywiście, zdecydować się na odwoływanie się do obrazów, arkuszy stylów i zasobów online, w tym czcionek internetowych, takich jak Google Fonts, a nawet jQuery.


Eksportuj PDF używając istniejącego URL | URL do PDF

Renderowanie istniejących URL jako PDF-ów w C# jest bardzo efektywne i intuicyjne. Pozwala to również zespołom na podział pracy nad projektowaniem PDF i renderowaniem PDF na zapleczu między różnymi zespołami.

Zrenderujmy stronę z Wikipedia.com w poniższym przykładzie:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live web page straight from its URL
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");

// The PDF is written next to the executable
pdf.SaveAs("wikipedia.pdf");

Zauważysz, że hiperłącza, a nawet formularze HTML są zachowane w PDF wygenerowanym przez nasz kod C#.

Podczas renderowania istniejących stron internetowych mamy kilka sztuczek, które możemy zastosować:

CSS do druku i ekranu

Typy mediów CSS pozwalają stronie na posiadanie oddzielnych stylów dla druku i ekranu. Możemy poinstruować IronPDF, aby renderował CSS "Print", który jest często prostszy. Domyślnie będą renderowane style CSS "Screen", które odpowiadają temu, co widzisz w przeglądarce.

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Choose which CSS media type the page is rendered with.
// Screen (the default) renders the page as a browser displays it;
// Print applies the page's @media print rules instead.

// renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

Główny artykuł: Porównanie HTML do PDF z idealnym odwzorowaniem.

JavaScript

IronPDF obsługuje JavaScript, jQuery, a nawet AJAX. Możemy potrzebować poinstruować IronPDF, aby czekał na zakończenie działania JS lub ajax przed renderowaniem migawki naszej strony internetowej.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Let the page's JavaScript run before the snapshot is taken
renderer.RenderingOptions.EnableJavaScript = true;

// Give scripts and AJAX calls 500 milliseconds to finish before rendering.
// For event-driven pages, WaitFor.NetworkIdle() or WaitFor.JavaScript() wait
// for a signal instead of a fixed delay.
renderer.RenderingOptions.WaitFor.RenderDelay(500);

Możemy zademonstrować obsługę JavaScript, renderując stronę dokumentacji diagramu akordowego d3.js, której wykresy są rysowane przez JavaScript po załadowaniu strony:

using IronPdf;

var renderer = new ChromePdfRenderer();

// The chart is drawn by JavaScript, so let it run and give it a moment to finish
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(500);

// Render the d3.js chord-diagram documentation page, whose charts are drawn by JavaScript
var pdf = renderer.RenderUrlAsPdf("https://d3js.org/d3-chord");

pdf.SaveAs("chart.pdf");

CSS responsywny

HTML do PDF z użyciem responsywnego CSS w .NET! Responsywne strony internetowe są zaprojektowane do przeglądania w przeglądarce. IronPDF nie otwiera rzeczywistego okna przeglądarki w systemie operacyjnym serwera. Bez widoku przeglądarki, responsywne układy mogą wracać do najwęższego punktu przerwania.

Zalecamy używanie typów mediów Print CSS, aby poradzić sobie z tym problemem. CSS do druku nie powinien być normalnie responsywny.

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Responsive layouts are designed for a browser viewport, so render the page's
// print stylesheet instead of its screen stylesheet
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

Generuj PDF z strony HTML

Możemy również renderować dowolną stronę HTML do PDF na naszym dysku twardym. Wszystkie względne zasoby, takie jak CSS, obrazy i js, będą renderowane tak, jakby plik został otwarty za pomocą protokołu file://.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render an HTML file from disk. Relative CSS, image and script paths
// resolve against the file's own folder, as if opened with file://
var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

pdf.SaveAs("Invoice.pdf");

Ta metoda ma tę zaletę, że pozwala programiście na przetestowanie zawartości HTML w przeglądarce podczas tworzenia. Zalecamy Chrome, ponieważ jest to przeglądarka internetowa, na której oparty jest silnik renderujący IronPDF.

Aby przekonwertować XML na PDF, możesz użyć szablonów XSLT, aby wydrukować zawartość XML do PDF.


Dodaj niestandardowe nagłówki i stopki

Nagłówki i stopki można dodawać do PDF-ów podczas ich renderowania lub do istniejących plików PDF za pomocą IronPDF.

Z IronPDF, nagłówki i stopki mogą zawierać proste treści tekstowe za pomocą klasy TextHeaderFooter - lub z obrazami i bogatą treścią HTML za pomocą klasy HtmlHeaderFooter.

using IronPdf;
using IronPdf.Rendering;

// Create a PDF from an existing HTML file with rendering options set up front
var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        // Margins are in millimeters
        MarginTop = 50,
        MarginBottom = 50,

        // Render the page's print stylesheet
        CssMediaType = PdfCssMediaType.Print,

        // Plain-text header: the document title, centered, above a divider line
        TextHeader = new TextHeaderFooter
        {
            CenterText = "{pdf-title}",
            DrawDividerLine = true,
            FontSize = 16
        },

        // Plain-text footer: date and time on the left, page numbers on the right
        TextFooter = new TextHeaderFooter
        {
            LeftText = "{date} {time}",
            RightText = "Page {page} of {total-pages}",
            DrawDividerLine = true,
            FontSize = 14
        }
    }
};

var pdf = renderer.RenderHtmlFileAsPdf("Assets/TestInvoice1.html");

pdf.SaveAs("Invoice.pdf");

// Open the result in the default PDF viewer
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
{
    FileName = "Invoice.pdf",
    UseShellExecute = true
});

Poznaj wszystkie opcje renderowania w następującym artykule: Jak używać opcji renderowania.

Nagłówki i stopki HTML

Klasa HtmlHeaderFooter pozwala na generowanie bogatych nagłówków i stopek za pomocą treści HTML5, które mogą nawet zawierać obrazy i arkusze stylów.

using IronPdf;

var renderer = new ChromePdfRenderer();

// An HTML footer can carry markup, styles and images.
// {page} and {total-pages} are filled in for every page.
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};

Dynamiczne dane w nagłówkach i stopkach PDF

Możemy "scalić" treść do tekstu, a nawet HTML nagłówków i stopek, używając symboli zastępczych, takich jak:

  • {page} dla bieżącego numeru strony
  • {total-pages} dla całkowitej liczby stron w PDF
  • {url} dla URL renderowanego PDF, jeśli został zrenderowany ze strony internetowej
  • {date} dla dzisiejszej daty
  • {time} dla bieżącego czasu
  • {html-title} dla <title> renderowanego dokumentu HTML
  • {pdf-title} dla tytułu dokumentu, który może być ustawiony za pomocą ChromePdfRenderOptions

Ustawienia konwersji HTML do PDF w C#

Istnieje wiele niuansów dotyczących tego, jak nasi użytkownicy i klienci mogą oczekiwać, że treść PDF będzie renderowana.
Klasa ChromePdfRenderer zawiera właściwość RenderingOptions, która może być używana do ustawiania tych opcji.

Na przykład możemy chcieć wybrać, aby akceptować tylko dyrektywy CSS3 w stylu "print":

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Render the page's @media print CSS rather than its screen styles
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

renderer.RenderHtmlAsPdf("<html><body><h1>Hello, World!</h1></body></html>").SaveAs("Output.pdf");

Możemy również chcieć zmienić rozmiar marginesów drukowania, aby stworzyć więcej białej przestrzeni na stronie, aby zrobić miejsce na duże nagłówki lub stopki, a nawet ustawić zerowe marginesy do komercyjnego drukowania broszur lub plakatów:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Page margins in millimeters. Larger margins leave room for headers and
// footers; set them to 0 for edge-to-edge brochures and posters.
renderer.RenderingOptions.MarginTop = 50;
renderer.RenderingOptions.MarginBottom = 50;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

Możemy chcieć włączyć lub wyłączyć obrazy tła z elementów HTML:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Include CSS background colors and images in the PDF (set false to drop them)
renderer.RenderingOptions.PrintHtmlBackgrounds = true;

var pdf = renderer.RenderHtmlAsPdf("<h1 style='background:#eee'>Hello, PDF!</h1>");

pdf.SaveAs("output.pdf");

Możliwe jest również ustawienie naszych wyjściowych PDF-ów, aby były renderowane na dowolnym wirtualnym rozmiarze papieru - w tym w rozmiarach portretowych i krajobrazowych, a nawet niestandardowych rozmiarach, które mogą być ustawione w milimetrach lub calach.

using IronPdf;
using IronPdf.Rendering;

var renderer = new ChromePdfRenderer();

// Standard paper sizes and orientation
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;

// Or a custom size, in millimeters or inches
// renderer.RenderingOptions.SetCustomPaperSizeinMilimeters(210, 297);
// renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

Poznaj wszystkie opcje renderowania w następującym artykule: "Jak używać opcji renderowania."


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

Microsoft MVP

Zobacz studium przypadku

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

Dyrektor technologiczny, OPYN

Zobacz studium przypadku

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

Główny inżynier oprogramowania, Agorus Build

Zobacz studium przypadku

Zastosuj szablonowanie HTML

Szablonowanie lub "tworzenie wsadowe" PDF-ów jest powszechnym wymaganiem dla programistów internetowych i stron internetowych.

Zamiast szablonowania samego dokumentu PDF, z IronPDF możemy szablonować nasz HTML, używając istniejących, dobrze sprawdzonych technologii. Gdy szablon HTML jest połączony z danymi z ciągu zapytania lub bazy danych, kończymy z dynamicznie generowanym dokumentem PDF.

W najprostszym przypadku, użycie metody C# String.Format jest skuteczne dla podstawowego przykładu.

using IronPdf;

var renderer = new ChromePdfRenderer();

// Insert a value into an HTML template with string.Format
string html = string.Format("<h1>Hello {0}!</h1>", "World");

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("Hello.pdf");

Jeśli plik HTML jest dłuższy, często możemy używać dowolnych symboli zastępczych, takich jak [[NAME]] i zastępować je później rzeczywistymi danymi.

Poniższy przykład utworzy 3 PDF-y, każdy spersonalizowany dla użytkownika.

using IronPdf;

var renderer = new ChromePdfRenderer();

// A template with a placeholder to replace
var htmlTemplate = "<p>[[NAME]]</p>";

var names = new[] { "John", "James", "Jenny" };

// One personalized PDF per name
foreach (var name in names)
{
    var htmlInstance = htmlTemplate.Replace("[[NAME]]", name);

    var pdf = renderer.RenderHtmlAsPdf(htmlInstance);

    pdf.SaveAs(name + ".pdf");
}

Zaawansowane szablonowanie z Handlebars.NET

Zaawansowaną metodą łączenia danych C# z HTML do generowania PDF jest użycie języka szablonów Handlebars.

Handlebars umożliwia tworzenie dynamicznego HTML z obiektów C# i instancji klas, w tym rekordów bazy danych. Handlebars jest szczególnie skuteczny tam, gdzie zapytanie może zwrócić nieznaną liczbę wierszy, na przykład przy generowaniu faktury.

Najpierw musimy dodać dodatkowy pakiet NuGet do naszego projektu: https://www.nuget.org/packages/Handlebars.NET/

using HandlebarsDotNet;

// A Handlebars template with two placeholders
var source =
    @"<div class=""entry"">
        <h1>{{title}}</h1>
        <div class=""body"">
            {{body}}
        </div>
    </div>";

// Compile it once, then fill it with any object that has matching properties
var template = Handlebars.Compile(source);

var data = new { title = "My new post", body = "This is my first post!" };

string html = template(data);

// html now contains:
//
// <div class="entry">
//   <h1>My new post</h1>
//   <div class="body">
//     This is my first post!
//   </div>
// </div>

Aby wyrenderować ten HTML, możemy po prostu użyć metody RenderHtmlAsPdf.

using HandlebarsDotNet;
using IronPdf;

// Fill the Handlebars template, then render the resulting HTML
var template = Handlebars.Compile("<h1>{{title}}</h1><p>{{body}}</p>");
string html = template(new { title = "My new post", body = "This is my first post!" });

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs("Handlebars.pdf");

Możesz dowiedzieć się więcej o języku szablonów Handlebars i jego implementacji w C# z GitHub.

Dodaj podziały stron za pomocą HTML5

Powszechnym wymaganiem w dokumencie PDF jest paginacja. Programiści muszą kontrolować, gdzie strony PDF zaczynają się i kończą, aby uzyskać czysty, czytelny układ.

Najłatwiejszym sposobem na to jest mniej znany trik CSS, który wprowadzi podział strony do dowolnego drukowanego dokumentu HTML.

<div style='page-break-after: always;'>&nbsp;</div>
HTML

Dostarczony HTML działa, ale nie jest najlepszą praktyką. Zalecamy dostosowanie atrybutu media jak w poniższym przykładzie. Taki schludny i uporządkowany sposób układania treści HTML na wielu stronach. Ponieważ IronPDF renderuje z typem mediów screen domyślnie, arkusz stylów media="print" jest stosowany tylko wtedy, gdy RenderingOptions.CssMediaType jest ustawiony na PdfCssMediaType.Print (zobacz Ustawienia konwersji powyżej).

<!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>This is Page 1</h1>
    </div>
    <div class="page">
      <h1>This is Page 2</h1>
    </div>
    <div class="page">
      <h1>This is Page 3</h1>
    </div>
  </body>
</html>
HTML

Jak to zrobić, zawiera więcej wskazówek i trików z podziałami stron.


Dołącz stronę tytułową do PDF

IronPDF ułatwia łączenie dokumentów PDF. Najczęstszym zastosowaniem tej techniki jest dodanie strony tytułowej lub tylnej do istniejącego zrenderowanego dokumentu PDF.

Aby to zrobić, najpierw renderujemy stronę tytułową, a następnie używamy statycznej metody PdfDocument.Merge(), aby połączyć oba dokumenty.

using IronPdf;

var renderer = new ChromePdfRenderer();

// The document body, rendered from a web page
var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");

// Prepend an existing PDF as the cover page. Merge returns a new document.
var cover = PdfDocument.FromFile("CoverPage.pdf");
var pdfMerged = PdfDocument.Merge(cover, pdf);

pdfMerged.SaveAs("Combined.pdf");

Pełny przykład kodu można znaleźć tutaj: Przykład kodu strony tytułowej PDF.


Dodaj znak wodny

Ostateczną funkcją C# PDF, którą obsługuje IronPDF, jest dodanie znaku wodnego do dokumentów. Może to być używane do dodania notatki na każdej stronie, że dokument jest "poufny" lub "próbka".

using IronPdf;
using IronPdf.Editing;

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");

// Stamp every page with a red "SAMPLE" in the middle, rotated 30 degrees at 50% opacity.
// The watermark is HTML, so any markup, styling or image can be used.
pdf.ApplyWatermark(
    "<h2 style='color:red; font-size:50px'>SAMPLE</h2>",
    rotation: 30,
    opacity: 50,
    verticalAlignment: VerticalAlignment.Middle,
    horizontalAlignment: HorizontalAlignment.Center);

pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");

Pełny przykład kodu można znaleźć tutaj: Przykład kodu znakowania wodnego PDF.


Pobierz kod źródłowy C#

Pełny darmowy konwerter HTML do PDF w C# Kod źródłowy dla tego samouczka jest dostępny do pobrania jako spakowany plik projektu Visual Studio 2022. Użyje on swojego silnika renderującego do generowania obiektów dokumentów PDF w C#.

Pobierz ten samouczek jako projekt Visual Studio

Darmowe pobranie zawiera wszystko, czego potrzebujesz, aby utworzyć PDF z HTML - w tym działające przykłady kodu C# PDF:

  1. Konwersja ciągu HTML na PDF za pomocą C#
  2. Plik HTML do PDF w C# (obsługujący CSS, JavaScript i obrazy)
  3. HTML do PDF w C# używając URL ("URL do PDF")
  4. Przykłady edycji i ustawień PDF w C#
  5. Renderowanie wykresów JavaScript canvas, takich jak d3.js, do PDF
  6. Biblioteka PDF dla C#

Odwołanie do klasy

Programiści mogą być również zainteresowani odwołaniem do klasy IronPdf.PdfDocument:

https://ironpdf.com/object-reference/api/IronPdf.PdfDocument.html

Ten model obiektowy pokazuje, jak dokumenty PDF mogą być:

  • Szyfrowane i chronione hasłem
  • Edytowane lub 'stemplowane' nową treścią HTML
  • Wzbogacane o obrazy na pierwszym planie i w tle
  • Łączone, dołączane, przycinane i dzielone na poziomie strony lub dokumentu
  • Parsowane w celu wyodrębnienia tekstu i obrazów, lub przetwarzane OCR za pomocą pakietu IronOCR

Blazor HTML do PDF

Dodanie funkcji HTML do PDF do serwera Blazor jest łatwe, wystarczy:

  1. Utwórz nowy projekt serwera Blazor lub użyj istniejącego
  2. Dodaj bibliotekę IronPDF do swojego projektu za pomocą NuGet
  3. Dodaj nowy komponent Razor lub użyj istniejącego
  4. Dodaj InputTextArea i połącz go z IronPDF
  5. Pozwól IronPDF zająć się resztą i wdroż

Aby uzyskać więcej informacji, przejdź do pełnego przewodnika krok po kroku dotyczącego konwersji HTML do PDF w aplikacjach Blazor.

PDF wygenerowany z strony serwera Blazor za pomocą IronPDF

Porównanie z innymi bibliotekami PDF

IronPDF to potężna i pełna funkcji biblioteka PDF dostosowana do nowoczesnych programistów .NET. Dzięki natywnej konwersji HTML do PDF napędzanej zaawansowanym silnikiem Chromium, intuicyjnemu API i regularnym aktualizacjom, upraszcza rozwój, zapewniając jednocześnie wysokiej jakości wyniki. Przyjrzyjmy się bliżej, jak wypada w porównaniu z innymi narzędziami:

PDFSharp

  • Podstawowe funkcje: PDFsharp to biblioteka open-source (MIT) do tworzenia i edytowania dokumentów PDF w kodzie zarządzanym. Nie ma silnika renderującego HTML, więc konwersja treści internetowych do PDF wymaga oddzielnego renderera zewnętrznego.
  • Nowoczesne standardy: IronPDF wykorzystuje nowoczesne technologie internetowe, w tym HTML, CSS i JavaScript, dzięki swojemu silnikowi opartemu na Chromium, zapewniając, że PDF-y zachowują współczesny wygląd i styl.
  • Wsparcie i aktualizacje: PDFsharp jest open source i wydaje wersję co kilka miesięcy, z komercyjnym wsparciem sprzedawanym oddzielnie przez jego opiekuna. IronPDF wydaje miesięczne aktualizacje i poprawki bezpieczeństwa, a każda licencja obejmuje profesjonalne wsparcie inżynieryjne, co ma znaczenie dla aplikacji korporacyjnych.

wkhtmltopdf

  • Łatwość integracji: wkhtmltopdf to narzędzie wiersza poleceń z biblioteką C; nie ma oficjalnego pakietu .NET, więc używanie go z .NET oznacza uruchamianie natywnego pliku binarnego (lub wywoływanie go przez zewnętrzny wrapper, taki jak DinkToPdf) i dostarczanie tego pliku binarnego dla każdej platformy, na którą wdrażasz.
  • Technologia renderowania: wkhtmltopdf renderuje za pomocą QtWebKit, forka WebKit, który Qt zdeprecjonował w 2015 roku i usunął w Qt 5.6, więc nowoczesne funkcje JavaScript i CSS nie są obsługiwane, zwłaszcza na dynamicznych, bogatych w treść stronach internetowych. Silnik Chromium IronPDF renderuje aktualne standardy internetowe.
  • Ciągły rozwój: ostatnia wersja wkhtmltopdf to 0.12.6 z czerwca 2020 roku, a jego repozytorium GitHub zostało zarchiwizowane w styczniu 2023 roku, więc nie ma wsparcia od dostawcy. IronPDF nadal się rozwija, z miesięcznymi aktualizacjami i dedykowaną obsługą klienta.

iTextSharp

  • Renderowanie HTML do PDF: iText konwertuje HTML za pomocą swojego oddzielnego dodatku pdfHTML, silnika układu CSS, a nie przeglądarki, a linia iTextSharp 5 jest teraz utrzymywana tylko w zakresie poprawek bezpieczeństwa. IronPDF renderuje HTML z wbudowanym silnikiem Chromium w pakiecie podstawowym, bez potrzeby dodatków.
  • Doświadczenie programisty: API iText działa na poziomie obiektów PDF i elementów układu, co jest potężne, ale oznacza więcej kodu dla codziennych zadań. IronPDF oferuje czyste i intuicyjne API C#, upraszczając kodowanie i przyspieszając dostarczanie projektów.
  • Utrzymanie i wsparcie: Darmowe użycie iText jest objęte licencją AGPL, a wsparcie dostawcy jest zarezerwowane dla licencji komercyjnych, a iTextSharp 5.x jest na końcu życia, z wyjątkiem poprawek bezpieczeństwa. IronPDF obejmuje profesjonalne wsparcie i miesięczne aktualizacje z każdą licencją.

Aspose.PDF

  • Jakość konwersji: Aspose.PDF konwertuje HTML za pomocą własnego silnika układu, a nie przeglądarki. Jego dokumentacja konwertuje stronę internetową, najpierw pobierając HTML za pomocą HttpClient do strumienia i przekazując go do Document z HtmlLoadOptions, zamiast renderować bezpośrednio z URL. W naszym teście r/nfl poniżej, wynik był prawie pusty: logo społeczności, jeden nagłówek i kilka pustych pól. Silnik Chromium IronPDF renderuje URL bezpośrednio, w tym JavaScript.
  • Użyteczność API: API Aspose.PDF może być rozbudowane, podczas gdy IronPDF koncentruje się na doświadczeniu przyjaznym dla programisty, które minimalizuje czas konfiguracji i zwiększa produktywność.
  • Wierność wyjściowa: Ponieważ IronPDF renderuje z Chromium, PDF odpowiada temu, co Chrome pokazuje dla tego samego HTML, co sprawia, że projektowanie i debugowanie są przewidywalne dla generowania PDF-ów na dużą skalę.

Syncfusion PDF

  • Złożoność API: Syncfusion PDF to zdolna biblioteka z większą powierzchnią API do nauki. IronPDF, przeciwnie, zapewnia prosty API do szybkiej integracji.
  • Silnik renderujący: Konwerter HTML Syncfusion teraz używa silnika Chromium Blink; jego starsze silniki WebKit i Internet Explorer zostały oznaczone jako przestarzałe w Essential Studio 2022 Volume 3. W naszym teście r/nfl poniżej, wynik Syncfusion zachował główny kanał, ale pominął panele nawigacyjne i społecznościowe, podczas gdy silnik Chromium IronPDF zrenderował całą stronę.
  • Poza konwersją: Pakiet IronPDF obejmuje również podpisy cyfrowe, adnotacje, wypełnianie formularzy i stemplowanie kodów kreskowych, więc ta sama biblioteka obsługuje resztę przepływu pracy z dokumentami.

Porównanie renderowania

Aby porównać jakość konwersji HTML do PDF tych bibliotek, użyliśmy strony społeczności Reddit, r/nfl, która zawiera dynamiczną treść, aktualizacje na żywo, nowoczesny CSS i elementy oparte na JavaScript:

https://www.reddit.com/r/nfl/

Zrzut ekranu strony Reddit r/nfl, jak pokazano w Chrome

Oto wyniki z jednego uruchomienia z domyślnymi ustawieniami każdej biblioteki. Syncfusion i Aspose.PDF działały jako wersje ewaluacyjne, dlatego ich wynik zawiera znaki wodne ewaluacyjne (kliknij każdy obraz, aby go powiększyć):

IronPDF

Wynik konwersji IronPDF strony Reddit r/nfl z HTML do PDFDobrze sformatowany i wizualnie dokładny PDF, zachowujący dynamiczną treść i nowoczesne stylizacje.

SyncFusion

Wynik konwersji Syncfusion strony Reddit r/nfl z HTML do PDFPrzekonwertowano z wersją próbną. Główny kanał, treść postów i stylizacja przeszły w wąskim układzie jednokolumnowym, ale lewa nawigacja i prawy panel społecznościowy zostały pominięte.

Aspose.PDF

Wynik konwersji Aspose.PDF strony Reddit r/nfl z HTML do PDFWersja ewaluacyjna; wymagała pobrania HTML najpierw (Aspose.PDF ładuje HTML ze strumienia, a nie z URL). Wynik był prawie pusty: logo społeczności, jeden nagłówek i kilka pustych pól.

Wkhtmltopdf

Wynik konwersji wkhtmltopdf strony Reddit r/nfl z HTML do PDFwkhtmltopdf zakończył konwersję, ale wynik to tekst i obrazy strony bez jej układu, stylizacji, dynamicznych elementów czy interaktywności. To sprawia, że wkhtmltopdf jest nieodpowiedni dla nowoczesnych, dynamicznych stron internetowych.
Zwróć uwagę: PDFsharp nie ma silnika renderującego HTML, a iText konwertuje HTML tylko przez swój oddzielny dodatek pdfHTML, więc żaden z nich nie został uwzględniony w tym teście renderowania przeglądarki.

Wniosek

Dla programistów .NET poszukujących nowoczesnego i niezawodnego rozwiązania PDF, IronPDF jest mocnym wyborem. Jego konwersja HTML do PDF oparta na Chromium, łatwość użycia, regularne aktualizacje i szeroki zestaw funkcji czynią go najlepszym wyborem. Niezależnie od tego, czy pracujesz nad małym projektem, czy dużą aplikacją korporacyjną, IronPDF zwiększa produktywność, unikając ryzyka związanego z przestarzałymi lub nieobsługiwanymi bibliotekami. Zaprojektowany do zastosowań komercyjnych, IronPDF utrzymuje Twoje projekty na utrzymywanej i wspieranej bibliotece.

W naszym teście z rzeczywistą dynamiczną stroną internetową, IronPDF wyprodukował najbardziej kompletną i dokładną renderowanie. Syncfusion pominął panele nawigacyjne i społecznościowe. Aspose.PDF wymagał najpierw pobrania HTML i nadal renderował prawie żadną część strony. wkhtmltopdf wyprodukował tekst i obrazy bez stylizacji strony, co jest słabym dopasowaniem do nowoczesnych stron.

Dla nowoczesnych przepływów pracy HTML do PDF, ta kombinacja dokładności renderowania i małego, czytelnego API to to, co wyróżnia IronPDF.

Doświadcz pełnego zestawu funkcji IronPDF, który z łatwością konwertuje dynamiczny, ciężki CSS HTML do PDF. Wypróbuj teraz z naszą darmową wersją próbną.


Obejrzyj wideo z samouczkiem HTML do PDF w C#

Z dokumentem PDF możesz odwiedzić następujący link, aby dowiedzieć się, jak ustawić Chrome, aby otwierał PDF-y w przeglądarce zamiast je pobierać.

Pierwszy krok:
arrow pointer

Często Zadawane Pytania

Jak przekonwertować HTML na PDF używając IronPDF w C#?

Aby przekonwertować HTML na PDF używając IronPDF, musisz zainicjować ChromePdfRenderer, wyrenderować zawartość HTML jako PDF używając metody RenderHtmlAsPdf, a następnie zapisać PDF do pliku.

Jakie są wymagania systemowe dla IronPDF?

IronPDF obsługuje .NET 10, .NET 9, .NET 8, .NET 7, .NET 6, .NET 5, .NET Core, .NET Standard i .NET Framework na Windows, macOS, Linux, Docker, Azure i AWS.

Czy mogę używać IronPDF z innymi językami programowania?

Tak, IronPDF można używać z wieloma językami zarówno wewnątrz, jak i poza ekosystemem .NET, w tym F#, VB.NET, Python, Java i Node.js.

Jak mogę dodać niestandardowe nagłówki i stopki do PDF używając IronPDF?

Z IronPDF możesz dodawać nagłówki i stopki używając klasy TextHeaderFooter dla treści tekstowych lub klasy HtmlHeaderFooter dla bogatej treści HTML.

Czy możliwe jest renderowanie PDF z istniejącego URL za pomocą IronPDF?

Tak, możesz renderować PDF z istniejącego URL używając metody RenderUrlAsPdf w IronPDF.

Czy IronPDF obsługuje zaawansowane renderowanie CSS i JavaScript?

Tak, IronPDF obsługuje zaawansowane CSS3 i JavaScript, w tym jQuery i AJAX, zapewniając dokładne renderowanie nowoczesnych projektów webowych.

Czy mogę zastosować szablony HTML do masowego tworzenia PDF w IronPDF?

Tak, możesz używać technik szablonowania C#, w tym String.Format i Handlebars.NET, aby dynamicznie generować PDF-y z IronPDF.

Jak IronPDF porównuje się z innymi bibliotekami PDF?

IronPDF renderuje HTML z wbudowanym silnikiem Chromium, dostarcza miesięczne aktualizacje i ma kompaktowe API C#. Poradnik porównuje go z PdfSharp, wkhtmltopdf, iTextSharp, Aspose.PDF i Syncfusion PDF, w tym test renderowania dynamicznej strony internetowej obok siebie.

Czy mogę dodać znaki wodne do PDF-ów za pomocą IronPDF?

Tak, IronPDF pozwala na dodawanie tekstowych lub obrazkowych znaków wodnych do dokumentów PDF.

Czy jest dostępna wersja próbna IronPDF?

Tak, możesz zarejestrować się na darmowy 30-dniowy klucz próbny, aby przetestować funkcje IronPDF przed zakupem licencji.

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ącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 21,062,892Wersja:2026.9właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

OR
bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD