Konwertuj HTML na PDF w ASP.NET Core z C# -- Przewodnik IronPDF
IronPDF konwertuje HTML na PDF w ASP.NET przy użyciu silnika renderującego opartego na przeglądarce Chrome, który przekształca ciągi HTML, pliki lub adresy URL w dokumenty PDF o idealnej rozdzielczości za pomocą zaledwie kilku wierszy kodu C#.
Gdy aplikacja ASP.NET musi generować faktury, raporty lub dokumenty zgodności na żądanie, jakość pliku PDF ma znaczenie. Użytkownicy końcowi oczekują sformatowanego wyniku, który wygląda dokładnie tak samo jak oryginalny kod HTML — wraz ze stylami CSS, niestandardowymi czcionkami i układami tabel. Wyzwaniem jest znalezienie biblioteki, która poradzi sobie z tą konwersją bez konieczności stosowania skomplikowanych obejść w przypadku nowoczesnych treści opartych na CSS lub JavaScript.
IronPDF to biblioteka PDF w języku C# stworzona specjalnie na potrzeby tego wyzwania. Jego silnik renderujący oparty na Chrome przetwarza HTML w taki sam sposób, jak prawdziwa przeglądarka, co oznacza, że właściwości CSS3, zapytania o media oraz treści renderowane przez JavaScript wyświetlają się poprawnie w końcowym dokumencie. Poniższe sekcje omawiają instalację, trzy podstawowe metody renderowania, obsługę danych formularzy, zaawansowane funkcje formatowania oraz obsługę uwierzytelniania — wszystko, co jest potrzebne do zintegrowania gotowego do produkcji generowania plików PDF z aplikacją .NET Core.
Jak szybko przekonwertować HTML na PDF w ASP.NET Core?
Rozpoczęcie konwersji HTML do PDF w ASP.NET Core wymaga zaledwie kilku wierszy kodu. Najpierw zainstaluj IronPDF za pomocą menedżera pakietów NuGet:
Install-Package IronPdf
Po zainstalowaniu klasa ChromePdfRenderer stanowi główny punkt wejścia dla wszystkich operacji renderowania. Oto kompletny przykład pokazujący, jak przekonwertować ciąg znaków HTML na plik PDF do pobrania w kontrolerze ASP.NET Core MVC:
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
Skopiuj i uruchom ten fragment kodu.
using IronPdf; using Microsoft.AspNetCore.Mvc; // program.cs var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); var app = builder.Build(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run(); // PdfController.cs public class PdfController : Controller { public IActionResult GeneratePdf() { var renderer = new ChromePdfRenderer(); string html = @" <h1>Invoice #2024-001</h1> <p>Generated on: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p> <table> <tr><th>Item</th><th>Price</th></tr> <tr><td>Professional License</td><td>$799</td></tr> </table>"; var pdf = renderer.RenderHtmlAsPdf(html); return File(pdf.BinaryData, "application/pdf", "invoice.pdf"); } } -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Jak wygląda wygenerowany plik PDF?

Klasa ChromePdfRenderer obsługuje wszystkie złożone operacje renderowania, zapewniając prawidłowe wyświetlenie struktury HTML, stylów CSS, a nawet kodu JavaScript w końcowym pliku PDF. Wartością zwracaną jest obiekt PdfDocument, którego właściwość BinaryData można przesłać bezpośrednio do przeglądarki jako plik do pobrania.
Jak wybrać odpowiednią metodę renderowania dla danego źródła?
IronPDF oferuje trzy podstawowe metody renderowania, z których każda jest przeznaczona dla konkretnego źródła treści. Zrozumienie, która metoda pasuje do danego scenariusza, pozwala uniknąć niepotrzebnej złożoności i zapewnia przejrzystość kodu kontrolera.
| Typ źródła | Metoda | Najlepsze dla |
|---|---|---|
| Ciąg znaków HTML w pamięci | RenderHtmlAsPdf |
Raporty oparte na bazach danych, faktury szablonowe, treści dynamiczne |
| Plik HTML na dysku | RenderHtmlFileAsPdf |
Szablony statyczne w katalogu wwwroot, układy dostarczone przez agencję projektową |
| Aktywny adres URL | RenderUrlAsPdf |
Archiwizacja stron, przechwytywanie aplikacji SPA po renderowaniu JavaScript |
Jak konwertować dynamiczne ciągi znaków HTML?
Podczas pracy z treściami dynamicznymi, takimi jak raporty oparte na bazach danych, należy używać RenderHtmlAsPdf do bezpośredniej konwersji ciągów HTML. Ta metoda akceptuje dowolny poprawny kod HTML i zwraca w pełni wyrenderowany plik PDF:
var renderer = new ChromePdfRenderer();
string htmlContent = BuildDynamicHtml(); // your method to generate HTML
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("dynamic-report.pdf");
var renderer = new ChromePdfRenderer();
string htmlContent = BuildDynamicHtml(); // your method to generate HTML
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("dynamic-report.pdf");
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = BuildDynamicHtml() ' your method to generate HTML
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("dynamic-report.pdf")

To podejście sprawdza się dobrze przy generowaniu dokumentów PDF z szablonów HTML wypełnionych danymi w czasie rzeczywistym, przesłanymi formularzami lub dowolną treścią generowaną dynamicznie. Silnik renderujący zachowuje wszystkie style CSS, w tym niestandardowe czcionki, kolory i formatowanie tabel. Gdy kod HTML odwołuje się do zewnętrznych arkuszy stylów lub obrazów przy użyciu ścieżek względnych, należy przekazać baseUrl jako drugi argument, aby renderer mógł poprawnie rozpoznać te zasoby.
Jak konwertować statyczne pliki HTML z dysku?
W przypadku szablonów HTML przechowywanych jako pliki fizyczne należy użyć RenderHtmlFileAsPdf, aby je przekonwertować bez konieczności wczytywania ich najpierw do pamięci. Jest to wydajne w przypadku dużych szablonów i pozwala uniknąć łączenia ciągów znaków:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report-template.html");
pdf.SaveAs("report.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report-template.html");
pdf.SaveAs("report.pdf");
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report-template.html")
pdf.SaveAs("report.pdf")
Ta metoda automatycznie rozpoznaje ścieżki względne dla arkuszy stylów CSS, obrazów i innych zasobów zewnętrznych, do których odwołuje się plik. Działa to dobrze, gdy zespół projektantów przechowuje oddzielne pliki szablonów HTML poza kodem źródłowym aplikacji napisanym w języku C#. Metoda obsługuje zapytania o media drukarskie CSS oraz niestandardowe czcionki, dzięki czemu szablony stworzone dla środowisk drukarskich są wiernie renderowane bez dodatkowej konfiguracji.
Jak przekonwertować adres URL strony internetowej na plik PDF?
Aby przechwycić aktywną stronę internetową lub wyrenderować stronę dostępną pod adresem URL jako plik PDF, użyj RenderUrlAsPdf. Ta metoda uruchamia silnik Chrome, przechodzi do adresu URL, czeka na pełne załadowanie strony, a następnie przechwytuje wyrenderowany wynik:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("webpage.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay(1000);
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.SaveAs("webpage.pdf");
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.RenderDelay(1000)
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen
Dim pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/PDF")
pdf.SaveAs("webpage.pdf")

Opcja WaitFor.RenderDelay nakazuje rendererowi wstrzymanie się po załadowaniu strony przed przechwyceniem. Jest to przydatne w przypadku aplikacji jednostronicowych, które budują swój DOM za pomocą JavaScript po otrzymaniu początkowej odpowiedzi HTML. Ustawienie EnableJavaScript = true aktywuje pełny silnik JavaScript przeglądarki Chrome, dzięki czemu wykresy, tabele danych i inne elementy renderowane przez JavaScript pojawiają się w pliku PDF tak samo, jak w przeglądarce.
Jak radzisz sobie z danymi formularzy i żądaniami POST?
Przetwarzanie danych z formularzy przed wygenerowaniem pliku PDF jest powszechną praktyką w aplikacjach ASP.NET — potwierdzenia zamówień, listy przewozowe i pokwitowania są tworzone zgodnie z tym modelem. Podejście polega na powiązaniu przesłanych danych formularza z modelem, zbudowaniu ciągu HTML na podstawie tego modelu, a następnie renderowaniu tego ciągu jako pliku PDF:
[HttpPost]
public IActionResult ProcessFormToPdf(OrderModel model)
{
var renderer = new ChromePdfRenderer();
string html = $@"
<h2>Order Confirmation</h2>
<p>Customer: {model.CustomerName}</p>
<p>Order Date: {model.OrderDate:yyyy-MM-dd}</p>
<ul>
{string.Join("", model.Items.Select(i => $"<li>{i.Name} -- ${i.Price}</li>"))}
</ul>
<p><strong>Total: ${model.Total}</strong></p>";
var pdf = renderer.RenderHtmlAsPdf(html);
string fileName = $"order-{model.OrderId}.pdf";
return File(pdf.BinaryData, "application/pdf", fileName);
}
[HttpPost]
public IActionResult ProcessFormToPdf(OrderModel model)
{
var renderer = new ChromePdfRenderer();
string html = $@"
<h2>Order Confirmation</h2>
<p>Customer: {model.CustomerName}</p>
<p>Order Date: {model.OrderDate:yyyy-MM-dd}</p>
<ul>
{string.Join("", model.Items.Select(i => $"<li>{i.Name} -- ${i.Price}</li>"))}
</ul>
<p><strong>Total: ${model.Total}</strong></p>";
var pdf = renderer.RenderHtmlAsPdf(html);
string fileName = $"order-{model.OrderId}.pdf";
return File(pdf.BinaryData, "application/pdf", fileName);
}
Imports System
Imports System.Linq
Imports Microsoft.AspNetCore.Mvc
<HttpPost>
Public Function ProcessFormToPdf(model As OrderModel) As IActionResult
Dim renderer = New ChromePdfRenderer()
Dim html As String = $"
<h2>Order Confirmation</h2>
<p>Customer: {model.CustomerName}</p>
<p>Order Date: {model.OrderDate:yyyy-MM-dd}</p>
<ul>
{String.Join("", model.Items.Select(Function(i) $"<li>{i.Name} -- ${i.Price}</li>"))}
</ul>
<p><strong>Total: ${model.Total}</strong></p>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim fileName As String = $"order-{model.OrderId}.pdf"
Return File(pdf.BinaryData, "application/pdf", fileName)
End Function
Jak wygląda interfejs formularza?

Jak dane formularza pojawiają się w wygenerowanym pliku PDF?

W przypadku bardziej zaawansowanych scenariuszy dokumentów można zintegrować formularze PDF lub edytować istniejące szablony PDF z wstępnie wypełnionymi polami. Biblioteka obsługuje również podpisy cyfrowe dla dokumentów prawnych i umów, umożliwiając dodawanie podpisów weryfikowalnych kryptograficznie do każdego wygenerowanego dokumentu.
Ważną kwestią przy osadzaniu danych użytkownika w ciągach HTML jest ich oczyszczanie. Zawsze należy stosować escape w ciągach znaków dostarczonych przez użytkownika przed wstawieniem ich do kodu HTML, aby zapobiec problemom związanym z wstrzyknięciem kodu. Proste wywołanie System.Web.HttpUtility.HtmlEncode(model.CustomerName) w każdym polu zapewnia bezpieczeństwo szablonu przed przekazaniem go do renderera.
Jak dodać profesjonalne formatowanie, nagłówki i znaki wodne?
Jak skonfigurować nagłówki, stopki i znaki wodne?
Profesjonalne dokumenty PDF często wymagają nagłówków i stopek na każdej stronie, a także znaków wodnych w przypadku dokumentów roboczych lub poufnych. IronPDF obsługuje zarówno właściwości obiektu RenderingOptions, jak i metodę ApplyWatermark w wynikowym PdfDocument:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
MaxHeight = 25,
HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
MaxHeight = 20,
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.ApplyWatermark("<h2 style='color:red;opacity:0.3'>CONFIDENTIAL</h2>",
30, VerticalAlignment.Middle, HorizontalAlignment.Center);
pdf.SaveAs("report-with-watermark.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
MaxHeight = 25,
HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
MaxHeight = 20,
HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
};
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.ApplyWatermark("<h2 style='color:red;opacity:0.3'>CONFIDENTIAL</h2>",
30, VerticalAlignment.Middle, HorizontalAlignment.Center);
pdf.SaveAs("report-with-watermark.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
.MaxHeight = 25,
.HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>"
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
.MaxHeight = 20,
.HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
}
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.ApplyWatermark("<h2 style='color:red;opacity:0.3'>CONFIDENTIAL</h2>", 30, VerticalAlignment.Middle, HorizontalAlignment.Center)
pdf.SaveAs("report-with-watermark.pdf")

Symbole zastępcze {page} i {total-pages} w kodzie HTML stopki są automatycznie zastępowane w momencie renderowania, dzięki czemu otrzymujesz prawidłowe numery stron bez konieczności dodatkowej obróbki. Można również dodać numery stron, obrazy tła lub nakładki na pierwszym planie oraz niestandardowe tekstowe lub graficzne stemple.
Jak korzystać z CSS Print Media do sterowania układem plików PDF?
Aby zapewnić zgodność pliku PDF z oczekiwaniami, należy użyć reguł CSS @media print oraz ustawienia PdfCssMediaType.Print. IronPDF w pełni obsługuje kontrolę podziału stron i niestandardowe rozmiary papieru:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.ViewPortWidth = 1024;
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
string html = @"
<style>
@media print {
.no-print { display: none; }
body { font-size: 12pt; }
.page-break { page-break-after: always; }
}
@page {
size: A4;
margin: 1cm;
}
</style>
<div class='content'>
<h1>Professional Report</h1>
<div class='page-break'></div>
<h2>Section 2</h2>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.ViewPortWidth = 1024;
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 10;
renderer.RenderingOptions.MarginRight = 10;
string html = @"
<style>
@media print {
.no-print { display: none; }
body { font-size: 12pt; }
.page-break { page-break-after: always; }
}
@page {
size: A4;
margin: 1cm;
}
</style>
<div class='content'>
<h1>Professional Report</h1>
<div class='page-break'></div>
<h2>Section 2</h2>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
renderer.RenderingOptions.ViewPortWidth = 1024
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
renderer.RenderingOptions.MarginLeft = 10
renderer.RenderingOptions.MarginRight = 10
Dim html As String = "
<style>
@media print {
.no-print { display: none; }
body { font-size: 12pt; }
.page-break { page-break-after: always; }
}
@page {
size: A4;
margin: 1cm;
}
</style>
<div class='content'>
<h1>Professional Report</h1>
<div class='page-break'></div>
<h2>Section 2</h2>
</div>"
Dim pdf = renderer.RenderHtmlAsPdf(html)

Zastosowanie CSS do drukowania gwarantuje, że dokumenty PDF zachowają profesjonalne formatowanie, jednocześnie ukrywając zbędne elementy stron internetowych, takie jak menu nawigacyjne czy interaktywne przyciski. Ustawienie CssMediaType = PdfCssMediaType.Print nakazuje rendererowi zastosowanie reguł @media print zamiast stylów ekranowych, co zazwyczaj usuwa dekoracje tła i dostosowuje typografię do wydruku PRINT. Można również skonfigurować niestandardowe marginesy dla każdej strony oraz kontrolować orientację i obrót strony w przypadku raportów w formacie szerokim lub obróconych.
Specyfikacja W3C CSS Paged Media określa, jak właściwości takie jak @page, page-break-before i widows powinny zachowywać się w wydruku stroniczonym. Silnik IronPDF dla przeglądarki Chrome ściśle przestrzega tej specyfikacji, dzięki czemu style napisane zgodnie ze standardem CSS są dokładnie przekładane do pliku PDF bez konieczności ręcznych poprawek.
Jak radzisz sobie z uwierzytelnianiem na stronach chronionych?
W przypadku aplikacji wymagających zabezpieczeń IronPDF obsługuje różne metody uwierzytelniania, w tym pliki cookie, nagłówki żądań HTTP oraz poświadczenia sieciowe. Pozwala to na renderowanie stron, które wymagają zalogowanej sesji lub podstawowego uwierzytelniania:
var renderer = new ChromePdfRenderer();
renderer.RequestContext.Cookies.Add(new Cookie
{
Name = "SessionId",
Value = "your-session-token",
Domain = "example.com"
});
renderer.ChromePdfRenderOptions.HttpLoginCredentials = new HttpLoginCredentials
{
Username = "user",
Password = "password"
};
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/protected/report");
var renderer = new ChromePdfRenderer();
renderer.RequestContext.Cookies.Add(new Cookie
{
Name = "SessionId",
Value = "your-session-token",
Domain = "example.com"
});
renderer.ChromePdfRenderOptions.HttpLoginCredentials = new HttpLoginCredentials
{
Username = "user",
Password = "password"
};
var pdf = renderer.RenderUrlAsPdf("https://app.example.com/protected/report");
Dim renderer = New ChromePdfRenderer()
renderer.RequestContext.Cookies.Add(New Cookie With {
.Name = "SessionId",
.Value = "your-session-token",
.Domain = "example.com"
})
renderer.ChromePdfRenderOptions.HttpLoginCredentials = New HttpLoginCredentials With {
.Username = "user",
.Password = "password"
}
Dim pdf = renderer.RenderUrlAsPdf("https://app.example.com/protected/report")
Można również zaszyfrować wynikowy plik PDF za pomocą hasła właściciela i hasła użytkownika, ograniczając takie działania jak drukowanie, kopiowanie lub edycja. Połączenie renderowania opartego na uwierzytelnianiu z uprawnieniami na poziomie pliku PDF zapewnia kontrolę zarówno nad tym, kto może wygenerować dokument, jak i nad tym, co odbiorcy mogą z nim zrobić po jego otrzymaniu.
W środowiskach Enterprise warto rozważyć użycie asynchronicznego API renderowania podczas generowania plików PDF w ramach modułów obsługi żądań sieciowych. Renderowanie asynchroniczne pozwala zachować wolną pulę wątków ASP.NET podczas przetwarzania dokumentu przez silnik Chrome, co poprawia przepustowość przy obciążeniu równoległym. Biblioteka obsługuje również renderowanie wielowątkowe w scenariuszach generowania dokumentów w trybie wsadowym.
Dlaczego silnik renderujący Chrome ma znaczenie dla konwersji HTML do PDF?
Większość bibliotek do generowania plików PDF działa poprzez samodzielne parsowanie kodu HTML przy użyciu niestandardowego silnika. Oznacza to, że obsługują one tylko podzbiór właściwości CSS, nie obsługują wykonywania kodu JavaScript i mają trudności z nowoczesnymi technikami układania stron, takimi jak CSS Grid lub Flexbox. IronPDF stosuje inne podejście, wykorzystując silnik Chrome — tę samą technologię, która napędza przeglądarkę Google Chrome.
W praktyce oznacza to, że każda strona HTML wyświetlana poprawnie w przeglądarce Chrome zostanie poprawnie wyrenderowana jako plik PDF za pomocą IronPDF. Eliminuje to typowy rodzaj błędów, w których wynikowy plik PDF odbiega od oczekiwanego wyglądu, ponieważ silnik renderujący interpretuje CSS inaczej niż przeglądarka używana przez programistę podczas projektowania.
Dokumentacja MDN Web Docs dotycząca CSS Paged Media oraz dokumentacja Microsoft ASP.NET Core opisują funkcje, które IronPDF obsługuje dzięki swojej platformie opartej na przeglądarce Chrome. Programiści zaznajomieni już ze standardowymi językami HTML, CSS i JavaScript mogą wykorzystać tę wiedzę bezpośrednio do generowania plików PDF bez konieczności nauki oddzielnego języka do tworzenia układów dokumentów.
Opcje renderowania IronPDF udostępniają kontrolki do ustawiania rozmiaru papieru, marginesów, wykonywania kodu JavaScript oraz opóźnień renderowania. Biblioteka obsługuje tekst w formacie UTF-8 i międzynarodowe zestawy znaków, czcionki internetowe odwołujące się do Google Fonts lub plików lokalnych, a nawet może konwertować dokumenty Markdown do formatu PDF. Ze względu na wymagania dotyczące archiwizacji lub zgodności z normami dostępności obsługuje formaty wyjściowe PDF/A i PDF/UA. Biblioteka działa w systemach Windows, Linux i macOS oraz jest wdrażana w Azure i AWS bez dodatkowej konfiguracji.
Jakie są Twoje kolejne kroki?
Konwersja HTML do PDF w ASP.NET C# za pomocą IronPDF zapewnia aplikacji niezawodny, dokładny jak w przeglądarce proces generowania dokumentów. Trzy metody renderowania — ciąg HTML, plik HTML i adres URL — obejmują pełen zakres źródeł treści, z którymi można spotkać się w praktyce. Zaawansowane funkcje, takie jak nagłówki, stopki, znaki wodne i CSS do drukowania, pozwalają uzyskać profesjonalny wynik bez konieczności ręcznej obróbki pliku PDF.
Kolejnym krokiem jest zainstalowanie pakietu NuGet i uruchomienie przykładowego programu szybkiego startu z pierwszej sekcji tego przewodnika. Następnie zapoznaj się z kompletnym samouczkiem dotyczącym języka C# i plików PDF, aby uzyskać bardziej szczegółowe informacje na temat struktury dokumentów, lub przejrzyj przewodnik po edycji plików PDF, aby dowiedzieć się, jak łączyć, dzielić, dodawać adnotacje i wyodrębniać zawartość z istniejących plików PDF.
Jeśli Twój projekt dotyczy Blazora, samouczek Blazor PDF omawia integrację po stronie serwera oraz integrację z WebAssembly. W przypadku projektów MVC przewodnik MVC Core PDF oraz przewodnik Razor Pages obejmują renderowanie oparte na szablonach z widokami .cshtml. W celu debugowania i optymalizacji wydajności IronPDF zapewnia niestandardowe logowanie oraz wskazówki dotyczące wydajności, które pomagają zidentyfikować wąskie gardła w procesach generowania dużych ilości dokumentów.
Rozpocznij bezpłatny okres próbny, aby przetestować wszystkie funkcje biblioteki w swoim własnym projekcie przed zakupem licencji. W przypadku wdrożeń produkcyjnych dostępne są opcje licencyjne dla indywidualnych programistów, zespołów oraz scenariuszy redystrybucji w przedsiębiorstwach.
Często Zadawane Pytania
Jak przekonwertować HTML na PDF w ASP.NET Core?
Zainstaluj IronPDF za pomocą NuGet, utwórz instancję ChromePdfRenderer i wywołaj metodę RenderHtmlAsPdf z ciągiem HTML. Renderer zwraca obiekt PdfDocument, którego dane BinaryData można przesyłać strumieniowo do przeglądarki.
Dlaczego IronPDF nadaje się do konwersji HTML na PDF?
IronPDF wykorzystuje silnik renderujący Chrome, dzięki czemu każda strona HTML wyświetlana poprawnie w przeglądarce Chrome jest poprawnie renderowana jako plik PDF. Dotyczy to również CSS3, treści renderowanych przez JavaScript, czcionek internetowych oraz układów responsywnych.
Czy w ASP.NET można generować faktury i raporty za pomocą IronPDF?
Tak. Utwórz ciąg HTML na podstawie modelu danych, przekaż go do RenderHtmlAsPdf i zwróć BinaryData jako plik do pobrania. IronPDF zachowuje formatowanie tabel, niestandardowe czcionki i styl CSS w pliku wyjściowym.
Czy IronPDF obsługuje zapytania o media drukarskie CSS?
Tak. Ustaw RenderingOptions.CssMediaType = PdfCssMediaType.PRINT, aby aktywować reguły @media print, które ukrywają elementy nawigacyjne i stosują typografię zoptymalizowaną pod kątem druku.
Czy IronPDF obsługuje treści renderowane w JavaScript?
Tak. Ustaw RenderingOptions.EnableJavaScript = true i użyj WaitFor.RenderDelay, aby wstrzymać się po załadowaniu strony, dając silnikowi JavaScript czas na zbudowanie DOM przed przechwyceniem pliku PDF.
W jaki sposób IronPDF obsługuje uwierzytelnianie w przypadku stron chronionych?
IronPDF obsługuje pliki cookie sesji, nagłówki HTTP oraz podstawowe dane uwierzytelniające poprzez właściwości RequestContext.Cookies i ChromePdfRenderOptions.HttpLoginCredentials.
Jakie platformy wspiera IronPDF?
IronPDF działa w systemach Windows, Linux i macOS i może być wdrażany w Azure i AWS. Jest przeznaczony dla platform .NET 6, .NET 7, .NET 8 oraz .NET Framework 4.6.2 i nowszych.
Czy IronPDF obsługuje format PDF/A do archiwizacji?
Tak. IronPDF obsługuje zgodność z PDF/A w celu długoterminowej archiwizacji oraz PDF/UA w celu zapewnienia dostępności. Te tryby wyjściowe można skonfigurować za pomocą metod SaveAsPdfA i SaveAsPdfUA.




