Como usar o IronPDF com Blazor para geração de PDFs | IronPDF

Tutorial do IronPDF Blazor Server: Renderizando HTML para PDF em C

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronPdf
  2. Copie e execute este trecho de código.

    IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath);
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronPDF em seu projeto hoje com uma avaliação gratuita

    arrow pointer

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 .

A caixa de diálogo

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.

  1. Na janela Solution Explorer do Visual Studio, clique com o botão direito do mouse em References e escolha Manage NuGet Packages.
  2. Selecione Procurar e pesquise por IronPdf.
  3. 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.

Caixa de diálogo Adicionar Novo Item do Visual Studio com o componente Razor selecionado e o nome do arquivo IronPdfComponent inserido.

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>
HTML
@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
$vbLabelText   $csharpLabel

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>
JAVASCRIPT

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>
HTML

Após aplicar todos esses passos, você pode executar sua solução e deverá ver o seguinte:

Aplicativo Blazor com componente IronPDF exibindo uma área de entrada de texto HTML e um botão

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);
    });
$vbLabelText   $csharpLabel

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.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 18,318,263 | Versão: 2026.4 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.