Como converter Razor Pages em PDFs em um aplicativo ASP.NET Core C
O IronPDF permite a conversão perfeita de arquivos Razor Pages (.cshtml) em documentos PDF em aplicativos ASP.NET Core usando o método RenderRazorToPdf para converter PDF a partir de conteúdo da web, com suporte completo para renderização em C# e HTML.
Uma Razor Page é um arquivo com a extensão .cshtml que combina C# e HTML para gerar conteúdo web. No ASP.NET Core, as Razor Pages são uma maneira mais simples de organizar o código para aplicações web, tornando-as ideais para páginas simples, somente leitura ou que realizam entrada de dados simples.
Um aplicativo Web ASP.NET Core é um aplicativo Web criado usando o ASP.NET Core, uma estrutura multiplataforma para o desenvolvimento de aplicativos Web modernos.
O IronPDF simplifica o processo de criação de arquivos PDF a partir de Razor Pages em um projeto de aplicativo Web ASP.NET Core . Isso simplifica a geração de PDFs em aplicativos Web ASP.NET Core .
Início Rápido: Converta Páginas Razor para PDF em Segundos
Converta suas Razor Pages em PDFs de alta qualidade em uma aplicação ASP.NET Core . Ao utilizar o método RenderRazorToPdf, você pode transformar arquivos CSHTML em documentos PDF, otimizando seu fluxo de trabalho e aprimorando a distribuição de documentos. Este guia apresenta os passos simples necessários para alcançar esse objetivo em minutos.
-
Instale IronPDF com o Gerenciador de Pacotes NuGet
PM > Install-Package IronPdf -
Copie e execute este trecho de código.
// Install-Package o Razor IronPDF var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml"); -
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)
- Baixe a biblioteca C# para converter páginas Razor em PDFs em aplicativos Web ASP.NET Core.
- Adicione uma classe de modelo para os dados.
- Crie uma nova página Razor e edite o arquivo ".cshtml" para exibir os dados.
- Edite o arquivo ".cs" e utilize o método `RenderRazorToPdf`
- Baixe o projeto de exemplo para começar rapidamente.
Introdução
As Razor Pages oferecem uma maneira poderosa e intuitiva de criar conteúdo web dinâmico em aplicações ASP.NET Core . Ao combinar essas funcionalidades com os recursos de renderização do IronPDF, os desenvolvedores podem criar documentos PDF profissionais diretamente a partir do conteúdo da web. Essa abordagem elimina a lógica complexa de geração de PDFs e permite que você utilize seus conhecimentos existentes de HTML e CSS.
A integração entre o IronPDF e o Razor Pages é particularmente valiosa para gerar relatórios, faturas, certificados e quaisquer outros documentos que exijam apresentação dinâmica de dados. Utilizando a mesma sintaxe Razor com a qual você já está familiarizado, é possível manter a consistência entre as visualizações da web e as saídas em PDF.
Quais pacotes NuGet eu preciso para a conversão de Razor para PDF?
O pacote IronPdf.Extensions.Razor é uma extensão do pacote principal IronPdf . Os pacotes IronPdf.Extensions.Razor e IronPdf são necessários para renderizar Razor Pages em documentos PDF em um aplicativo Web ASP.NET Core . Para obter instruções detalhadas de instalação, consulte nosso guia de visão geral da instalação .
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Install-Package o Razor IronPDF
# Command to install IronPdf.Extensions.Razor package using NuGet Package Manager
Install-Package o Razor IronPDF
Instalar com NuGet
Install-Package o Razor IronPDF
Como converter Razor Pages em PDFs no ASP.NET Core?
Você precisará de um projeto de aplicativo Web ASP.NET Core para converter Razor Pages em arquivos PDF. O processo envolve a criação de um modelo para seus dados, a configuração de uma Razor Page para exibir esses dados e, em seguida, o uso do método RenderRazorToPdf do IronPDF para gerar a saída em PDF.
Por que preciso de uma classe modelo para geração de PDF?
As classes de modelo servem como a espinha dorsal da representação de dados em suas Razor Pages. Eles fornecem uma maneira estruturada de passar dados da lógica do seu controlador para a sua visualização, garantindo segurança de tipos e facilidade de manutenção. Ao gerar PDFs, esses modelos tornam-se ainda mais cruciais, pois definem a estrutura exata dos dados que aparecerão no documento final.
- Crie uma nova pasta no projeto e nomeie-a como "Modelos". Adicione uma classe C# padrão à pasta e nomeie-a como "Pessoa". Essa classe servirá como modelo para dados individuais. Utilize o seguinte trecho de código:
:path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-model.cs
namespace RazorPageSample.Models
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
}
Namespace RazorPageSample.Models
Public Class Person
Public Property Id() As Integer
Public Property Name() As String
Public Property Title() As String
Public Property Description() As String
End Class
End Namespace
Como configuro uma página Razor para conversão em PDF?
Adicione uma página Razor vazia à pasta "Pages" e nomeie-a como "persons.cshtml".
- Modifique o arquivo "Persons.cshtml" recém-criado usando o exemplo de código fornecido abaixo.
O código abaixo exibe as informações no navegador. Observe como a sintaxe Razor permite a integração perfeita de código C# em HTML, tornando-a ideal para gerar conteúdo dinâmico que pode ser convertido em PDF:
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
@page
@using RazorPageSample.Models;
@model RazorPageSample.Pages.PersonsModel
@{
}
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
@foreach (var person in ViewData["personList"] as List<Person>)
{
<tr>
<td>@person.Name</td>
<td>@person.Title</td>
<td>@person.Description</td>
</tr>
}
</table>
<form method="post">
<button type="submit">Print</button>
</form>
Converter páginas Razor para PDFs
Em seguida, o código abaixo instancia a classe ChromePdfRenderer . Passar isso para o método RenderRazorToPdf é suficiente para converter esta página Razor em um documento PDF.
Você tem acesso completo aos recursos disponíveis em RenderingOptions . Essas funcionalidades incluem a capacidade de aplicar números de página ao PDF gerado, definir margens personalizadas e adicionar texto personalizado, bem como cabeçalhos e rodapés em HTML . Você também pode configurar metadados para seus PDFs para garantir a identificação e a capacidade de busca adequadas dos documentos.
- Abra o menu suspenso do arquivo "Persons.cshtml" para visualizar o arquivo "Persons.cshtml.cs".
- Modifique o arquivo "Persons.cshtml.cs" com o código abaixo.
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
using IronPdf.Razor;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RazorPageSample.Models;
namespace RazorPageSample.Pages
{
public class PersonsModel : PageModel
{
[BindProperty(SupportsGet = true)]
public List<Person> Persons { get; set; }
// Handle GET request to load initial data
public void OnGet()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
}
// Handle POST request to convert Razor page to PDF
public IActionResult OnPost()
{
Persons = new List<Person>
{
new Person { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" },
new Person { Name = "Bob", Title = "Mr.", Description = "Software Engineer" },
new Person { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" }
};
ViewData["personList"] = Persons;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render Razor Page to PDF document
PdfDocument pdf = renderer.RenderRazorToPdf(this);
// Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf");
// Optionally view the output PDF in browser (uncomment below line if needed)
// return File(pdf.BinaryData, "application/pdf");
}
}
}
Imports IronPdf.Razor
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports RazorPageSample.Models
Namespace RazorPageSample.Pages
Public Class PersonsModel
Inherits PageModel
<BindProperty(SupportsGet := True)>
Public Property Persons() As List(Of Person)
' Handle GET request to load initial data
Public Sub OnGet()
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
End Sub
' Handle POST request to convert Razor page to PDF
Public Function OnPost() As IActionResult
Persons = New List(Of Person) From {
New Person With {
.Name = "Alice",
.Title = "Mrs.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Bob",
.Title = "Mr.",
.Description = "Software Engineer"
},
New Person With {
.Name = "Charlie",
.Title = "Mr.",
.Description = "Software Engineer"
}
}
ViewData("personList") = Persons
Dim renderer As New ChromePdfRenderer()
' Render Razor Page to PDF document
Dim pdf As PdfDocument = renderer.RenderRazorToPdf(Me)
' Return the generated PDF file with appropriate content headers
Response.Headers.Add("Content-Disposition", "inline")
Return File(pdf.BinaryData, "application/pdf", "razorPageToPdf.pdf")
' Optionally view the output PDF in browser (uncomment below line if needed)
' return File(pdf.BinaryData, "application/pdf");
End Function
End Class
End Namespace
O método RenderRazorToPdf retorna um objeto PdfDocument que pode ser submetido a processamento e edição adicionais. Você pode exportar o PDF como PDFA ou PDFUA, aplicar uma assinatura digital ao documento PDF renderizado ou mesclar e dividir documentos PDF. O método também permite girar páginas, adicionar anotações ou marcadores e inserir marcas d'água personalizadas em seu PDF.
Para uma gestão documental mais eficiente, também é possível compactar PDFs para reduzir o tamanho dos arquivos sem comprometer a qualidade. Isso é particularmente útil ao lidar com relatórios extensos ou quando a largura de banda é uma preocupação. Além disso, os amplos recursos de edição oferecidos pelo IronPDF estão documentados em nosso tutorial completo de edição de PDF.
Como adiciono navegação à página de geração de PDF?
A navegação é crucial para a experiência do usuário em sua aplicação ASP.NET Core . Ao integrar a página de geração de PDF na sua navegação principal, os usuários podem acessar facilmente a funcionalidade sem precisar digitar URLs manualmente.
- Navegue até a pasta Páginas -> Pasta Compartilhada -> _Layout.cshtml. Coloque o item de navegação "Pessoa" depois de "Início".
Certifique-se de que o valor do atributo asp-page corresponda exatamente ao nome do nosso arquivo, que neste caso é "Persons". Isso garante o roteamento correto dentro da sua aplicação ASP.NET Core :
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
<header>
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-page="/Index">RazorPageSample</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex justify-content-between">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Persons">Person</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
</header>
O que acontece quando eu executo a geração de PDF?
Este guia mostra como executar o projeto e gerar um documento PDF. Ao clicar no link de navegação "Pessoa", você verá os dados exibidos em formato de tabela. Clicar no botão "Imprimir" inicia o processo de geração de PDF, convertendo a visualização atual da página Razor em um documento PDF para download.
O PDF gerado mantém todo o estilo e formatação da sua página Razor , garantindo uma aparência consistente entre a visualização na web e a saída em PDF. Essa abordagem é particularmente útil para gerar relatórios, faturas ou qualquer documento que exija dados do banco de dados ou da lógica de negócios do seu aplicativo.
Onde posso baixar um exemplo completo de aplicativo web ASP.NET Core ?
Você pode baixar o código completo deste guia como um arquivo compactado, que pode ser aberto no Visual Studio como um projeto de aplicativo Web ASP.NET Core .
Baixe o arquivo RazorPageSample.zip, um projeto de aplicativo Web ASP.NET Core.
Perguntas frequentes
Como faço para converter Razor Pages em PDF no ASP.NET Core?
Você pode converter Razor Pages para PDF no ASP.NET Core usando o método RenderRazorToPdf do IronPDF. Basta instalar o pacote IronPDF.Extensions.Razor e usar o ChromePdfRenderer para renderizar seus arquivos .cshtml diretamente em documentos PDF.
Quais pacotes NuGet são necessários para a conversão de Razor para PDF?
Você precisa de dois pacotes NuGet: IronPDF.Extensions.Razor (o pacote de extensão) e IronPDF (o pacote principal). Ambos os pacotes são necessários para renderizar Razor Pages em documentos PDF em aplicativos Web ASP.NET Core.
Posso usar dados dinâmicos em minhas páginas Razor ao convertê-las para PDF?
Sim, o IronPDF oferece suporte completo a dados dinâmicos em Razor Pages. Você pode usar código C#, vinculação de modelo e todos os recursos padrão da sintaxe Razor ao converter para PDF, tornando-o ideal para gerar relatórios, faturas e certificados com conteúdo dinâmico.
Que tipos de documentos posso gerar a partir do Razor Pages?
A conversão de Razor para PDF do IronPDF é perfeita para gerar diversos tipos de documentos, incluindo relatórios, faturas, certificados, recibos e quaisquer outros documentos que exijam apresentação dinâmica de dados, mantendo o estilo HTML e CSS existente.
Com que rapidez posso implementar a conversão de Razor para PDF no meu projeto?
Com o IronPDF, você pode implementar a conversão de Razor para PDF em minutos. O fluxo de trabalho mínimo envolve apenas 5 etapas: instalar a biblioteca, adicionar uma classe de modelo, criar uma página Razor, editar o arquivo .cs para usar o método RenderRazorToPdf e executar seu aplicativo.
A conversão mantém meu estilo HTML e CSS?
Sim, o IronPDF preserva o estilo HTML e CSS ao converter Razor Pages para PDF. Isso permite manter a consistência entre as visualizações da web e as saídas em PDF, usando o mesmo estilo e layout que você já criou.

