IronPDF Blazor Server Tutorial: Renderowanie HTML do PDF w C
IronPDF umożliwia konwersje HTML do PDF w aplikacjach Blazor Server przy użyciu C# z minimalna konfiguracja, wspierając .NET 6 i oferujac możliwosci generowania PDF bezpośrednio z komponentow Blazor.
Szybki start: Renderowanie PDF w Blazor Server
Rozpocznij prace z IronPDF w swoich aplikacjach Blazor Server. Ten przykład pokazuje, jak renderować zawartość 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 przeglądarce klienta
- Przeglądaj dokumenty PDF z ciagow HTML
Jak utworzyć 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 mogą używać .NET do generowania PDF. Model hostingowy Blazor Server wykonuje twoja logike aplikacji na serwerze, dzięki 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 połączenia z serwerem, co czyni je odpowiednimi dla sytuacji, gdy musisz generować PDF z zlozonej zawartości HTML lub gdy pracujesz z danymi wrazliwymi, ktore powinny pozostac na serwerze.
Ktora wersje .NET powinienem uzyc?
Dla zgodności i wydajności 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 skonfigurować ustawienia projektu?
Podczas konfigurowania projektu Blazor Server wybierz "Konfiguruj dla HTTPS", aby zapewnic bezpieczna komunikacje miedzy klientem a serwerem. Pozostaw "Włącz Docker" niezaznaczone, chyba ze planujesz uruchomic IronPDF w Dockera. Dla uwierzytelnienia wybierz "Brak" poczatkowo - możesz dodac uwierzytelnianie pozniej, jeśli potrzebne. Nazwa projektu powinna przestrzegac konwencji nazewnictwa C# i unikac spacji lub znakow specjalnych.
Jak zainstalować IronPDF do mojego projektu Blazor?
Po utworzeniu projektu, wykonaj te kroki, aby zainstalować biblioteke IronPDF z NuGet w Visual Studio. IronPDF zapewnia API do tworzenia PDF z ciagow HTML, URL-i i istniejących dokumentów PDF.
- W oknie Solution Explorer w programie Visual Studio kliknij prawym przyciskiem myszy
Referencesi wybierzManage NuGet Packages. - Wybierz opcję Przeglądaj i wyszukaj
IronPdf. - Wybierz najnowsza wersje pakietu, zaznacz pole wyboru dla swojego projektu i kliknij zainstaluj.
Alternatywnie możesz uzyc .NET CLI do zainstalowania go:
Install-Package IronPdf
Dla projektow celujacych w konkretne platformy, może być konieczne użycie pakietow specyficznych dla platformy. Na przykład, jeśli wdrazasz na Linuxa, zapoznaj sie z przewodnikiem instalacji dla Linuxa.
Dłączego wybrac NuGet Package Manager zamiast CLI?
GUI menedzera pakietow NuGet w Visual Studio zapewnia interfejs wizualny, ktory ułatwia przeglądanie wersji pakietow, przeglądanie zależności i zarządzanie wieloma projektami jednoczesnie. Pomaga to programistom nowym w IronPDF odkrywac dostępne 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 zainstalować?
Zainstaluj najnowsza stabilna wersje IronPDF, aby mieć dostep do nowych funkcji, popraw wydajność i uzyskaj aktualizacje bezpieczeństwa. Sprawdz lista zmian dla szczegółow na temat ostatnich aktualizacji. Jeśli pracujesz z istniejącym projektem, upewnij sie, ze wersje sa kompatybilne z innymi zależnościami. Dla środowisk produkcyjnych przeprowadz dokładne testy przed aktualizacja głównych wersji.
Jak zweryfikowac powodzenie instalacji?
Po instalacji, zweryfikuj, czy IronPDF jest poprawnie zainstalowany, sprawdzając folder "Packages" w Solution Explorer. Powinieneś zobaczyć "IronPDF" wymieniony wśród zależności Twojego projektu. Dodaj using IronPdf; do pliku C# — IntelliSense powinno rozpoznać przestrzeń nazw. Możesz również wykonac prosty test, tworzyć podstawowy PDF z HTML, aby potwierdzić, ze wszystko działa poprawnie.
Jak dodac nowy komponent Razor do generowania PDF?
Po zainstalowaniu IronPDF w projekcie Blazor, dodaj nowy komponent Razor. W tym samouczku nazwij go IronPdfComponent. Ten komponent będzie obsługiwal dane wejsciowe użytkownika i dynamicznie generowal PDF na podstawie zawartości HTML. Architektura komponentow w Blazor ułatwia tworzenie funkcjonalności generowania PDF, która można ponownie wykorzystywac w całym twoim zastosowaniu.
Po tym zaktualizuj kod w następujący 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 używa klasy ChromePdfRenderer do generowania PDF. Możesz dostosować renderowanie przy użyciu różnych opcji, takich jak niestandardowe rozmiary papieru, marginesy i nagłówki/stopki.
Dodaj ten kod JavaScript do _layout.cshtml, aby umożliwić pobieranie pliku PDF renderowanego 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 dodać zakładkę nawigacyjną 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, można uruchomic rozwiązanie i powinienes to zobaczyć:
Dłączego używać JavaScript do pobierania PDF w Blazor?
Blazor Server działa na połączeniu SignalR, gdzie caly kod C# jest wykonywany na serwerze. Interop JavaScript jest wymagany do wyzwalania specyficznych akcji przeglądarki, takich jak pobieranie plików. Klasa DotNetStreamReference przesyła dane binarne z serwera do klienta bez ładowania całego pliku PDF do pamięci za jednym razem. To podejście jest bardziej efektywne niz kodowanie base64 i działa dobrze dla duzych plików PDF. Dla alternatywnych podejsc rozwaz eksportowanie PDF do strumieni pamięci.
Jakie sa czeste problemy przy implementacji pobierania PDF?
Typowe wyzwania obejmuja obsługę duzych plików, ktore mogą timeoutowac połączenie SignalR, zarządzanie rownoczesnymi zadaniami generowania PDF i zapewnienie prawidlowego usuwania zasobów. Aby uniknąć wycieków pamięci, zawsze należy prawidłowo usuwać dokumenty PDF i MemoryStream. Rozwaz implementacje asynchronicznej generacji PDF dla lepszej wydajności. Jeśli napotkasz problemy z renderowaniem, sprawdz dokumentacje opcji renderowania dla wskazowek konfiguracyjnych.
Jak radzic sobie z duzymi plikami PDF?
Dla duzych plików PDF rozwaz wdrożenie wskaźników postepu i pobieranie w częściach. Możesz zoptymalizować 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 dokumentów rozwaz zapis na serwerze i udostępnienie linku do pobrania zamiast bezpośredniego przesylania strumieniowego.
Kiedy używać odniesien do strumienia vs bezpośrednie pobieranie?
Użyj DotNetStreamReference dla plików PDF poniżej 50 MB, które wymagają natychmiastowego pobrania. Dla wiekszych plików lub gdy potrzebujesz zapisać PDF na dysku, rozwaz wygenerowanie PDF na serwerze i zapewnienie linku do pobrania. Bezpośrednie pobrania dobrze sprawdzają sie w przypadku raportow i faktur, podczas gdy przetwarzanie wsadowe lub łączenie wielu PDF może korzystać z przechowywania po stronie serwera. Rozwaz ograniczenia pamięci twojej aplikacji i wymagania dotyczące doswiadczen użytkownika przy wyborze podejścia.
Często Zadawane Pytania
Jak utworzyc nowy projekt Blazor Server do generowania PDF?
Aby utworzyc projekt Blazor Server z IronPDF, wybierz 'Blazor Server App' jako typ projektu w Visual Studio. Model hostingu Blazor Server wykonuje logike aplikacji po stronie serwera, co czyni go idealnym dla scenariuszy generowania PDF wymagajacych przetwarzania po stronie serwera z IronPDF.
Jakie sa wymagne dla korzystania z aplikacji Blazor Server z generowaniem PDF?
Potrzebujesz Visual Studio 2022 lub nowszego z obciazeniem dla ASP.NET i rozwoju aplikacji webowych, a takze .NET 6 SDK lub wyzszego. Aplikacje Blazor Server wymagaja stalelgo polaczenia z serwerem, co czyni je odpowiednimi do generowania PDF z zlozoną trescia HTML uzywajac IronPDF lub przy pracy z wrazliwymi danymi, ktore powinny pozostac na serwerze.
Ktorej wersji .NET powinienem uzywac do generowania PDF w Blazor?
Dla optymalnej kompatybilnosci i wydajnosci z IronPDF w aplikacjach Blazor Server uzywaj .NET 6 lub wyzszego. IronPDF wspiera .NET Core 3.1, .NET 5, .NET 6, .NET 7 i .NET 8. Najnowsze wersje LTS (.NET 6 lub .NET 8) zapewniaja stabilnosc i dlugoterminowe wsparcie.
Jak skonfigurowac ustawienia projektu dla aplikacji PDF w Blazor?
Kiedy konfigurujesz projekt Blazor Server dla IronPDF, wybierz 'Configure for HTTPS' dla bezpiecznej komunikacji. Pozostaw 'Enable Docker' nieodznaczone chyba, ze planujesz uruchomic IronPDF w kontenerach Docker. Zacznij od 'None' dla uwierzytelniania - mozesz to dodac pozniej. Uzywaj poprawnych konwencji nazewniczych C# bez spacji lub znakow specjalnych.
Jak moge szybko generowac PDFy z HTML w Blazor Server?
IronPDF zapewnia proste rozwiazanie w jednej linii dla konwersji HTML na PDF w Blazor Server: IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath). To pozwala przeksztalcic komponenty Blazor w PDFy z minimalnym kodem.
Jaki jest minimalny przeplyw pracy dla wdrozenia generowania PDF w Blazor?
Minimalny przeplyw pracy sklada sie z 5 krokow: 1) Zainstaluj biblioteke HTML-to-PDF IronPDF, 2) Stworz nowy projekt Blazor w Visual Studio, 3) Konwertuj strony internetowe po URL na dokumenty PDF uzywajac IronPDF, 4) Renderuj strony internetowe w przegladarce internetowej klienta, i 5) Przegladaj dokumenty PDF wygenerowane z ciagow HTML.

