如何将 Razor 视图无头转换为 PDF
术语 "无头呈现 "指的是在没有图形用户界面的情况下呈现网页内容的过程(图形用户界面)或浏览器窗口。 While theIronPdf.Extensions.Razor此软件包非常有用,但它不提供无头渲染功能。 无头渲染可以解决IronPdf.Extensions.Razor包无法满足的用例差距。
我们将使用Razor.Templating.Core从 cshtml 转换的软件包(剃刀视图)将其转换为HTML,然后使用IronPDF从中生成PDF文档。
本文灵感来源于以下YouTube视频:
如何将 Razor 视图无头转换为 PDF
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronPDF 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。
Install-Package IronPdf
考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip
手动安装到你的项目中
下载DLL安装 Razor.Templating.Core 包,以将 Razor 视图转换为 ASP.NET Core Web 应用中的 html 文档。
Install-Package Razor.Templating.Core
将Razor视图渲染为PDFs
您将需要一个ASP.NET Core Web应用程序(模型-视图-控制器)项目,将视图转换为 PDF 文件。
添加视图
- 右键单击“Home”文件夹。 选择“添加”和“添加视图”。
创建空的Razor视图并将其命名为“Data.cshtml”。
编辑 Data.cshtml 文件
将您想要渲染为PDF的HTML字符串添加进来:
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
<tr>
<td>John Doe</td>
<td>Software Engineer</td>
<td>Experienced software engineer specializing in web development.</td>
</tr>
<tr>
<td>Alice Smith</td>
<td>Project Manager</td>
<td>Seasoned project manager with expertise in agile methodologies.</td>
</tr>
<tr>
<td>Michael Johnson</td>
<td>Data Analyst</td>
<td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
</tr>
</table>
<table class="table">
<tr>
<th>Name</th>
<th>Title</th>
<th>Description</th>
</tr>
<tr>
<td>John Doe</td>
<td>Software Engineer</td>
<td>Experienced software engineer specializing in web development.</td>
</tr>
<tr>
<td>Alice Smith</td>
<td>Project Manager</td>
<td>Seasoned project manager with expertise in agile methodologies.</td>
</tr>
<tr>
<td>Michael Johnson</td>
<td>Data Analyst</td>
<td>Skilled data analyst proficient in statistical analysis and data visualization.</td>
</tr>
</table>
编辑 Program.cs 文件
在 "Program.cs" 文件中添加以下代码。 下面的代码使用来自 Razor.Templating.Core 库的 RenderAsync
方法将 Razor 视图转换为 HTML。 其次,它实例化ChromePdfRenderer类,并将返回的HTML字符串传递给RenderHtmlAsPdf
方法。 用户可以使用RenderingOptions来访问一系列功能,例如添加自定义文本,包括 HTML 页眉和页脚在生成的 PDF 中定义自定义页边距,并应用页码.
app.MapGet("/PrintPdf", async () =>
{
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
app.MapGet("/PrintPdf", async () =>
{
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
string html = await RazorTemplateEngine.RenderAsync("Views/Home/Data.cshtml");
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, "./wwwroot");
return Results.File(pdf.BinaryData, "application/pdf", "razorViewToPdf.pdf");
});
IRON VB CONVERTER ERROR developers@ironsoftware.com
更改资产链接
导航至“Views”文件夹 -> “Shared”文件夹 -> “_Layout.cshtml”文件。在链接标签中,将“~/”更改为“./”。
这很重要,因为“~/”与IronPDF不兼容。
运行项目
这将向您展示如何运行项目并生成PDF文档。
输出 PDF
下载 ASP.NET Core MVC 项目
您可以下载本指南的完整代码。它是一个压缩文件,您可以在Visual Studio中将其打开为一个ASP.NET Core Web应用程序。(模型-视图-控制器)项目。