IRONSOFTWAREHOME

Como converter Views em PDFs em C# ASP.NET Core MVC

Curtis Chau
Curtis Chau
Updated: 4 de junho de 2026

Converta Visualizações MVC do ASP.NET Core para PDFs usando o método RenderRazorViewToPdf do IronPDF, que transforma arquivos .cshtml em documentos PDF de alta qualidade com uma linha de código em seu aplicativo MVC.

Uma View é um componente do framework ASP.NET usado para gerar marcação HTML em aplicações web. Faz parte do padrão Model-View-Controller (MVC), comumente usado em aplicações ASP.NET MVC e ASP.NET Core MVC. As Views são responsáveis ​​por apresentar os dados aos usuários, renderizando o conteúdo HTML dinamicamente. As visualizações normalmente usam a sintaxe Razor , uma sintaxe de marcação para incorporar código baseado em servidor em páginas da web, o que as torna ferramentas poderosas para criar documentos PDF orientados a dados.

Início rápido: Converter CSHTML para PDF em ASP.NET Core

Transforme Views do ASP.NET Core MVC em PDFs usando o IronPDF. Com uma linha de código, rendere seus arquivos .cshtml em documentos PDF. Integre essa funcionalidade diretamente em sua aplicação MVC para geração perfeita de PDFs a partir de visualizações HTML dinâmicas. Siga este guia para configurar seu ambiente e começar a conversão.

  1. 1Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf

  2. 2Copie e execute este trecho de código.

    // using IronPdf.Extensions.Mvc.Core
    new IronPdf.ChromePdfRenderer().RenderRazorViewToPdf(HttpContext, "Views/Home/Report.cshtml", model).SaveAs("report.pdf");
    C#
  3. 3Implante para testar em seu ambiente de produção.

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

ASP.NET Core Web App MVC (Model-View-Controller) é uma estrutura de aplicação web fornecida pela Microsoft para a criação de aplicações web utilizando ASP.NET Core.

  • Model: Representa dados e lógica de negócios, administra interações de dados, comunica com fontes de dados.
  • View: Apresenta a interface do usuário, exibe dados, renderiza informações aos usuários.
  • Controller: Gerencia a entrada do usuário, responde a solicitações, comunica-se com o Model, orquestrando interações de Modelo-Visão.

O IronPDF permite a criação direta de arquivos PDF a partir de Views em projetos ASP.NET Core MVC. Isso simplifica a geração de PDFs no ASP.NET Core MVC, oferecendo suporte a recursos modernos, incluindo estilização CSS , execução de JavaScript e fontes personalizadas .

Que pacote preciso para as extensões do IronPDF ?

O pacote IronPdf.Extensions.Mvc.Core é uma extensão do pacote principal IronPdf. Ambos os pacotes IronPdf.Extensions.Mvc.Core e IronPdf são necessários para renderizar Visualizações em documentos PDF no ASP.NET Core MVC. O pacote de extensão fornece funcionalidades específicas para integração com o sistema de injeção de dependência do ASP.NET Core e o pipeline de renderização de visualizações Razor .

PM > Install-Package IronPDF

Por que preciso tanto do IronPDF quanto do pacote de extensões?

O pacote principal do IronPDF contém o motor de renderização de PDF central e a funcionalidade fundamental, enquanto o pacote Extensions.Mvc.Core fornece integração especializada com o sistema de renderização de visão do ASP.NET Core MVC. Essa separação permite uma melhor modularidade e garante que você inclua apenas a funcionalidade específica necessária para o seu tipo de projeto. O pacote de extensão inclui a interface IRazorViewRenderer e a implementação necessária para converter visualizações Razor em HTML antes da geração de PDF.

Qual versão do pacote NuGet devo usar?

Sempre use versões correspondentes de IronPdf e IronPdf.Extensions.Mvc.Core para garantir a compatibilidade. Para obter as versões estáveis ​​mais recentes e informações sobre compatibilidade de versões, consulte a documentação dos pacotes NuGet . Ao atualizar, certifique-se de que ambos os pacotes sejam atualizados juntos para manter o funcionamento correto.

Quais são os problemas de instalação mais comuns?

Problemas comuns de instalação incluem incompatibilidade de versões entre os pacotes principais e de extensão, dependências ausentes ou requisitos específicos da plataforma. Caso encontre problemas, certifique-se de que seu projeto esteja direcionado a uma versão compatível do .NET e consulte a visão geral da instalação para obter etapas de solução de problemas.

Biblioteca NuGet C# para PDF

Instalar com NuGet

Install-Package IronPDF

Como faço para renderizar visualizações em PDFs?

Você precisa de um projeto de aplicativo Web ASP.NET Core (Model-View-Controller) para converter Views em arquivos PDF. O processo envolve criar uma ação de controlador que usa o método RenderRazorViewToPdf do IronPDF para transformar suas visualizações Razor em documentos PDF. Essa abordagem aproveita todo o poder da sintaxe Razor , permitindo que você crie PDFs complexos, orientados a dados e com conteúdo dinâmico.

Que tipo de projeto devo usar?

Utilize o modelo de aplicativo Web ASP.NET Core (Model-View-Controller) para obter compatibilidade ideal com os recursos de renderização de visualização do IronPDF. Este tipo de projeto fornece a infraestrutura necessária para a renderização de visualizações, incluindo o mecanismo de visualização Razor e o roteamento adequado. Para projetos existentes, certifique-se de que sigam o padrão MVC e que tenham os recursos de renderização de visualização necessários instalados.

Posso usar isso com APIs mínimas?

Embora as APIs Minimal não tenham suporte integrado para visualização, você ainda pode usar os recursos de conversão de HTML para PDF do IronPDF. Para geração de PDFs baseada em visualizações, utilize a abordagem MVC tradicional ou considere o Razor Pages como alternativa.

Como adiciono uma classe de modelo?

  • Navegue até a pasta "Modelos".
  • Crie um novo arquivo de classe C# chamado "Person". Essa classe servirá como modelo para representar dados individuais. Utilize o seguinte trecho de código:
namespace ViewToPdfMVCCoreSample.Models
{
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }
}

Por que preciso de um modelo para geração de PDF?

Os modelos fornecem dados estruturados que podem ser passados ​​para as visualizações para renderização. Essa separação de responsabilidades garante que sua lógica de geração de PDFs permaneça limpa e de fácil manutenção. O modelo funciona como um contrato entre o seu controlador e a sua visualização, garantindo a segurança de tipos e habilitando o suporte ao IntelliSense nas suas visualizações Razor .

Quais tipos de dados funcionam melhor com visualizações?

Tipos de dados e coleções simples funcionam melhor para a geração de PDFs. Objetos aninhados complexos podem ser usados, mas podem exigir lógica de visualização adicional. Para um desempenho ideal, simplifique as estruturas de dados complexas no seu controlador antes de passá-las para a visualização. Considere usar ViewModels projetados especificamente para saída em PDF quando seus modelos de domínio forem muito complexos.

Aqui está um exemplo de uma estrutura de modelo mais complexa, adequada para geração de PDF:

public class InvoiceViewModel
{
    public string InvoiceNumber { get; set; }
    public DateTime InvoiceDate { get; set; }
    public decimal TotalAmount { get; set; }
    public List<InvoiceLineItem> LineItems { get; set; }
    public CustomerInfo Customer { get; set; }
    
    // Computed property for PDF display
    public string FormattedTotal => TotalAmount.ToString("C");
}

public class InvoiceLineItem
{
    public string Description { get; set; }
    public int Quantity { get; set; }
    public decimal UnitPrice { get; set; }
    public decimal LineTotal => Quantity * UnitPrice;
}

public class CustomerInfo
{
    public string Name { get; set; }
    public string Email { get; set; }
    public string Address { get; set; }
}

Como faço para editar o controlador?

Navegue até a pasta "Controllers" e abra o arquivo HomeController.cs. Faremos alterações apenas no HomeController e adicionaremos a ação Persons. Consulte o código abaixo para obter orientações:

O código abaixo primeiro instancia a classe ChromePdfRenderer, passando um IRazorViewRenderer, o caminho para nosso Views/Home/Persons.cshtml e o List que contém os dados necessários para o método RenderRazorViewToPdf. Os usuários podem usar RenderingOptions para acessar uma variedade de recursos, como adicionar texto personalizado, incluindo cabeçalhos e rodapés HTML no PDF resultante, definindo margens personalizadas e aplicando numeração de páginas. Para opções de renderização mais avançadas, consulte a documentação de opções de renderização.

Observe: O documento PDF pode ser visualizado no navegador usando o seguinte código: File(pdf.BinaryData, "application/pdf"). No entanto, baixar o PDF depois de visualizá-lo no navegador resulta em um documento PDF corrompido.
using IronPdf.Extensions.Mvc.Core;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using ViewToPdfMVCCoreSample.Models;

namespace ViewToPdfMVCCoreSample.Controllers
{
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;
        private readonly IRazorViewRenderer _viewRenderService;
        private readonly IHttpContextAccessor _httpContextAccessor;
        
        public HomeController(ILogger<HomeController> logger, IRazorViewRenderer viewRenderService, IHttpContextAccessor httpContextAccessor)
        {
            _logger = logger;
            _viewRenderService = viewRenderService;
            _httpContextAccessor = httpContextAccessor;
        }

        public IActionResult Index()
        {
            return View();
        }

        public async Task<IActionResult> Persons()
        {
            // Example list of persons
            var 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" }
            };

            // Check if the request method is POST
            if (_httpContextAccessor.HttpContext.Request.Method == HttpMethod.Post.Method)
            {
                // Create a new PDF renderer
                ChromePdfRenderer renderer = new ChromePdfRenderer();
                
                // Configure rendering options for better output
                renderer.RenderingOptions.MarginTop = 40;
                renderer.RenderingOptions.MarginBottom = 40;
                renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;
                renderer.RenderingOptions.Title = "Persons Report";

                // Render View to PDF document
                PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Persons.cshtml", persons);

                Response.Headers.Add("Content-Disposition", "inline");

                // Output PDF document
                return File(pdf.BinaryData, "application/pdf", "viewToPdfMVCCore.pdf");
            }

            return View(persons);
        }

        public IActionResult Privacy()
        {
            return View();
        }

        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
}

Após usar o método RenderRazorViewToPdf, você recebe um objeto PdfDocument aberto a aprimoramentos e modificações adicionais. Você pode converter o PDF para os formatos PDF/A ou PDF/UA, adicionar sua assinatura digital ao PDF gerado ou mesclar e dividir documentos PDF conforme necessário. Além disso, a biblioteca permite girar páginas, inserir anotações ou marcadores e imprimir marcas d'água exclusivas em seus arquivos PDF.

O que é o Serviço IRazorViewRenderer?

O IRazorViewRenderer é uma interface de serviço fornecida pelo pacote IronPdf.Extensions.Mvc.Core que lida com a conversão de visualizações Razor para HTML. Ele se integra ao motor de visão do ASP.NET Core para processar arquivos .cshtml com seus modelos associados, executando toda a sintaxe Razor e produzindo o HTML final que o IronPDF converte em PDF.

Por que verificar o método POST antes de renderizar?

A verificação do método POST garante que a geração do PDF ocorra somente quando solicitada explicitamente por meio do envio de um formulário. Isso evita a geração acidental de PDFs ao carregar a página e permite que a mesma ação sirva tanto para a visualização em HTML (no método GET) quanto para o download do PDF (no método POST). Este padrão segue os princípios RESTful e proporciona uma melhor experiência ao usuário.

Como posso personalizar a saída em PDF?

O IronPDF oferece extensas opções de personalização através da propriedade RenderingOptions. Aqui está um exemplo com configurações mais avançadas:

// Advanced rendering configuration example
var renderer = new ChromePdfRenderer();

// Page setup
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Headers and footers with merge fields
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    Height = 25,
    HtmlFragment = "<div style='text-align: center; font-size: 12px;'>Page {page} of {total-pages}</div>"
};

// JavaScript execution delay for dynamic content
renderer.RenderingOptions.WaitFor.RenderDelay(500); // Wait 500ms for JS execution
renderer.RenderingOptions.WaitFor.NetworkIdle0(); // Wait for network requests

// Apply watermark
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    DrawDividerLine = true,
    CenterText = "CONFIDENTIAL",
    Font = IronSoftware.Drawing.FontTypes.Arial,
    FontSize = 16
};
C#

Quais são os erros comuns em controladores?

Os erros comuns incluem exceções de referência nula quando os serviços não são injetados corretamente, problemas de caminho ao especificar locais de visualização e problemas de vinculação de modelo. Certifique-se de que todos os serviços necessários estejam registrados em Program.cs e use caminhos relativos a partir do diretório raiz do projeto ao especificar locais de visualização. Para solucionar problemas, ative as mensagens de erro detalhadas no modo de desenvolvedor.

Minha biblioteca favorita desse tipo é o IronPDF. Ele permite a manipulação rápida e eficiente de arquivos PDF. Além disso, possui muitos recursos valiosos, como a exportação para o formato PDF/A e a assinatura digital de documentos PDF.

Milan Jovanovic

Microsoft MVP

Veja o estudo de caso

Com o IronOCR, podemos economizar US$ 40.000 por ano em processamento manual, ao mesmo tempo que aumentamos a produtividade e liberamos recursos para tarefas de alto impacto. Eu o recomendo fortemente.

Brent Matzelle

Diretor de Tecnologia, OPYN

Veja o estudo de caso

O IronSuite desempenha um papel crucial nas nossas operações. Estas são ferramentas que aumentam a eficiência no negócio, incluindo a criação de plantas baixas e melhoria na gestão de inventário.

David Jones

Engenheiro(a) de Software Líder, Agorus Build

Veja o estudo de caso

Como adiciono uma vista?

  • Clique com o botão direito na ação Person recém-adicionada e selecione "Add View."

Menu de contexto do Visual Studio mostrando a opção 'Add View...' destacada ao clicar com o botão direito no método Persons()

  • Selecione "Visão Razor " para o novo item com andaimes.

Diálogo Add Razor View no Visual Studio mostrando seleção do template List e classe de modelo Person com opções de layout

  • Selecione o template "List" e a classe de modelo Person.

Diálogo Add Razor View no Visual Studio mostrando template List e seleção de classe de modelo Person com opções de layout

Isso cria um arquivo .cshtml chamado Persons.

  • Navegue até a pasta "Views" -> pasta "Home" -> arquivo Persons.cshtml.

IronPdf.Extensions.Mvc.Core

Para adicionar um botão que invoque a ação Persons, use o código abaixo:

@using (Html.BeginForm("Persons", "Home", FormMethod.Post))
{
    <input type="submit" value="Print Person" />
}
HTML

Por que usar FormMethod.Post para Geração de PDF?

Usar FormMethod.Post para geração de PDF segue as melhores práticas da web ao tornar a ação explícita e prevenir geração não desejada de PDF a partir de atualizações do navegador ou URLs marcados. As solicitações POST devem ser idempotentes (não alterar o estado do servidor), enquanto as solicitações POST indicam uma ação que produz um resultado — neste caso, gerando um documento PDF.

Como posso estilizar o botão de impressão em PDF?

Estilize o botão de impressão usando classes CSS e melhore-o com JavaScript para uma melhor experiência do usuário. Aqui está uma versão melhorada:

@using (Html.BeginForm("Persons", "Home", FormMethod.Post, new { @class = "pdf-form" }))
{
    <button type="submit" class="btn btn-primary pdf-download-btn">
        <i class="fas fa-file-pdf"></i> Download as PDF
    </button>
}

<style>
    .pdf-download-btn {
        background-color: #dc3545;
        color: white;
        padding: 10px 20px;
        border: none;
        border-radius: 5px;
        cursor: pointer;
        transition: background-color 0.3s ease;
    }
    
    .pdf-download-btn:hover {
        background-color: #c82333;
    }
    
    .pdf-download-btn:active {
        transform: translateY(1px);
    }
</style>

<script>
    // Optional: Show loading indicator during PDF generation
    document.querySelector('.pdf-form').addEventListener('submit', function() {
        const button = this.querySelector('button');
        button.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Generating PDF...';
        button.disabled = true;
    });
</script>
HTML

Quais modelos de visualização funcionam melhor para PDFs?

Os templates List e Details funcionam particularmente bem para geração de PDF, pois fornecem layouts estruturados. Modelos personalizados, criados especificamente para saída em PDF, geralmente produzem os melhores resultados. Considere criar visualizações de PDF dedicadas que otimizem o layout para impressão em vez da exibição na tela, removendo elementos de navegação e focando na apresentação do conteúdo.

Como adiciono uma seção à barra de navegação superior?

  • Na mesma pasta "Views" navegue para a pasta "Shared" -> _Layout.cshtml. Coloque o item de navegação Person após Home.

Certifique-se de que o valor para o atributo asp-action corresponda exatamente com o nome do nosso arquivo, que neste caso é Persons.

<header>
    <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
        <div class="container-fluid">
            <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">ViewToPdfMVCCoreSample</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-controller="Home" asp-action="Index">Home</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Persons">Person</a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
</header>
HTML

Por que o asp-action precisa corresponder exatamente?

O atributo asp-action usa os auxiliares de tag do ASP.NET Core para gerar o URL correto baseado em sua configuração de roteamento. Uma correspondência exata garante que o link seja direcionado para a ação correta do controlador. Incompatibilidades resultam em erros 404 ou no direcionamento para ações não intencionais. O sistema de tags auxiliares diferencia maiúsculas de minúsculas e deve corresponder exatamente ao nome do método no seu controlador.

Quando os links de navegação não correspondem às ações do controlador, os usuários encontram erros 404 ou são redirecionados para páginas incorretas. Durante o desenvolvimento, a página de exceções do desenvolvedor do ASP.NET Core exibe erros de roteamento detalhados. Em produção, os usuários veem páginas de erro genéricas. Verifique sempre se os links de navegação correspondem exatamente aos nomes das ações do controlador para evitar problemas na experiência do usuário.

Como faço para editar o arquivo Program.cs?

Registre a interface IHttpContextAccessor e IRazorViewRenderer no contêiner de injeção de dependência (DI). Confira o código abaixo para referência.

using IronPdf.Extensions.Mvc.Core;
using Microsoft.AspNetCore.Mvc.ViewFeatures;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllersWithViews();

builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
builder.Services.AddSingleton<ITempDataProvider, CookieTempDataProvider>();

// Register IRazorViewRenderer here
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();

// Optional: Configure IronPDF license if you have one
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

Por que registrar serviços como Singleton?

Serviços Singleton são criados uma vez e reutilizados durante toda a vida útil do aplicativo, tornando-os eficientes para serviços sem estado como IRazorViewRenderer. Esse padrão reduz a sobrecarga de memória e melhora o desempenho, já que o serviço de renderização da visualização não mantém um estado específico da solicitação. O IHttpContextAccessor deve ser singleton para ser acessível em diferentes durações de serviço.

Para que serve o ITempDataProvider?

ITempDataProvider permite armazenamento temporário de dados entre solicitações, comumente usado para exibir mensagens após redirecionamentos. No contexto da geração de PDFs, isso garante que o estado da visualização seja mantido corretamente ao renderizar as visualizações em PDF. O CookieTempDataProvider armazena esses dados temporários em cookies criptografados, fornecendo um mecanismo seguro para gerenciamento de estado.

Posso usar serviços com escopo definido?

Embora você possa usar serviços com escopo para alguns cenários, IRazorViewRenderer funciona melhor como singleton porque não mantém estado específico de solicitação. O uso de serviços com escopo criaria novas instâncias para cada solicitação, aumentando o uso de memória sem nenhum benefício. No entanto, se você precisar injetar serviços com escopo em suas visualizações, assegure-se de gerenciar adequadamente o ciclo de vida do serviço para evitar erros em tempo de execução.

Execute o projeto

Este vídeo mostra como executar o projeto e gerar um documento PDF. Quando você executar o aplicativo, navegue até a página Persons usando o menu de navegação superior e clique no botão Print Person para gerar e baixar o PDF.

Visual Studio mostrando o HomeController.cs com código de controlador do ASP.NET Core MVC e assistência do IntelliSense

Onde posso baixar o projeto ASP.NET Core MVC?

Baixe o código completo deste guia. Ele está compactado em um arquivo zip que você pode abrir no Visual Studio como um projeto de Aplicativo Web ASP.NET Core (Model-View-Controller).

Baixe o projeto de exemplo ASP.NET Core MVC

O que está incluído no projeto de exemplo?

O projeto de exemplo inclui um aplicativo ASP.NET Core MVC totalmente configurado com integração ao IronPDF , demonstrando a conversão de visualização para PDF. Ele contém o modelo Person, HomeController com lógica de geração de PDF, Persons visualiza com sintaxe Razor adequada e todos os registros de serviços necessários em Program.cs. O projeto também inclui exemplos de configurações de estilo e layout otimizadas para saída em PDF.

Qual versão do Visual Studio devo usar?

Para obter a melhor experiência com projetos .NET 6+, recomenda-se o Visual Studio 2022 (versão 17.0 ou posterior). O Visual Studio Code com extensões C# também funciona bem para desenvolvimento multiplataforma. Certifique-se de ter o ASP.NET e o pacote de desenvolvimento web instalados. O projeto tem como alvo o .NET 6.0 por padrão, mas pode ser atualizado para versões mais recentes.

Como posso solucionar problemas de configuração de projeto?

Problemas comuns de instalação incluem pacotes NuGet ausentes, versões incorretas do SDK do .NET ou problemas de configuração. Primeiro, restaure os pacotes NuGet usando dotnet restore ou através do Gerenciador de Pacotes do Visual Studio. Verifique se sua versão do .NET SDK corresponde aos requisitos do projeto usando dotnet --version. Para questões relacionadas ao licenciamento, consulte a documentação da chave de licença. Caso ocorram problemas de renderização, consulte o guia de solução de problemas para obter soluções.

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

Perguntas frequentes

Qual é a maneira mais fácil de converter visualizações CSHTML em PDF no ASP.NET Core MVC?

A maneira mais fácil é usar o método RenderRazorViewToPdf do IronPDF, que pode converter seus arquivos .cshtml em documentos PDF com apenas uma linha de código. Basta chamar: new IronPdf.ChromePdfRenderer().RenderRazorViewToPdf(HttpContext, "Views/Home/Report.cshtml", model).SaveAs("report.pdf");

Quais pacotes NuGet eu preciso para converter Views em PDFs no ASP.NET Core MVC?

Você precisa de dois pacotes: IronPDF (o pacote principal) e IronPdf.Extensions.Mvc.Core (o pacote de extensão). O pacote de extensão fornece funcionalidades específicas para integração com o sistema de injeção de dependência do ASP.NET Core e o pipeline de renderização de visualizações Razor.

Posso aplicar estilos CSS e JavaScript ao converter CSHTML para PDF?

Sim, o IronPDF oferece suporte completo a estilos CSS, execução de JavaScript e fontes personalizadas ao renderizar visualizações em PDF. Isso garante que seus PDFs mantenham a mesma aparência e funcionalidade de suas visualizações da web, incluindo CSS responsivo e conteúdo JavaScript dinâmico.

Quais são os principais passos para implementar a conversão de View para PDF no meu projeto ASP.NET Core MVC?

O fluxo de trabalho envolve 5 etapas: 1) Baixe o IronPDF e sua extensão MVC Core, 2) Adicione uma classe de modelo para seus dados, 3) Edite seu Controller para usar o método RenderRazorViewToPdf, 4) Crie ou modifique uma View (arquivo .cshtml) para renderização de PDF e 5) Execute seu aplicativo para gerar PDFs.

Como o padrão MVC funciona com a geração de PDFs a partir de Views?

No ASP.NET Core MVC, o Modelo contém seus dados e lógica de negócios, a Visualização (seu arquivo .cshtml) apresenta a interface do usuário e exibe os dados, e o Controlador lida com as solicitações e usa o método RenderRazorViewToPdf do IronPDF para orquestrar a geração do PDF a partir da Visualização.

Is it possible to use minimal APIs for PDF generation with IronPDF?

While minimal APIs don't have built-in view support, you can still use IronPDF's HTML to PDF conversion features. For view-based PDF generation, use the traditional MVC approach or consider Razor Pages.

Which project type is recommended for IronPDF's view rendering features?

The ASP.NET Core Web App (Model-View-Controller) template is recommended for optimal compatibility with IronPDF's view rendering features.

How do I handle common installation issues with IronPDF?

Common issues include version mismatches between core and extension packages or missing dependencies. Ensure your project targets a supported .NET version and review the installation overview for troubleshooting steps.

What troubleshooting steps should I take for project setup issues?

For setup issues, ensure all NuGet packages are restored and your .NET SDK version matches project requirements. For rendering issues, consult IronPDF's troubleshooting guide.

What is the `IRazorViewRenderer` service used for in IronPDF?

The `IRazorViewRenderer` service, provided by the `IronPdf.Extensions.Mvc.Core` package, handles the conversion of Razor views to HTML. It integrates with ASP.NET Core's view engine, executing Razor syntax to produce the final HTML that IronPDF converts to PDF.

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 bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 20,756,830Versão:2026.7recém-lançado

Obtenha o seu GRÁTIS

Obtenha uma chave de avaliação de 30 dias instantaneamente.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.
bullet_testTeste em produção
sem marcas d'água
bullet_calendar30 dias completos
produto funcional
bullet_supportSuporte técnico 24 horas por dia,
5 dias por semana, durante o teste
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronPDF".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.7

ou faça o download do Windows Installer aqui .

  1. Baixe e descompacte o IronPDF em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronPDF.dll".

Licenças a partir de US$ 749

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.