Ir para o conteúdo do rodapé
USANDO O IRONPDF
Converter HTML do Blazor para PDF usando o IronPDF

Tutorial para criar um arquivo PDF com Blazor

IronPDF, uma renomada biblioteca C#, funciona com aplicações Blazor . Esta análise irá orientá-lo na utilização do IronPDF para incorporar um relatório em PDF em uma aplicação Blazor , demonstrando sua integração perfeita e eficácia.

1. Recursos do IronPDF

Os desenvolvedores podem criar, ler e processar documentos PDF rapidamente com a ajuda da robusta biblioteca IronPDF .NET PDF. O IronPDF possui um mecanismo Chrome integrado e oferece uma ampla gama de recursos práticos e poderosos. Isso inclui a capacidade de converter HTML5, JavaScript, CSS e imagens em PDF, a capacidade de adicionar cabeçalhos e rodapés exclusivos a documentos PDF e a capacidade de produzir PDFs exatamente como aparecem em um navegador da web. O IronPDF oferece suporte a diversas tecnologias web, incluindo HTML, ASPX, Razor Pages e frameworks MVC.

Os principais atributos do IronPDF são os seguintes:

2. O que é Blazor?

Blazor é um framework de aplicações web que possibilita a criação de aplicações web do lado do cliente em C# e HTML usando WebAssembly.

Os aplicativos Web Assembly são enviados ao navegador em um formato de instrução binária que pode operar a uma velocidade próxima à nativa. Isso criou um novo potencial para que linguagens como C# sejam executadas dentro do navegador.

Criando um novo projeto no Visual Studio

Para começar, abra o aplicativo Microsoft Visual Studio e selecione "Novo Projeto" no menu Arquivo. Em seguida, selecione "Aplicativo de servidor Blazor ".

Tutorial Criar um arquivo PDF com Blazor , Figura 1: Criando um novo projeto no Visual Studio Criando um novo projeto no Visual Studio

Insira o nome do projeto e selecione o caminho do arquivo. Em seguida, clique no botão Criar .

Tutorial Criar um arquivo PDF com Blazor , Figura 2: Escolhendo o nome e o local do novo aplicativo Blazor Escolher o nome e a localização da nova aplicação Blazor.

Selecione a .NET Framework desejada (neste tutorial, usaremos o .NET 6.0), conforme mostrado na captura de tela abaixo:

Tutorial Criar um arquivo PDF com Blazor , Figura 3: Criando um novo projeto no Visual Studio com o .NET Framework 6.0 Criando um novo projeto no Visual Studio com o .NET Framework 6.0

O Microsoft Visual Studio irá agora gerar a estrutura para esta aplicação Blazor .

Em seguida, adicione a biblioteca IronPDF a este novo projeto.

3. Instale a biblioteca IronPDF.

A biblioteca IronPDF pode ser baixada e instalada de quatro maneiras:

  • Usando o Gerenciador de Pacotes NuGet do Visual Studio
  • Usando a linha de comando do Visual Studio
  • Baixando diretamente do site NuGet
  • Baixando diretamente do site do IronPDF

3.1 Usando o Gerenciador de Pacotes NuGet do Visual Studio

O Visual Studio fornece o Gerenciador de Pacotes NuGet para auxiliar na instalação de bibliotecas diretamente nos projetos. A captura de tela abaixo mostra como abrir o Gerenciador de Pacotes NuGet .

Tutorial Criar um arquivo PDF com Blazor , Figura 4: Acessando o Gerenciador de Pacotes NuGet do Visual Studio Acessando o Gerenciador de Pacotes NuGet do Visual Studio

Utilize o campo de pesquisa na aba Procurar para buscar por "IronPDF", como mostrado na captura de tela abaixo:

Tutorial Criar um arquivo PDF com Blazor , Figura 5: Pesquisando a biblioteca IronPDF na GUI do Gerenciador de Pacotes NuGet Procurando a biblioteca IronPDF na interface gráfica do Gerenciador de Pacotes NuGet.

Na imagem acima, é apresentada a lista de resultados de pesquisa relacionados. Selecione as opções necessárias para instalar o pacote em seu projeto.

3.2 Usando a linha de comando do Visual Studio

No Visual Studio, acesse Ferramentas > Gerenciador de Pacotes NuGet > Console do Gerenciador de Pacotes.

Insira a seguinte linha na guia Console do Gerenciador de Pacotes:

Install-Package IronPdf

O pacote será baixado e instalado no projeto atual.

Tutorial Criar um arquivo PDF com Blazor , Figura 6: Instalando a biblioteca IronPDF usando o Console do Gerenciador de Pacotes NuGet Instalando a biblioteca IronPDF usando o Console do Gerenciador de Pacotes NuGet

3.3 Baixando diretamente do site do NuGet

A terceira maneira de instalar a biblioteca IronPDF é baixar o pacote NuGet diretamente do site.

Acesse o site do NuGet para o IronPDF .

  • Clique na opção "Baixar pacote" no menu à direita.
  • Abra o pacote baixado no seu sistema de arquivos. Será instalado automaticamente.
  • Recarregue a solução e comece a usá-la em seu projeto.

3.4 Download direto do site do IronPDF

Acesse o site do IronPDF para baixar o pacote IronPDF diretamente.

Após o download, siga estes passos para adicionar o pacote ao seu projeto:

  • Clique com o botão direito do mouse no projeto na janela de soluções.
  • Selecione a opção "Adicionar" > "Referência" e navegue até o local da biblioteca que você baixou anteriormente.
  • Clique em OK para adicionar a biblioteca como referência.

4. Criar documentos PDF no aplicativo Blazor Server

O aplicativo Blazor deste tutorial usará o IronPDF para obter o conteúdo HTML de uma página da web a partir de seu URL e convertê-lo em um documento PDF.

Insira o seguinte código-fonte no arquivo Razor contido no projeto.

@using IronPdf

@code {
    /// <summary>
    /// This method exports data by converting a URL to a PDF file and initiating its download.
    /// </summary>
    public async Task ExportData()
    {
        try
        {
            string fileName = "Demo.pdf";
            var renderer = new ChromePdfRenderer();

            // Render the contents of the URL as a PDF document
            var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

            // Save the PDF using a JavaScript function
            await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
        }
        catch (Exception ex)
        {
            // Handle any exceptions that may occur
            Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
        }
    }
}
@using IronPdf

@code {
    /// <summary>
    /// This method exports data by converting a URL to a PDF file and initiating its download.
    /// </summary>
    public async Task ExportData()
    {
        try
        {
            string fileName = "Demo.pdf";
            var renderer = new ChromePdfRenderer();

            // Render the contents of the URL as a PDF document
            var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

            // Save the PDF using a JavaScript function
            await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
        }
        catch (Exception ex)
        {
            // Handle any exceptions that may occur
            Console.Error.WriteLine($"Error in ExportData: {ex.Message}");
        }
    }
}
[using] ReadOnly Property code() As IronPdf
	''' <summary>
	''' This method exports data by converting a URL to a PDF file and initiating its download.
	''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	public async Task ExportData()
'	{
'		try
'		{
'			string fileName = "Demo.pdf";
'			var renderer = New ChromePdfRenderer();
'
'			' Render the contents of the URL as a PDF document
'			var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");
'
'			' Save the PDF using a JavaScript function
'			await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
'		}
'		catch (Exception ex)
'		{
'			' Handle any exceptions that may occur
'			Console.@Error.WriteLine(string.Format("Error in ExportData: {0}", ex.Message));
'		}
'	}
End Property
$vbLabelText   $csharpLabel

O trecho de código acima utiliza dois métodos para gerar documentos PDF a partir de HTML. O primeiro é o método RenderUrlAsPdf do IronPDF, que baixa o conteúdo HTML de um URL fornecido e o converte em formato PDF.

O segundo método é o método estático JSRuntime.InvokeVoidAsync, que aciona o mecanismo JavaScript de um navegador para invocar uma função JavaScript dentro do escopo da página da web que salva o conteúdo do PDF em um arquivo no sistema de arquivos do cliente.

Essa função JavaScript está incluída abaixo:

<script type="text/javascript">
    /**
     * Saves the PDF data as a file on the client's system.
     * @param {string} filename - The name of the file to be created.
     * @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
     */
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            // Download the document in Microsoft Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
<script type="text/javascript">
    /**
     * Saves the PDF data as a file on the client's system.
     * @param {string} filename - The name of the file to be created.
     * @param {string} bytesBase64 - The Base64 encoded string of the PDF data.
     */
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            // Download the document in Microsoft Edge browser
            var data = window.atob(bytesBase64);
            var bytes = new Uint8Array(data.length);
            for (var i = 0; i < data.length; i++) {
                bytes[i] = data.charCodeAt(i);
            }
            var blob = new Blob([bytes.buffer], { type: "application/octet-stream" });
            navigator.msSaveBlob(blob, filename);
            window.navigator.msSaveOrOpenBlob(blob);
        }
        else {
            var link = document.createElement('a');
            link.download = filename;
            link.href = "data:application/octet-stream;base64," + bytesBase64;
            document.body.appendChild(link); // Needed for Firefox
            link.click();
            document.body.removeChild(link);
        }
    }
</script>
HTML

A função JavaScript acima recebe os dados Base64 do Blazor e os converte em um blob antes de salvá-los no local do lado do cliente.

Alternativamente, o método SaveAs da classe ChromePdfRenderer também pode ser usado para salvar documentos PDF no armazenamento local do navegador.

5. Criar um documento PDF a partir de uma string HTML

O seguinte trecho de código mostra como transformar uma string HTML em um documento.

@using IronPdf

@code {
    /// <summary>
    /// Demonstrates turning an HTML string into a PDF document.
    /// </summary>
    public void GeneratePdfFromHtmlString()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");

        // You can save the generated PDF locally
        pdf.SaveAs("HelloWorld.pdf");
    }
}
@using IronPdf

@code {
    /// <summary>
    /// Demonstrates turning an HTML string into a PDF document.
    /// </summary>
    public void GeneratePdfFromHtmlString()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");

        // You can save the generated PDF locally
        pdf.SaveAs("HelloWorld.pdf");
    }
}
[using] ReadOnly Property code() As IronPdf
	''' <summary>
	''' Demonstrates turning an HTML string into a PDF document.
	''' </summary>
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'	public void GeneratePdfFromHtmlString()
'	{
'		var renderer = New ChromePdfRenderer();
'		var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>");
'
'		' You can save the generated PDF locally
'		pdf.SaveAs("HelloWorld.pdf");
'	}
End Property
$vbLabelText   $csharpLabel

O exemplo anterior usa o método de instância RenderHtmlAsPdf para transformar qualquer string de HTML em conteúdo PDF. Além disso, o método SaveAs pode ser usado nos procedimentos descritos anteriormente para salvar esse conteúdo no computador do cliente.

Tutorial Criar um arquivo PDF com Blazor , Figura 7: O aplicativo de geração de PDF em Blazor criado neste tutorial O aplicativo Blazor PDF Generation criado neste tutorial

A captura de tela acima mostra o aplicativo web desenvolvido neste tutorial. Ao clicar no botão "Download", o código C# será executado para gerar o conteúdo do PDF, e uma função JavaScript será executada para baixar o conteúdo do PDF no lado do cliente.

Conclusão

Este artigo demonstrou como desenvolver uma aplicação web Blazor que utiliza a biblioteca IronPDF para gerar arquivos PDF a partir de páginas web.

O IronPDF não é de código aberto, porém, uma chave de avaliação gratuita permite que você o utilize em produção sem marcas d'água.

Perguntas frequentes

Como posso integrar uma biblioteca de PDFs com um aplicativo Blazor do lado do servidor?

Você pode integrar uma biblioteca PDF a um aplicativo Blazor do lado do servidor usando o IronPDF. Primeiro, crie um projeto Blazor no Visual Studio e, em seguida, instale a biblioteca IronPDF por meio do Gerenciador de Pacotes NuGet ou da linha de comando. O IronPDF permite gerar documentos PDF a partir de conteúdo HTML de forma transparente.

Quais métodos estão disponíveis para gerar PDFs a partir de HTML em uma aplicação Blazor?

Em uma aplicação Blazor, você pode usar o método RenderUrlAsPdf do IronPDF para converter URLs de páginas web em PDFs, ou o RenderHtmlAsPdf para gerar PDFs diretamente a partir de strings HTML. Esses métodos oferecem flexibilidade na criação de documentos PDF a partir de diversas fontes HTML.

Como posso salvar um arquivo PDF no sistema de arquivos do cliente em um aplicativo Blazor?

Para salvar um arquivo PDF no sistema de arquivos do cliente em um aplicativo Blazor, você pode usar uma função JavaScript para converter os dados do PDF em um blob e acionar um download. O IronPDF fornece as ferramentas necessárias para gerar o PDF, que pode então ser manipulado usando JavaScript no lado do cliente.

Qual é o processo para criar um projeto Blazor do lado do servidor no Visual Studio?

Criar um projeto Blazor do lado do servidor no Visual Studio envolve selecionar "Novo Projeto" no menu Arquivo, escolher "Aplicativo Blazor do Servidor", especificar o nome e o local do projeto e selecionar a versão apropriada do .NET Framework. Essa configuração permite integrar bibliotecas adicionais, como o IronPDF, para funcionalidades aprimoradas.

Posso converter conteúdo JavaScript e CSS dentro de HTML para PDF usando esta biblioteca?

Sim, você pode converter conteúdo JavaScript e CSS dentro de HTML para PDF usando o IronPDF. Ele suporta a renderização de conteúdo HTML5, CSS e JavaScript, permitindo gerar documentos PDF completos que mantêm o layout e o estilo das páginas da web originais.

Quais são algumas etapas de solução de problemas se a geração de PDF não funcionar como esperado no Blazor?

Se a geração de PDFs não funcionar como esperado no Blazor, verifique se a biblioteca IronPDF está instalada corretamente no projeto. Certifique-se de que o conteúdo HTML esteja formatado e acessível corretamente. Além disso, verifique se há erros de JavaScript no console do navegador que possam estar afetando o processo de renderização do PDF.

Como posso garantir que meus documentos PDF incluam cabeçalhos e rodapés ao usar uma biblioteca de PDFs?

Para incluir cabeçalhos e rodapés em seus documentos PDF usando o IronPDF, você pode configurar as opções de renderização para adicionar conteúdo personalizado. Isso permite incluir informações adicionais, como números de página ou títulos, na saída do PDF.

É possível gerar PDFs para páginas protegidas por autenticação em uma aplicação Blazor?

Sim, o IronPDF pode gerar PDFs para páginas protegidas por autenticação em um aplicativo Blazor. Você precisará gerenciar os cookies ou tokens de autenticação para acessar o conteúdo restrito antes de convertê-lo para PDF usando os recursos da biblioteca.

O IronPDF é compatível com o .NET 10 e quais são os benefícios de usá-lo com o .NET 10?

Sim, o IronPDF é totalmente compatível com o .NET 10 — funciona imediatamente, sem necessidade de soluções alternativas, shims ou APIs descontinuadas. O .NET 10 traz atualizações para o ASP.NET Core e o Blazor, incluindo desempenho aprimorado, melhor gerenciamento de dependências, tratamento de referências de frameworks aprimorado e melhor isolamento de JavaScript, o que beneficia os fluxos de trabalho de geração de PDFs usando páginas Razor, URLs ou conteúdo HTML.

Como o uso do IronPDF com o .NET 10 melhora o desempenho e a eficiência em tempo de execução?

A utilização do IronPDF com o .NET 10 aproveita diversos aprimoramentos de tempo de execução, como a desvirtualização de métodos de interface de array, análise de escape para structs, otimizações JIT aprimoradas e suporte para instruções AVX-512. Essas melhorias reduzem a alocação de memória, diminuem a sobrecarga da coleta de lixo e aceleram tarefas como renderização de HTML e manipulação de PDFs.

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

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim