如何在ASP .NET Core Web App中将Razor页面转换为PDF

如何在 ASP.NET Core C## 应用程序中将 Razor 页面转换为 PDF.

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF 可在 ASP.NET Core 应用程序中使用 RenderRazorToPdf 方法将 Razor 页面(.cshtml 文件)无缝转换为 PDF 文档,简化了从网页内容生成 PDF 的过程,并完全支持 C# 和 HTML 渲染。

Razor 页面是一个以 .cshtml 为扩展名的文件,它结合了 C# 和 HTML 来生成网页内容。 在 ASP.NET Core 中,Razor Pages 是一种更简单的网络应用程序代码组织方式,非常适合只读或进行简单数据输入的简单页面。

ASP.NET Core Web App是使用ASP.NET Core构建的Web应用程序,这是一个用于开发现代Web应用程序的跨平台框架。

IronPDF简化了在ASP.NET Core Web App项目中从Razor Pages创建PDF文件的过程。 这样就可以在 ASP.NET Core Web Apps 中直接生成 PDF。

快速入门:在几秒钟内将Razor Pages转换为PDF

在 ASP.NET Core 应用程序中将您的 Razor 页面转换为高质量 PDF。 通过使用 RenderRazorToPdf 方法,您可以将 CSHTML 文件转换为 PDF 文档,从而优化您的工作流程并增强文档分发。 本指南将指导您在几分钟内完成所需的简单步骤。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronPDF

    PM > Install-Package IronPdf

  2. 复制并运行这段代码。

    // 安装-打包 IronPdf.Extensions.Razor
    var pdf = new IronPdf.ChromePdfRenderer().RenderRazorToPdf("Views/Home/Index.cshtml");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronPDF,免费试用!
    arrow pointer

简介

<!--说明:说明代码概念的图表或截图 -->

Razor Pages 为在 ASP.NET Core 应用程序中构建动态网页内容提供了一种强大而直观的方法。 当与 IronPDF 的渲染功能相结合时,开发人员可以直接从他们的网页内容创建专业的 PDF 文档。 这种方法去除了复杂的 PDF 生成逻辑,让您可以使用现有的 HTML 和 CSS 技能。

IronPdf 和 Razor Pages 之间的集成对于生成报告、发票、证书和任何其他需要动态数据展示的文档尤为重要。 通过使用您已经熟悉的 Razor 语法,您可以保持网页视图和 PDF 输出之间的一致性。

将 Razor 转换为 PDF 需要哪些 NuGet 软件包? **`IronPdf.Extensions.Razor`包**是主**`IronPdf`**包的扩展。 在 ASP.NET Core Web App 中将 Razor Pages 呈现为 PDF 文档需要 `IronPdf.Extensions.Razor` 和 `IronPdf` 包。有关详细的安装说明,请访问我们的[安装概述](https://ironpdf.com/get-started/installation-overview/)指南。 ```shell # Command to install IronPdf.Extensions.Razor package using NuGet Package Manager 安装-打包 IronPdf.Extensions.Razor ```
C# 用于 PDF 的 NuGet 库

通过 NuGet 安装

安装-打包 IronPdf.Extensions.Razor

如何在 ASP.NET Core 中将 Razor 页面转换为 PDF? 您需要一个 ASP.NET Core Web App 项目来将 Razor Pages 转换为 PDF 文件。 翻译过程包括为数据创建模型,设置 Razor 页面以显示数据,然后使用 IronPDF 的 `RenderRazorToPdf` 方法生成 PDF 输出。

为什么我需要一个用于生成 PDF 的模型类? 模型类是 Razor 页面中数据表示的支柱。 它们提供了一种结构化的方式,将数据从控制器逻辑传递到视图,确保了类型安全性和可维护性。 在生成 PDF 时,这些模型变得更加重要,因为它们定义了将出现在最终文档中的数据的确切结构。 - 在项目中创建一个新文件夹并命名为"Models"。 - 向文件夹中添加一个标准C#类并命名为"Person"。此类将用作个体数据的模型。 使用以下代码片段: ```csharp :path=/static-assets/pdf/content-code-examples/how-to/cshtml-to-pdf-razor-model.cs ```

如何为 PDF 转换设置 Razor 页面? 向"Pages"文件夹中添加一个空的Razor Page,并命名为"persons.cshtml"。 - 使用下面提供的代码示例修改新创建的 "Persons.cshtml "文件。 下面的代码会在浏览器中显示信息。 请注意 Razor 语法如何将 C# 代码无缝集成到 HTML 中,使其非常适合生成可转换为 PDF 的动态内容: ```html @page @using RazorPageSample.Models; @model RazorPageSample.Pages.PersonsModel @{ } @foreach (var person in ViewData["personList"] as List) { }
Name Title Description
@person.Name @person.Title @person.Description
``` ## 将Razor Pages渲染为PDF --> <!--说明:显示代码执行输出或结果的截图 --> 接下来,代码首先实例化**ChromePdfRenderer**类。 将**this**传递给`RenderRazorToPdf`方法即可将此Razor Page转换为PDF文档。 您可以完全访问 **RenderingOptions**中提供的功能。 这些功能包括在生成的 PDF 中应用 [ 页码](https://ironpdf.com/how-to/page-numbers/)、设置 [ 自定义页边距](https://ironpdf.com/how-to/custom-margins/)、添加自定义 [ 文本以及 HTML 页眉和页脚](https://ironpdf.com/how-to/headers-and-footers/)。 您还可以为 PDF 配置 [metadata](https://ironpdf.com/how-to/metadata/) 以确保文档的正确标识和可搜索性。 - 打开"Persons.cshtml"文件的下拉菜单以查看"Persons.cshtml.cs"文件。 - 使用下面的代码修改"Persons.cshtml.cs"。 ```csharp 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 Persons { get; set; } // Handle GET request to load initial data public void OnGet() { Persons = new List { 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 { 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"); } } } ``` `RenderRazorToPdf`方法返回一个**`PdfDocument`**对象,该对象可以进行额外的处理和编辑。 您可以将 PDF 导出为 `PDFA` 或 `PDFUA` 格式,对渲染的 PDF 文档应用数字签名,或合并和拆分 PDF 文档。 该方法还允许您旋转页面、添加注释或书签,以及在 PDF 上加盖自定义水印。 为了加强文档管理,您还可以压缩 PDF 文件,在不影响质量的前提下减小文件大小。 这在处理大型报告或带宽问题时尤其有用。 此外,IronPDF 提供的广泛编辑功能已在我们全面的 PDF 编辑教程中进行了记录。

如何为 PDF 生成页面添加导航? 导航对于 ASP.NET Core 应用程序的用户体验至关重要。 通过将 PDF 生成页面集成到主导航中,用户可以轻松访问该功能,而无需手动键入 URL。 - 导航至Pages文件夹 -> Shared文件夹 -> _Layout.cshtml。 将"Person"导航项放在"Home"之后。 确保 `asp-page` 属性的值与我们的文件名完全匹配,在本例中文件名为 "Persons"。 这可确保在您的 ASP.NET Core 应用程序中正确路由: ```html
```

运行 PDF 生成时会发生什么? 这将向您展示如何运行项目并生成 PDF 文档。 点击 "人员 "导航链接后,您将看到以表格格式显示的数据。 点击 "打印 "按钮会触发 PDF 生成过程,将当前的 Razor 页面视图转换为可下载的 PDF 文档。 Visual Studio showing C# PersonsModel class with OnGet and OnPostAsync methods for PDF generation using IronPDF 生成的 PDF 将保留 Razor 页面的所有样式和格式,确保网页视图和 PDF 输出的外观保持一致。 这种方法尤其适用于生成报告、发票或任何需要从应用程序数据库或业务逻辑中获取数据的文档。

在哪里可以下载完整的 ASP.NET Core Web 应用程序示例? 您可以下载本指南的完整代码作为压缩文件,并在Visual Studio中打开为ASP.NET Core Web App项目。 [下载RazorPageSample.zip ASP.NET Core Web App项目](/static-assets/pdf/how-to/cshtml-to-pdf-razor/RazorPageSample.zip)

常见问题解答

如何在 ASP.NET Core 中将 Razor Pages 转换为 PDF?

您可以使用 IronPDF 的 RenderRazorToPdf 方法在 ASP.NET Core 中将 Razor 页面转换为 PDF。只需安装 IronPdf.Extensions.Razor 包,并使用 ChromePdfRenderer 将 .cshtml 文件直接渲染为 PDF 文档即可。

Razor 转换为 PDF 需要哪些 NuGet 软件包?

您需要两个 NuGet 软件包:IronPdf.Extensions.Razor(扩展包)和 IronPdf(主包)。在 ASP.NET Core Web 应用程序中将 Razor 页面渲染为 PDF 文档需要这两个包。

转换为PDF时,我可以在Razor页面中使用动态数据吗?

是的,IronPDF 完全支持 Razor 页面中的动态数据。在转换为PDF时,您可以使用C#代码、模型绑定和所有标准的Razor语法功能,使其成为生成具有动态内容的报告、发票和证书的理想选择。

我可以从 Razor Pages 生成哪些类型的文档?

IronPDF 的 Razor to PDF 转换功能非常适合生成各种文档类型,包括报告、发票、证书、收据以及任何其他需要动态数据展示的文档,同时还能保持您现有的 HTML 和 CSS 风格。

如何在我的项目中快速实现 Razor 到 PDF 的转换?

使用 IronPDF,您可以在几分钟内实现 Razor 到 PDF 的转换。最简单的工作流程只需5个步骤:安装库、添加模型类、创建Razor页面、编辑.cs文件以使用RenderRazorToPdf方法,然后运行应用程序。

转换是否会保留我的 HTML 和 CSS 样式?

是的,在将 Razor Pages 转换为 PDF 时,IronPDF 会保留您的 HTML 和 CSS 风格。这使您可以使用已经创建的相同样式和布局,保持网页视图和 PDF 输出之间的一致性。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

审核者
Jeff Fritz
Jeffrey T. Fritz
首席项目经理 - .NET 社区团队
Jeff 也是 .NET 和 Visual Studio 团队的首席项目经理。他是 .NET Conf 虚拟会议系列的执行制片人,并主持“Fritz and Friends”直播节目,每周两次与观众一起谈论技术并编写代码。Jeff 撰写研讨会、演示文稿并计划包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP 峰会在内的最大型微软开发者活动的内容。
准备开始了吗?
Nuget 下载 17,012,929 | 版本: 2025.12 刚刚发布