Tutorial do IronPDF Blazor Server: Renderizando HTML para PDF em C
O IronPDF permite a conversão de HTML para PDF em aplicações Blazor Server usando C# com configuração mínima, suportando .NET 6 e fornecendo recursos de geração de PDF diretamente de seus componentes Blazor.
Início Rápido: Renderizar PDFs no Blazor Server
Comece a usar o IronPDF em seus aplicativos Blazor Server. Este exemplo demonstra como renderizar conteúdo HTML em um PDF. Transforme seus componentes Blazor em PDFs com poucas linhas de código.
-
Instale IronPDF com o Gerenciador de Pacotes NuGet
PM > Install-Package IronPdf -
Copie e execute este trecho de código.
IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath); -
Implante para testar em seu ambiente de produção.
Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita
Fluxo de trabalho mínimo (5 etapas)
- Instale a biblioteca HTML-to-PDF para aplicativos Blazor.
- Crie um novo projeto Blazor no Visual Studio.
- Converter páginas da web em documentos PDF a partir de URLs
- Renderizar as páginas da web no navegador do cliente.
- Visualizar documentos PDF a partir de strings HTML
Como faço para criar um novo projeto Blazor Server?
Crie um novo projeto e selecione o tipo Aplicativo Blazor Server. O Visual Studio fornece um modelo para criar aplicativos Blazor do lado do servidor que podem usar o .NET para geração de PDFs. O modelo de hospedagem Blazor Server executa a lógica do seu aplicativo no servidor, tornando-o adequado para cenários de geração de PDF que exigem processamento no lado do servidor .
Quais são os pré-requisitos para aplicativos Blazor Server?
Antes de criar um aplicativo Blazor Server com o IronPDF, certifique-se de ter o Visual Studio 2022 ou posterior instalado com o pacote de desenvolvimento ASP.NET e Web. Você precisa do SDK do .NET 6 ou superior. Os aplicativos Blazor Server exigem uma conexão constante com o servidor, o que os torna adequados para cenários em que é necessário gerar PDFs a partir de conteúdo HTML complexo ou ao trabalhar com dados confidenciais que devem permanecer no servidor .
Qual versão do .NET devo usar?
Para compatibilidade e desempenho com o IronPDF em aplicações Blazor Server, utilize o .NET 6 ou superior. O IronPDF é compatível com .NET Core 3.1, .NET 5, .NET 6, .NET 7 e .NET 8. A versão LTS mais recente (.NET 6 ou .NET 8) oferece estabilidade e suporte a longo prazo. Ao implantar no Azure , certifique-se de que seu plano do Azure App Service seja compatível com a versão do .NET escolhida.
Como faço para configurar as definições do projeto?
Ao configurar seu projeto Blazor Server, selecione "Configurar para HTTPS" para garantir a comunicação segura entre o cliente e o servidor. Deixe a opção "Habilitar Docker" desmarcada, a menos que você planeje executar o IronPDF no Docker . Para autenticação, escolha inicialmente "Nenhum" - você poderá adicionar autenticação posteriormente, se necessário. O nome do projeto deve seguir as convenções de nomenclatura do C# e evitar espaços ou caracteres especiais.
Como instalo o IronPDF no meu projeto Blazor?
Após criar o projeto, siga estes passos para instalar a biblioteca IronPDF do NuGet no Visual Studio. O IronPDF fornece uma API para criar PDFs a partir de strings HTML , URLs e documentos PDF existentes.
- Na janela Solution Explorer do Visual Studio, clique com o botão direito do mouse em
Referencese escolhaManage NuGet Packages. - Selecione Procurar e pesquise por
IronPdf. - Selecione a versão mais recente do pacote, marque a caixa de seleção do seu projeto e clique em instalar.
Alternativamente, você pode usar a CLI do .NET para instalá-lo:
Install-Package IronPdf
Para projetos direcionados a plataformas específicas, você pode precisar de pacotes específicos para cada plataforma. Por exemplo, se estiver a implementar em Linux, consulte o guia de instalação do Linux .
Por que escolher o gerenciador de pacotes NuGet em vez da linha de comando?
A interface gráfica do Gerenciador de Pacotes NuGet no Visual Studio oferece uma experiência visual que facilita a navegação entre versões de pacotes, a visualização de dependências e o gerenciamento simultâneo de vários projetos. Isso ajuda os desenvolvedores que estão começando a usar o IronPDF a explorar os pacotes disponíveis e suas descrições. A abordagem via linha de comando (CLI) é mais rápida para desenvolvedores experientes e mais adequada para pipelines de compilação automatizados ou ao trabalhar com contêineres Docker .
Qual versão do IronPDF devo instalar?
Instale a versão estável mais recente do IronPDF para ter acesso a novos recursos, melhorias de desempenho e atualizações de segurança. Consulte o registro de alterações para obter detalhes sobre as atualizações recentes. Se você estiver trabalhando com um projeto existente, certifique-se de que a versão seja compatível com as demais dependências. Para ambientes de produção, realize testes completos antes de atualizar para versões principais.
Como posso verificar se a instalação foi bem-sucedida?
Após a instalação, verifique se o IronPDF foi instalado corretamente consultando a pasta "Packages" no Solution Explorer. Você deverá ver "IronPdf" listado entre as dependências do seu projeto. Adicione using IronPdf; a um arquivo C# - o IntelliSense deverá reconhecer o namespace. Você também pode executar um teste simples criando um PDF básico a partir de HTML para confirmar se tudo funciona corretamente.
Como adiciono um novo componente Razor para geração de PDF?
Após instalar o IronPDF em seu projeto Blazor, adicione um novo componente Razor. Para este tutorial, nomeie-o como "IronPdfComponent". Este componente irá processar a entrada do usuário e gerar PDFs dinamicamente com base no conteúdo HTML. A arquitetura de componentes do Blazor facilita a criação de funcionalidades reutilizáveis de geração de PDFs que podem ser compartilhadas em toda a sua aplicação.
Em seguida, atualize o código da seguinte forma:
@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
Este componente utiliza a classe ChromePdfRenderer para geração de PDFs. Você pode personalizar a renderização com várias opções, como tamanhos de papel personalizados , margens e cabeçalhos/rodapés .
Adicione este código JavaScript a _layout.cshtml para permitir o download do PDF renderizado pelo IronPDF no aplicativo 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>
Edite o arquivo NavMenu.razor na pasta Shared para incluir uma aba de navegação para o nosso novo componente Razor. Adicione o seguinte código:
<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>
Após aplicar todos esses passos, você pode executar sua solução e deverá ver o seguinte:
Por que usar JavaScript para downloads de PDF no Blazor?
O Blazor Server opera em uma conexão SignalR, onde todo o código C# é executado no servidor. A interoperabilidade com JavaScript é necessária para acionar ações específicas do navegador, como downloads de arquivos. A classe DotNetStreamReference transfere dados binários do servidor para o cliente sem carregar todo o PDF na memória de uma só vez. Essa abordagem é mais eficiente do que a codificação base64 e funciona bem para PDFs grandes. Para abordagens alternativas, considere exportar PDFs para fluxos de memória .
Quais são os problemas comuns na implementação de downloads de PDF?
Os desafios comuns incluem lidar com arquivos grandes que podem causar o estouro do tempo limite da conexão SignalR, gerenciar solicitações simultâneas de geração de PDF e garantir o descarte adequado de recursos. Para evitar vazamentos de memória, sempre descarte documentos e fluxos PDF corretamente. Considere implementar a geração assíncrona de PDFs para obter melhor desempenho. Caso encontre problemas de renderização, consulte a documentação das opções de renderização para obter dicas de configuração.
Como lidar com arquivos PDF grandes?
Para PDFs grandes, considere implementar indicadores de progresso e downloads em partes. Você pode otimizar o tamanho do PDF usando técnicas de compressão . Defina os tempos limite apropriados na configuração do seu servidor Blazor:
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);
});
Para documentos muito grandes, considere salvá-los primeiro no armazenamento do servidor e fornecer um link para download em vez de transmiti-los diretamente.
Quando devo usar referências de fluxo em vez de downloads diretos?
Use DotNetStreamReference para PDFs com menos de 50 MB que precisam ser baixados imediatamente. Para arquivos maiores ou quando precisar salvar PDFs em disco , considere gerar o PDF no servidor e fornecer um link para download. O download direto funciona bem para relatórios e faturas, enquanto o processamento em lote ou a fusão de vários PDFs podem se beneficiar do armazenamento no servidor. Ao escolher uma abordagem, leve em consideração as restrições de memória da sua aplicação e os requisitos de experiência do usuário.
Perguntas frequentes
Como faço para criar um novo projeto Blazor Server para geração de PDF?
Para criar um projeto Blazor Server com o IronPDF, selecione "Aplicativo Blazor Server" como o tipo de projeto no Visual Studio. O modelo de hospedagem Blazor Server executa a lógica do aplicativo no servidor, tornando-o ideal para cenários de geração de PDF que exigem processamento no servidor com o IronPDF.
Quais são os pré-requisitos para usar aplicativos Blazor Server com geração de PDF?
Você precisa do Visual Studio 2022 ou posterior com o pacote de desenvolvimento ASP.NET e Web, além do SDK do .NET 6 ou superior. Os aplicativos Blazor Server exigem uma conexão constante com o servidor, sendo adequados para gerar PDFs a partir de conteúdo HTML complexo usando o IronPDF ou para trabalhar com dados confidenciais que devem permanecer no servidor.
Qual versão do .NET devo usar para gerar PDFs em Blazor?
Para obter compatibilidade e desempenho ideais com o IronPDF em aplicações Blazor Server, utilize o .NET 6 ou superior. O IronPDF é compatível com .NET Core 3.1, .NET 5, .NET 6, .NET 7 e .NET 8. As versões LTS mais recentes (.NET 6 ou .NET 8) oferecem estabilidade e suporte a longo prazo.
Como faço para configurar as definições de projeto para uma aplicação Blazor PDF?
Ao configurar seu projeto Blazor Server para o IronPDF, selecione "Configurar para HTTPS" para comunicação segura. Deixe "Habilitar Docker" desmarcado, a menos que você planeje executar o IronPDF em contêineres Docker. Comece com "Nenhum" para autenticação — você pode adicioná-la posteriormente. Use as convenções de nomenclatura C# adequadas, sem espaços ou caracteres especiais.
Como posso gerar PDFs rapidamente a partir de HTML no Blazor Server?
O IronPDF oferece uma solução simples de uma linha para conversão de HTML para PDF no Blazor Server: `IronPDF.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath)`. Isso permite transformar seus componentes Blazor em PDFs com o mínimo de código.
Qual é o fluxo de trabalho mínimo para implementar a geração de PDFs em Blazor?
O fluxo de trabalho mínimo consiste em 5 etapas: 1) Instalar a biblioteca IronPDF HTML-to-PDF, 2) Criar um novo projeto Blazor no Visual Studio, 3) Converter páginas da web em documentos PDF usando o IronPDF, 4) Renderizar as páginas da web no navegador do cliente e 5) Visualizar os documentos PDF gerados a partir de strings HTML.

