IronPDF Blazor Server Tutorial: Renderowanie HTML do PDF w C
IronPDF umozliwia konwersje HTML do PDF w aplikacjach Blazor Server przy uzyciu C# z minimalna konfiguracja, wspierajac .NET 6 i oferujac mozliwosci generowania PDF bezposrednio z komponentow Blazor.
Szybki start: Renderowanie PDF w Blazor Server
Rozpocznij prace z IronPDF w swoich aplikacjach Blazor Server. Ten przyklad pokazuje, jak renderowac zawartosc HTML do formatu PDF. Przeksztalc komponenty Blazor w pliki PDF za pomoca kilku linijek kodu.
-
Install IronPDF with NuGet Package Manager
PM > Install-Package IronPdf -
Skopiuj i uruchom ten fragment kodu.
IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną
Minimalny proces (5 kroków)
- Zainstaluj biblioteke HTML-to-PDF dla aplikacji Blazor
- Utworz nowy projekt Blazor w Visual Studio.
- Konwertuj strony internetowe przez URL na dokumenty PDF
- Renderuj strony internetowe w przegladarce klienta
- Przegladaj dokumenty PDF z ciagow HTML
Jak utworzyc nowy projekt Blazor Server?
Utworz nowy projekt i wybierz typ Blazor Server App. Visual Studio zapewnia szablon do budowy aplikacji Blazor po stronie serwera, ktore moga uzywac .NET do generowania PDF. Model hostingowy Blazor Server wykonuje twoja logike aplikacji na serwerze, dzieki czemu jest odpowiedni do sytuacji generacji PDF wymagajacych przetwarzania po stronie serwera.
Jakie sa wymagania wstepne dla aplikacji Blazor Server?
Przed utworzeniem aplikacji Blazor Server z IronPDF upewnij sie, ze masz zainstalowany Visual Studio 2022 lub nowszy z obciazeniem dla ASP.NET i rozwoju webowego. Potrzebujesz SDK .NET 6 lub nowszej. Aplikacje Blazor Server wymagaja stalego polaczenia z serwerem, co czyni je odpowiednimi dla sytuacji, gdy musisz generowac PDF z zlozonej zawartosci HTML lub gdy pracujesz z danymi wrazliwymi, ktore powinny pozostac na serwerze.
Ktora wersje .NET powinienem uzyc?
Dla zgodnosci i wydajnosci z IronPDF w aplikacjach Blazor Server, uzyj .NET 6 lub wyzszy. IronPDF jest kompatybilny z .NET Core 3.1, .NET 5, .NET 6, .NET 7 i .NET 8. Najnowsza wersja LTS (.NET 6 lub .NET 8) zapewnia stabilnosc i dlugoterminowe wsparcie. Gdy wdrazasz do Azure, upewnij sie, ze twoj plan uslug Azure App Service wspiera wybrana wersje .NET.
Jak skonfigurowac ustawienia projektu?
Podczas konfigurowania projektu Blazor Server wybierz "Konfiguruj dla HTTPS", aby zapewnic bezpieczna komunikacje miedzy klientem a serwerem. Pozostaw "Wlacz Docker" niezaznaczone, chyba ze planujesz uruchomic IronPDF w Dockera. Dla uwierzytelnienia wybierz "Brak" poczatkowo - mozesz dodac uwierzytelnianie pozniej, jesli potrzebne. Nazwa projektu powinna przestrzegac konwencji nazewnictwa C# i unikac spacji lub znakow specjalnych.
Jak zainstalowac IronPDF do mojego projektu Blazor?
Po utworzeniu projektu, wykonaj te kroki, aby zainstalowac biblioteke IronPDF z NuGet w Visual Studio. IronPDF zapewnia API do tworzenia PDF z ciagow HTML, URL-i i istniejacych dokumentow PDF.
- W oknie Solution Explorer w Visual Studio kliknij prawym przyciskiem myszy
Referencesi wybierzManage NuGet Packages. - Wybierz Browse i wyszukaj
IronPdf. - Wybierz najnowsza wersje pakietu, zaznacz pole wyboru dla swojego projektu i kliknij zainstaluj.
Alternatywnie mozesz uzyc .NET CLI do zainstalowania go:
Install-Package IronPdf
Dla projektow celujacych w konkretne platformy, moze byc konieczne uzycie pakietow specyficznych dla platformy. Na przyklad, jesli wdrazasz na Linuxa, zapoznaj sie z przewodnikiem instalacji dla Linuxa.
Dlaczego wybrac NuGet Package Manager zamiast CLI?
GUI menedzera pakietow NuGet w Visual Studio zapewnia interfejs wizualny, ktory ulatwia przegladanie wersji pakietow, przegladanie zaleznosci i zarzadzanie wieloma projektami jednoczesnie. Pomaga to programistom nowym w IronPDF odkrywac dostepne pakiety i ich opisy. Podejscie CLI jest szybsze dla doswiadczonych deweloperow i lepiej nadaje sie do zautomatyzowanych potokow budowy lub gdy pracujesz z kontenerami Docker.
Jaka wersje IronPDF powinienem zainstalowac?
Zainstaluj najnowsza stabilna wersje IronPDF, aby miec dostep do nowych funkcji, popraw wydajnosc i uzyskaj aktualizacje bezpieczenstwa. Sprawdz lista zmian dla szczegolow na temat ostatnich aktualizacji. Jesli pracujesz z istniejacym projektem, upewnij sie, ze wersje sa kompatybilne z innymi zaleznosciami. Dla srodowisk produkcyjnych przeprowadz dokladne testy przed aktualizacja glownych wersji.
Jak zweryfikowac powodzenie instalacji?
Po instalacji, zweryfikuj, czy IronPDF jest poprawnie zainstalowany, sprawdzajac folder "Packages" w Solution Explorer. Powinienes zobaczyc "IronPdf" na liscie zaleznosci projektu. Dodaj using IronPdf; do pliku C# - IntelliSense powinien rozpoznac przestrzen nazw. Mozesz rowniez wykonac prosty test, tworzyc podstawowy PDF z HTML, aby potwierdzic, ze wszystko dziala poprawnie.
Jak dodac nowy komponent Razor do generowania PDF?
Po zainstalowaniu IronPDF w projekcie Blazor, dodaj nowy komponent Razor. Dla tego kursu nazwij go "IronPdfComponent". Ten komponent bedzie obslugiwal dane wejsciowe uzytkownika i dynamicznie generowal PDF na podstawie zawartosci HTML. Architektura komponentow w Blazor ulatwia tworzenie funkcjonalnosci generowania PDF, ktora mozna ponownie wykorzystywac w calym twoim zastosowaniu.
Po tym zaktualizuj kod w nastepujacy sposob:
@page "/IronPdf"
@inject IJSRuntime JS
<h3>IronPdfComponent</h3>
<EditForm Model="@_InputMsgModel" id="inputText">
<div>
<InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" />
</div>
<div>
<button type="button" @onclick="@SubmitHTML">Render HTML</button>
</div>
</EditForm>
@page "/IronPdf"
@inject IJSRuntime JS
<h3>IronPdfComponent</h3>
<EditForm Model="@_InputMsgModel" id="inputText">
<div>
<InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" />
</div>
<div>
<button type="button" @onclick="@SubmitHTML">Render HTML</button>
</div>
</EditForm>
@code {
// Model to bind user input
private InputHTMLModel _InputMsgModel = new InputHTMLModel();
private async Task SubmitHTML()
{
// Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Create a renderer to convert HTML to PDF
var render = new IronPdf.ChromePdfRenderer();
// Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
render.RenderingOptions.MarginTop = 40;
render.RenderingOptions.MarginBottom = 40;
// Render the HTML input into a PDF document
var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);
var fileName = "iron.pdf";
// Create a stream reference for the PDF content
using var streamRef = new DotNetStreamReference(stream: doc.Stream);
// Invoke JavaScript function to download the PDF in the browser
await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
}
public class InputHTMLModel
{
public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>";
}
}
@code {
// Model to bind user input
private InputHTMLModel _InputMsgModel = new InputHTMLModel();
private async Task SubmitHTML()
{
// Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Create a renderer to convert HTML to PDF
var render = new IronPdf.ChromePdfRenderer();
// Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
render.RenderingOptions.MarginTop = 40;
render.RenderingOptions.MarginBottom = 40;
// Render the HTML input into a PDF document
var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);
var fileName = "iron.pdf";
// Create a stream reference for the PDF content
using var streamRef = new DotNetStreamReference(stream: doc.Stream);
// Invoke JavaScript function to download the PDF in the browser
await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
}
public class InputHTMLModel
{
public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>";
}
}
Imports System.Threading.Tasks
Imports Microsoft.JSInterop
Imports IronPdf
@Code
' Model to bind user input
Private _InputMsgModel As New InputHTMLModel()
Private Async Function SubmitHTML() As Task
' Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
' Create a renderer to convert HTML to PDF
Dim render = New IronPdf.ChromePdfRenderer()
' Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
render.RenderingOptions.MarginTop = 40
render.RenderingOptions.MarginBottom = 40
' Render the HTML input into a PDF document
Dim doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML)
Dim fileName = "iron.pdf"
' Create a stream reference for the PDF content
Using streamRef = New DotNetStreamReference(stream:=doc.Stream)
' Invoke JavaScript function to download the PDF in the browser
Await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef)
End Using
End Function
Public Class InputHTMLModel
Public Property HTML As String = "<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>"
End Class
Ten komponent uzywa klasy ChromePdfRenderer do generowania PDF. Mozesz dostosowac renderowanie przy uzyciu roznych opcji, takich jak niestandardowe rozmiary papieru, marginesy i naglowki/stopki.
Dodaj ten kod JavaScript do _layout.cshtml, aby umozliwic pobranie PDF wygenerowanego przez IronPDF w aplikacji Blazor:
<script>
// JavaScript function to download PDFs generated by IronPdf
window.SubmitHTML = async (fileName, contentStreamReference) => {
// Get the PDF content as an ArrayBuffer
const arrayBuffer = await contentStreamReference.arrayBuffer();
// Create a Blob from the ArrayBuffer
const blob = new Blob([arrayBuffer]);
// Create an object URL for the Blob
const url = URL.createObjectURL(blob);
// Create an anchor element to initiate the download
const anchorElement = document.createElement("a");
anchorElement.href = url;
anchorElement.download = fileName ?? "download.pdf";
// Programmatically click the anchor to start the download
anchorElement.click();
// Clean up by removing the anchor and revoking the object URL
anchorElement.remove();
URL.revokeObjectURL(url);
};
</script>
<script>
// JavaScript function to download PDFs generated by IronPdf
window.SubmitHTML = async (fileName, contentStreamReference) => {
// Get the PDF content as an ArrayBuffer
const arrayBuffer = await contentStreamReference.arrayBuffer();
// Create a Blob from the ArrayBuffer
const blob = new Blob([arrayBuffer]);
// Create an object URL for the Blob
const url = URL.createObjectURL(blob);
// Create an anchor element to initiate the download
const anchorElement = document.createElement("a");
anchorElement.href = url;
anchorElement.download = fileName ?? "download.pdf";
// Programmatically click the anchor to start the download
anchorElement.click();
// Clean up by removing the anchor and revoking the object URL
anchorElement.remove();
URL.revokeObjectURL(url);
};
</script>
Edytuj plik NavMenu.razor w folderze Shared, aby zawrzec zakladke nawigacyjna do naszego nowego komponentu Razor. Dodaj następujący kod:
<div class="nav-item px-3">
<NavLink class="nav-link" href="IronPdf">
<span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="IronPdf">
<span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf
</NavLink>
</div>
Po zastosowaniu tego wszystkiego, mozna uruchomic rozwiazanie i powinienes to zobaczyc:
Dlaczego uzywac JavaScript do pobierania PDF w Blazor?
Blazor Server dziala na polaczeniu SignalR, gdzie caly kod C# jest wykonywany na serwerze. Interop JavaScript jest wymagany do wyzwalania specyficznych akcji przegladarki, takich jak pobieranie plikow. Klasa DotNetStreamReference przesyla dane binarne z serwera do klienta bez ladowania calego PDF do pamieci na raz. To podejscie jest bardziej efektywne niz kodowanie base64 i dziala dobrze dla duzych plikow PDF. Dla alternatywnych podejsc rozwaz eksportowanie PDF do strumieni pamieci.
Jakie sa czeste problemy przy implementacji pobierania PDF?
Typowe wyzwania obejmuja obsluge duzych plikow, ktore moga timeoutowac polaczenie SignalR, zarzadzanie rownoczesnymi zadaniami generowania PDF i zapewnienie prawidlowego usuwania zasobow. Aby uniknac wyciekow pamieci, zawsze usuwaj poprawnie dokumenty PDF i strumienie. Rozwaz implementacje asynchronicznej generacji PDF dla lepszej wydajnosci. Jesli napotkasz problemy z renderowaniem, sprawdz dokumentacje opcji renderowania dla wskazowek konfiguracyjnych.
Jak radzic sobie z duzymi plikami PDF?
Dla duzych plikow PDF rozwaz wdrozenie wskaznikow postepu i pobieranie w czesciach. Mozesz zoptymalizowac rozmiar PDF za pomoca technik kompresji. Ustaw odpowiednie limity czasu w konfiguracji Blazor Server:
services.AddServerSideBlazor()
.AddHubOptions(options =>
{
options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB
options.ClientTimeoutInterval = TimeSpan.FromSeconds(60);
});
services.AddServerSideBlazor()
.AddHubOptions(options =>
{
options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB
options.ClientTimeoutInterval = TimeSpan.FromSeconds(60);
});
Dla bardzo duzych dokumentow rozwaz zapis na serwerze i udostepnienie linku do pobrania zamiast bezposredniego przesylania strumieniowego.
Kiedy uzywac odniesien do strumienia vs bezposrednie pobieranie?
Uzyj DotNetStreamReference dla PDF ponizej 50 MB, ktore wymagaja natychmiastowego pobrania. Dla wiekszych plikow lub gdy potrzebujesz zapisac PDF na dysku, rozwaz wygenerowanie PDF na serwerze i zapewnienie linku do pobrania. Bezposrednie pobrania dobrze sprawdzaja sie w przypadku raportow i faktur, podczas gdy przetwarzanie wsadowe lub laczenie wielu PDF moze korzystac z przechowywania po stronie serwera. Rozwaz ograniczenia pamieci twojej aplikacji i wymagania dotyczace doswiadczen uzytkownika przy wyborze podejscia.
Często Zadawane Pytania
How do I create a new Blazor Server project for PDF generation?
To create a Blazor Server project with IronPDF, select 'Blazor Server App' as the project type in Visual Studio. The Blazor Server hosting model executes application logic on the server, making it ideal for PDF generation scenarios that require server-side processing with IronPDF.
What are the prerequisites for using Blazor Server apps with PDF generation?
You need Visual Studio 2022 or later with the ASP.NET and web development workload, plus .NET 6 SDK or higher. Blazor Server apps require a constant server connection, making them suitable for generating PDFs from complex HTML content using IronPDF or when working with sensitive data that should remain on the server.
Which .NET version should I use for PDF generation in Blazor?
For optimal compatibility and performance with IronPDF in Blazor Server applications, use .NET 6 or higher. IronPDF supports .NET Core 3.1, .NET 5, .NET 6, .NET 7, and .NET 8. The latest LTS versions (.NET 6 or .NET 8) provide stability and long-term support.
How do I configure project settings for a Blazor PDF application?
When configuring your Blazor Server project for IronPDF, select 'Configure for HTTPS' for secure communication. Leave 'Enable Docker' unchecked unless you plan to run IronPDF in Docker containers. Start with 'None' for authentication - you can add it later. Use proper C# naming conventions without spaces or special characters.
How can I quickly generate PDFs from HTML in Blazor Server?
IronPDF provides a simple one-line solution for HTML to PDF conversion in Blazor Server: IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath). This allows you to transform your Blazor components into PDFs with minimal code.
What is the minimal workflow for implementing PDF generation in Blazor?
The minimal workflow consists of 5 steps: 1) Install IronPDF HTML-to-PDF library, 2) Create a new Blazor Project in Visual Studio, 3) Convert web pages by URL into PDF documents using IronPDF, 4) Render the web pages into the client's web browser, and 5) View PDF documents generated from HTML strings.

