Como converter Razor para PDF no Blazor Server usando C#

Como Converter PDF a partir de Razor no Blazor Server com C

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

Converter PDF a partir de componentes Razor no Blazor Server usando o método RenderRazorComponentToPdf do IronPDF. Transforme componentes de interface do usuário em C# em PDFs com o mínimo de código e total personalização de cabeçalhos, rodapés e formatação de página.

Início Rápido: Converter PDF a partir de Componente Razor em Minutos

Converter PDF a partir de componentes Razor em aplicações Blazor Server usando o IronPDF. O método RenderRazorComponentToPdf transforma seus componentes Razor em PDFs com poucas linhas de código. Siga este guia para integrar a conversão de Razor para PDF ao seu projeto com configuração mínima e opções de personalização flexíveis.

  1. Instale IronPDF com o Gerenciador de Pacotes NuGet

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

    // Install-Package o Blazor IronPDF
    var pdf = new IronPdf.ChromePdfRenderer()
        .RenderRazorComponentToPdf<MyComponent>(new Dictionary<string,object> { {"persons",personsList} })
        .SaveAs("component-to-pdf.pdf");
  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

Quais pacotes NuGet eu preciso para a conversão de Razor para PDF?

O IronPDF Blazor estende o pacote principal IronPDF . Ambos os pacotes são necessários para renderizar componentes Razor em documentos PDF em um aplicativo Blazor Server. Esta extensão fornece pontos de integração para aplicativos Blazor Server, permitindo que você converta componentes Razor existentes em PDFs sem grandes alterações de refatoração.

Instalando o IronPdf.Extensions. O Blazor inclui automaticamente a biblioteca principal do IronPDF como uma dependência. O pacote de extensão adiciona métodos como RenderRazorComponentToPdf que entendem o modelo de componentes do Blazor e renderizam corretamente os componentes com dados vinculados. Para obter o melhor desempenho e os recursos mais recentes, use a versão mais recente de ambos os pacotes. Confira o changelog para atualizações e melhorias.

Install-Package o Blazor IronPDF
Biblioteca NuGet C# para PDF

Instalar com NuGet

Install-Package o Blazor IronPDF

Como faço para renderizar componentes Razor em PDFs no Blazor Server?

É necessário um projeto de aplicativo Blazor Server para converter componentes Razor em PDFs. Os aplicativos Blazor Server são executados no servidor e renderizam atualizações da interface do usuário por meio de uma conexão SignalR, tornando-os adequados para geração de PDFs, onde o processamento no servidor é necessário. Essa arquitetura garante que a renderização de PDFs ocorra no servidor, proporcionando resultados consistentes independentemente do navegador ou dispositivo do cliente.

Antes de começar, certifique-se de ter o SDK do .NET instalado e o Visual Studio 2019 ou posterior com o fluxo de trabalho de desenvolvimento ASP.NET e web. Crie um novo aplicativo Blazor Server por meio dos modelos de projeto do Visual Studio ou usando a CLI do .NET com dotnet new blazorserver. Para obter instruções detalhadas de instalação e requisitos específicos da plataforma, consulte a Visão geral da instalação .

Qual estrutura de classe de modelo devo usar?

Adicione uma classe C# padrão chamada PersonInfo . Esta classe serve como modelo para armazenar informações de pessoas. Insira o seguinte código:

:path=/static-assets/pdf/content-code-examples/how-to/razor-to-pdf-blazor-server-model.cs
namespace BlazorSample.Data
{
    public class PersonInfo
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }
}
Namespace BlazorSample.Data
	Public Class PersonInfo
		Public Property Id() As Integer
		Public Property Name() As String
		Public Property Title() As String
		Public Property Description() As String
	End Class
End Namespace
$vbLabelText   $csharpLabel

Este modelo representa a estrutura de dados passada para o seu componente Razor e renderizada no PDF. O IronPDF funciona com qualquer modelo de objeto C#, desde POCOs simples até modelos complexos do Entity Framework. Ao projetar modelos para geração de PDFs, considere como os dados serão exibidos no documento final e estruture as propriedades de acordo.

Como faço para implementar o componente Razor para geração de PDF?

Use o método RenderRazorComponentToPdf para converter componentes Razor em PDFs. Acesse este método instanciando a classe ChromePdfRenderer . O método retorna um objeto PdfDocument para exportação ou posterior modificação.

O documento PdfDocument retornado suporta modificações adicionais, incluindo a conversão para os formatos PDF/A ou PDF/UA . Você pode mesclar ou dividir o documento, girar as páginas e adicionar anotações ou marcadores . Aplique marcas d'água personalizadas conforme necessário.

Adicione um componente Razor chamado Person.razor . Insira o seguinte código:

@page "/Person"
@using BlazorSample.Data;
@using IronPdf;
@using IronPdf.Extensions.Blazor;

<h3>Person</h3>

@code {
    // A parameter to receive a list of persons from the parent component.
    [Parameter]
    public IEnumerable<PersonInfo> persons { get; set; }

    // Dictionary to hold parameters that will be passed to the PDF renderer.
    public Dictionary<string, object> Parameters { get; set; } = new Dictionary<string, object>();

    protected override async Task OnInitializedAsync()
    {
        // Initialize the persons list with some sample data.
        persons = new List<PersonInfo>
        {
            new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
            new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
            new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
        };
    }

    private async void PrintToPdf()
    {
        ChromePdfRenderer renderer = new ChromePdfRenderer();

        // Apply text footer to the PDF pages.
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            LeftText = "{date} - {time}",
            DrawDividerLine = true,
            RightText = "Page {page} of {total-pages}",
            Font = IronSoftware.Drawing.FontTypes.Arial,
            FontSize = 11
        };

        Parameters.Add("persons", persons);

        // Render Razor component to PDF and save it.
        PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters);
        File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData);
    }
}

<table class="table">
    <tr>
        <th>Name</th>
        <th>Title</th>
        <th>Description</th>
    </tr>
    @foreach (var person in persons)
    {
        <tr>
            <td>@person.Name</td>
            <td>@person.Title</td>
            <td>@person.Description</td>
        </tr>
    }
</table>

<button class="btn btn-primary" @onclick="PrintToPdf">Print to Pdf</button>

Este método fornece acesso a todos os recursos do RenderingOptions . Adicione cabeçalhos e rodapés de texto e HTML , inclua números de página e ajuste as dimensões e o layout da página. RenderingOptions suporta margens personalizadas , configurações de viewport para designs responsivos e atrasos na execução de JavaScript para conteúdo dinâmico.

Para layouts complexos ou frameworks CSS como o Bootstrap, explore os recursos de renderização CSS responsiva para garantir que os PDFs sejam exibidos corretamente em diferentes tamanhos de página.

Como adiciono navegação ao meu componente Razor ?

  • Navegue até a "Pasta compartilhada" e abra NavMenu.razor. Adicione a seção que abrirá nosso componente Razor , Person. Nosso componente Person será a segunda opção.
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
    <nav class="flex-column">
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
                <span class="oi oi-home" aria-hidden="true"></span> Home
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="Person">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Person
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="counter">
                <span class="oi oi-plus" aria-hidden="true"></span> Counter
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="fetchdata">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
            </NavLink>
        </div>
    </nav>
</div>

Essa configuração de navegação se integra ao sistema de roteamento do Blazor, permitindo que os usuários acessem a funcionalidade de geração de PDF a partir do menu de navegação principal do seu aplicativo. O componente NavLink garante o destaque adequado da rota ativa.

Como é o processo de geração de PDFs?

Execute o projeto e gere um documento PDF. Clique no botão "Imprimir para PDF". O IronPDF processa seu componente Razor , converte-o em HTML e o renderiza como um PDF usando seu mecanismo de renderização baseado no Chrome. Isso mantém a mesma fidelidade visual dos navegadores modernos.

Visual Studio debugging Blazor app with PDF generation code using ChromePdfRenderer and Razor components

O PDF gerado será salvo no diretório de saída do seu projeto. Personalize o local de salvamento, implemente downloads diretos pelo navegador ou armazene PDFs em armazenamento em nuvem, como o Azure Blob Storage. Para aplicações de produção, implemente tratamento de erros e feedback do usuário para cenários em que a geração de PDF possa falhar ou exceder a duração esperada.

Onde posso baixar um exemplo completo e funcional?

Baixe o código completo deste guia como um arquivo compactado. Abra-o no Visual Studio como um projeto de Aplicativo Blazor Server. O exemplo inclui todas as dependências, configurações e código de exemplo para começar imediatamente a converter Razor para PDF em aplicativos Blazor .

Baixe o projeto de exemplo Blazor para conversão de Razor para PDF.

Pronto para ver o que mais você pode fazer? Confira nossa página de tutoriais aqui: Converter PDFs

Para cenários mais avançados, consulte nosso tutorial do Blazor , que aborda padrões de integração adicionais e práticas recomendadas para usar o IronPDF em aplicativos Blazor .

Perguntas frequentes

Qual é a maneira mais rápida de converter um componente Razor em PDF no Blazor Server?

A maneira mais rápida é usando o método RenderRazorComponentToPdf do IronPDF. Com apenas uma linha de código, você pode converter qualquer componente Razor em PDF: var pdf = new IronPDF.ChromePdfRenderer().RenderRazorComponentToPdf(new Dictionary { {"persons",personsList} }).SaveAs("component-to-pdf.pdf");

Quais pacotes NuGet são necessários para a conversão de Razor para PDF no Blazor Server?

Você precisa do pacote IronPdf.Extensions.Blazor, que inclui automaticamente a biblioteca principal do IronPDF como dependência. Instale-o usando o comando: Install-Package IronPdf.Extensions.Blazor

Posso adicionar cabeçalhos e rodapés personalizados ao converter componentes Razor para PDF?

Sim, o IronPDF oferece opções completas de personalização para cabeçalhos, rodapés e formatação de página ao usar o método RenderRazorComponentToPdf para converter seus componentes Razor.

Por que o Blazor Server é recomendado para geração de PDFs a partir de componentes Razor?

Os aplicativos Blazor Server são executados no servidor e renderizam atualizações da interface do usuário por meio de uma conexão SignalR, tornando-os ideais para geração de PDFs. Essa arquitetura garante que a renderização do IronPDF ocorra no servidor, fornecendo resultados consistentes independentemente do navegador ou dispositivo do cliente.

Preciso refatorar meus componentes Razor existentes para convertê-los em PDF?

Não, o pacote IronPDF.Extensions.Blazor permite converter componentes Razor existentes em PDFs sem grandes alterações. A extensão fornece pontos de integração que compreendem o modelo de componentes do Blazor.

Como faço para passar dados para meu componente Razor ao converter para PDF?

Você pode passar dados usando um parâmetro Dictionary no método RenderRazorComponentToPdf. Por exemplo: new Dictionary { {"persons", personsList} } onde "persons" é o nome do parâmetro e personsList são seus dados.

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.