Como converter CSHTML para PDF em C#
Converter CSHTML para PDF é uma necessidade comum em muitas aplicações. Esta tarefa pode ser facilmente realizada usando a biblioteca IronPDF em C#.
IronPDF é uma biblioteca .NET popular que permite aos desenvolvedores criar, ler, editar e converter documentos PDF programaticamente. Neste artigo, vamos guiá-lo passo a passo na conversão de CSHTML para PDF com IronPDF em C#, juntamente com exemplos.
Antes de começarmos, vamos discutir alguns conceitos importantes que são necessários para este tutorial.
Conceitos Importantes
Conversor de PDF
Um conversor de PDF é uma ferramenta que converte qualquer documento ou página web imprimível em um documento PDF. Pode ser usado para gerar arquivos PDF a partir de HTML, Word, Excel, ou qualquer outro documento imprimível. Os conversores de PDF vêm em várias formas, incluindo ferramentas online, software de desktop e bibliotecas.
Visão da Razor
Uma visão Razor é um motor de visão usado no ASP.NET Core para gerar páginas HTML dinamicamente. É uma sintaxe de marcação que combina marcação HTML com código C#.
Visão Razor
A visão Razor facilita para os desenvolvedores a criação de páginas web dinâmicas ao separar a lógica de apresentação da lógica de negócios.
Classe Controladora
Uma classe controladora é uma classe C# que lida com requisições HTTP recebidas em uma aplicação ASP.NET Core. Ela contém métodos que correspondem a verbos HTTP específicos (por exemplo, GET, POST, PUT, DELETE) e retorna uma resposta HTTP.
Gerenciador de Pacotes NuGet
O Gerenciador de Pacotes NuGet é uma ferramenta usada no Visual Studio para gerenciar pacotes em projetos .NET. Ele facilita para os desenvolvedores a instalação, atualização e desinstalação de pacotes em seus projetos. Pacotes NuGet são bibliotecas que contêm código reutilizável e são distribuídos via o Gerenciador de Pacotes NuGet.
Injeção de Dependência
Injeção de Dependência é um padrão de design que permite aos desenvolvedores desacoplar os componentes de sua aplicação injetando dependências em suas classes. Torna fácil testar e manter aplicações ao reduzir dependências e tornar o código mais modular.
Agora que cobrimos os conceitos importantes, vamos mergulhar no processo de converter CSHTML para PDF usando IronPDF.
O que é CSHTML?
CSHTML significa C# Razor Syntax HTML. É um tipo de arquivo que contém tanto marcação HTML quanto código C#. Esses arquivos são usados em aplicações ASP.NET Core MVC para definir a interface do usuário das páginas web. O motor de visão Razor é usado para interpretar os arquivos CSHTML e gerar saída HTML que pode ser renderizada por um navegador web.
CSHTML5
O que é o IronPDF?
IronPDF é uma poderosa biblioteca .NET que permite aos desenvolvedores criar, ler, editar e converter documentos PDF em C#. É uma ferramenta popular para gerar documentos PDF programaticamente em aplicações .NET. IronPDF suporta uma ampla gama de recursos, incluindo geração de PDF, manipulação de PDF, conversão de PDF e renderização de PDF.
IronPDF for .NET
How to Convert CSHTML HTML string to PDF files with IronPDF in C#
Converter CSHTML para PDF com IronPDF é um processo simples. A biblioteca oferece uma API conveniente para converter arquivos HTML em documentos PDF. Aqui estão os passos para converter CSHTML para PDF com IronPDF em C#:
Passo 1 Instalar IronPDF
O primeiro passo é instalar IronPDF do NuGet Package Manager em seu projeto C#. Você pode instalar IronPDF baixando o arquivo IronPDF.dll e adicionando-o às referências do seu projeto. Para instalar o IronPDF usando o Gerenciador de Pacotes NuGet, abra o Console do Gerenciador de Pacotes e execute o seguinte comando:
Passo 2 Criar um Arquivo CSHTML
Em seguida, crie um arquivo CSHTML que contenha o conteúdo que você deseja converter em PDF. Neste exemplo, criaremos um arquivo de tutorial CSHTML simples que exibe o texto "Hello, World!".
@{
Layout = null;
}
Hello
Hello, World!
@{
Layout = null;
}
Hello
Hello, World!
Salve este arquivo como "Hello.cshtml" no diretório do seu projeto.
Arquivos PDF em C#
Passo 3 Converter CSHTML para documento PDF
Para converter o arquivo CSHTML para PDF para PDF, usaremos a biblioteca IronPDF em C#. Aqui está o código para converter "Hello.cshtml" em PDF:
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace CSHTMLtoPDF.Controllers
{
public class HomeController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
public HomeController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Index()
{
var items = new[] { "Item 1", "Item 2", "Item 3" };
return View(items);
}
public IActionResult DownloadPDF()
{
var items = new[] { "Item 1", "Item 2", "Item 3" };
// Initialize a new instance of ChromePdfRenderer from IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified Razor view to a PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);
// Set the headers to force the browser to download the PDF
var contentDisposition = new System.Net.Mime.ContentDisposition
{
FileName = "Items.pdf",
Inline = false,
};
Response.Headers.Add("Content-Disposition", contentDisposition.ToString());
// Return the PDF document to the client
return File(pdf.BinaryData, "application/pdf");
}
}
}
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace CSHTMLtoPDF.Controllers
{
public class HomeController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
public HomeController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Index()
{
var items = new[] { "Item 1", "Item 2", "Item 3" };
return View(items);
}
public IActionResult DownloadPDF()
{
var items = new[] { "Item 1", "Item 2", "Item 3" };
// Initialize a new instance of ChromePdfRenderer from IronPDF
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render the specified Razor view to a PDF document
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);
// Set the headers to force the browser to download the PDF
var contentDisposition = new System.Net.Mime.ContentDisposition
{
FileName = "Items.pdf",
Inline = false,
};
Response.Headers.Add("Content-Disposition", contentDisposition.ToString());
// Return the PDF document to the client
return File(pdf.BinaryData, "application/pdf");
}
}
}
Vamos percorrer este código passo a passo:
- Primeiro, importamos os namespaces necessários, incluindo o namespace IronPDF, que contém a funcionalidade de conversão de HTML para PDF.
- Definimos então o método
Index, que simplesmente retorna uma lista de itens para uma visualização Razor. - Definimos o método
DownloadPDF, que é responsável por gerar o documento PDF. - Começamos criando um renderer
ChromePdfRenderer. - Em seguida, usamos o método de extensão
RenderRazorViewToPdfpara gerar uma visualização Razor com dados em um arquivo PDF. - Definimos então os cabeçalhos
Content-Dispositionpara forçar o PDF a ser baixado em vez de exibido no navegador. - Finalmente, retornamos o documento PDF como um arquivo usando o método File.
Este é o código básico para converter CSHTML para PDF com IronPDF em C#. No entanto, existem muitas opções e configurações que você pode usar para personalizar a saída do PDF. Vamos dar uma olhada em algumas dessas opções.
Personalizando o arquivo de saída do PDF
IronPDF oferece várias opções para personalizar a saída do arquivo PDF. Você pode definir opções como tamanho da página, margens, orientação, cabeçalho e rodapé, entre outros. Aqui está um exemplo de como personalizar a saída do PDF:
using IronPdf;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Initialize a new instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Customize rendering options for the PDF
renderer.RenderingOptions.MarginTop = 10; // Set top margin in millimeters
renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
renderer.RenderingOptions.MarginLeft = 20; // Set left margin in millimeters
renderer.RenderingOptions.MarginRight = 20; // Set right margin in millimeters
// Set HTML header for the PDF with a logo
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
MaxHeight = 20, // Height of header in millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
// Set HTML footer for the PDF with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, // Height of footer in millimeters
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
DrawDividerLine = true // Draw a line above the footer
};
// Convert HTML content to PDF
var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");
// Save the PDF to the file system
pdf.SaveAs("Hello.PDF");
}
}
}
using IronPdf;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// Initialize a new instance of ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// Customize rendering options for the PDF
renderer.RenderingOptions.MarginTop = 10; // Set top margin in millimeters
renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
renderer.RenderingOptions.MarginLeft = 20; // Set left margin in millimeters
renderer.RenderingOptions.MarginRight = 20; // Set right margin in millimeters
// Set HTML header for the PDF with a logo
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
MaxHeight = 20, // Height of header in millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
// Set HTML footer for the PDF with page numbers
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, // Height of footer in millimeters
HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
DrawDividerLine = true // Draw a line above the footer
};
// Convert HTML content to PDF
var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");
// Save the PDF to the file system
pdf.SaveAs("Hello.PDF");
}
}
}
Neste exemplo, primeiro criamos uma instância da classe ChromePdfRenderer. Definimos então várias opções usando a propriedade RenderingOptions da classe ChromePdfRenderer. Aqui estão algumas das opções que definimos:
MarginTop,MarginBottom,MarginLeft,MarginRight: Define as margens do documento PDF.HtmlHeader: Define o cabeçalho do documento PDF para exibir um logotipo.HtmlFooter: Define o rodapé do documento PDF para exibir o número da página e o total de páginas.
Depois de definir as opções, chamamos o método RenderHtmlAsPdf com o conteúdo HTML. Finalmente, salvamos o documento PDF em um arquivo chamado "Hello.PDF".
Teste o aplicativo
Com todo o código necessário no lugar, agora podemos testar o aplicativo. Siga estes passos:
- Execute o aplicativo pressionando F5 ou clicando no botão verde "Play" no Visual Studio.
- No seu navegador web, navegue para
http://localhost:/Home/Index, onde está o número da porta atribuído pelo Visual Studio. - Verifique se a lista de itens é exibida corretamente.
- Clique no link "Download PDF" para gerar e baixar o documento PDF.
Se tudo estiver funcionando corretamente, você deverá ver um documento PDF contendo a lista de itens que você definiu anteriormente.
Convertendo um PDF para um Arquivo CSHTML com IronPDF
PDF Para CSHTML
Para demonstrar como converter um PDF para um arquivo CSHTML com IronPDF, criaremos um novo Aplicativo de Console no Visual Studio e utilizaremos o IronPDF para converter um documento PDF de exemplo em um arquivo CSHTML. Siga estes passos:
Passo 1 Criar um Novo Aplicativo de Console
Abra o Visual Studio e crie um novo Aplicativo de Console selecionando "Arquivo > Novo > Projeto" no menu, em seguida selecione "Aplicativo de Console (.NET Framework)" ou "Aplicativo de Console (.NET Core)" da lista de templates de projeto.
Passo 2 Instale o Pacote NuGet IronPDF
Em seguida, precisamos instalar o pacote NuGet IronPDF no nosso Aplicativo de Console. Para fazer isso, clique com o botão direito no projeto no Solution Explorer e selecione "Gerenciar Pacotes NuGet" no menu de contexto.
No Gerenciador de Pacotes NuGet, procure por "IronPDF" e selecione o pacote "IronPDF" nos resultados da pesquisa. Clique no botão "Instalar" para instalar o pacote e suas dependências.
Passo 3 Adicione Arquivos PDF e CSHTML ao Projeto
Para este exemplo, usaremos um arquivo PDF de exemplo que queremos converter para um arquivo CSHTML. Você pode usar qualquer arquivo PDF que desejar para esta etapa.
Adicione o arquivo PDF ao projeto clicando com o botão direito no projeto no Solution Explorer e selecionando "Adicionar > Item Existente" no menu de contexto.
Também precisamos criar um arquivo CSHTML vazio que usaremos para armazenar a string HTML convertida. Para fazer isso, clique com o botão direito no projeto no Solution Explorer e selecione "Adicionar > Novo Item" no menu de contexto. Selecione "Página HTML" na lista de modelos, então dê um nome ao arquivo (por exemplo, "converted.cshtml") e clique "Adicionar".
Passo 4 Converta o PDF para um Arquivo CSHTML
Com os arquivos necessários no lugar, agora podemos escrever o código para converter o PDF em um arquivo CSHTML usando o IronPDF. Adicione o seguinte código ao método Main do seu Aplicativo de Console:
using IronPdf;
namespace PdfToHtml
{
class Program
{
static void Main(string[] args)
{
// Load the PDF file
PdfDocument pdf = PdfDocument.FromFile("sample.PDF");
// Convert the PDF to an HTML string
string html = pdf.ToHtml();
// Save the HTML string to the CSHTML file
System.IO.File.WriteAllText("converted.cshtml", html);
}
}
}
using IronPdf;
namespace PdfToHtml
{
class Program
{
static void Main(string[] args)
{
// Load the PDF file
PdfDocument pdf = PdfDocument.FromFile("sample.PDF");
// Convert the PDF to an HTML string
string html = pdf.ToHtml();
// Save the HTML string to the CSHTML file
System.IO.File.WriteAllText("converted.cshtml", html);
}
}
}
Por que você deve usar IronPDF?
IronPDF é uma escolha popular entre os desenvolvedores .NET por algumas razões principais:
Poderosas capacidades de geração de PDF: IronPDF oferece uma ampla gama de recursos e opções para criar e manipular documentos PDF programaticamente, incluindo a capacidade de adicionar texto, imagens e outros conteúdos às páginas de PDF, bem como a capacidade de mesclar e dividir documentos PDF existentes.
Capacidades versáteis de conversão de PDF: IronPDF não só permite aos desenvolvedores gerar documentos PDF, mas também fornece funcionalidade para converter PDFs em strings HTML ou arquivos CSHTML. Isso pode ser útil em situações onde você precisa exibir conteúdo PDF em um aplicativo web ou extrair dados de documentos PDF e usá-los em um fluxo de trabalho baseado na web.
API fácil de usar: A API do IronPDF é projetada para ser intuitiva e fácil de usar, com uma ampla gama de métodos e propriedades auxiliares que facilitam para os desenvolvedores gerar e manipular documentos PDF programaticamente.
Forte suporte da comunidade: IronPDF tem uma grande e ativa comunidade de desenvolvedores .NET que contribuem para o seu desenvolvimento e oferecem suporte a outros desenvolvedores que estão utilizando a biblioteca.
Boa documentação: A documentação do IronPDF é extensa e bem organizada, com documentação de referência de API detalhada, tutoriais e exemplos que facilitam para os desenvolvedores começarem e aprenderem a usar a biblioteca.
A combinação de poderosa geração e capacidades de conversão de PDF, API fácil de usar, forte suporte da comunidade e boa documentação fazem do IronPDF uma escolha popular entre os desenvolvedores .NET que precisam trabalhar com documentos PDF em seus aplicativos.
Conclusão
Converter CSHTML para PDF é uma necessidade comum em muitas aplicações. Com IronPDF, esta tarefa pode ser facilmente realizada em C#. Neste artigo, mostramos os passos para converter CSHTML para PDF com IronPDF, junto com exemplos.
Também mostramos como personalizar o resultado do PDF definindo várias opções, como tamanho do papel, margens, cabeçalho e rodapé, e mais. Com IronPDF, você pode criar documentos PDF de alta qualidade a partir de seus arquivos CSHTML de forma rápida e fácil.
Quer você precise criar documentos PDF do zero, converter PDFs em strings HTML ou arquivos CSHTML, ou extrair dados de documentos PDF, o IronPDF oferece uma API flexível e intuitiva que facilita a realização do trabalho.
Com seu forte suporte da comunidade e documentação extensa, o IronPDF é uma escolha popular entre os desenvolvedores .NET que precisam trabalhar com PDFs em suas aplicações. E ao comprar o pacote Iron Software, os desenvolvedores podem obter acesso a um conjunto abrangente de bibliotecas .NET para trabalhar com formatos de arquivo comuns a um preço com desconto, tornando-a um excelente valor para qualquer equipe de desenvolvimento .NET.
Se você precisar trabalhar com documentos PDF em suas aplicações .NET, o IronPDF é definitivamente algo a se considerar. Com suas poderosas funcionalidades, facilidade de uso e variedade de opções de licenciamento, é uma ferramenta versátil e confiável que pode ajudá-lo a realizar o trabalho de forma rápida e eficiente.