如何在Blazor服务器中使用C#将Razor转换为PDF

在 Blazor 服务器中使用 C# 将 Razor 转换为 PDF;

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

在 Blazor Server 中使用 IronPDF 的 RenderRazorComponentToPdf 方法将 Razor 组件转换为 PDF。 用最少的代码将 C# UI 组件转换成 PDF,并对页眉、页脚和页面格式进行完全自定义。

快速入门:在几分钟内将Razor组件转换为PDF

使用 IronPDF 在 Blazor Server 应用程序中将 Razor 组件转换为 PDF。 RenderRazorComponentToPdf 方法只需几行代码即可将您的 Razor 组件转换为 PDF。 按照本指南将 Razor 转换为 PDF 整合到您的项目中,只需最少的设置和灵活的自定义选项。

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

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

    PM > Install-Package IronPdf

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

    // 安装-打包 IronPdf.Extensions.Blazor
    var pdf = new IronPdf.ChromePdfRenderer()
        .RenderRazorComponentToPdf<MyComponent>(new Dictionary<string,object> { {"persons",personsList} })
        .SaveAs("component-to-pdf.pdf");
  3. 部署到您的生产环境中进行测试

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

将 Razor 转换为 PDF 需要哪些 NuGet 软件包? <!--说明:说明代码概念的图表或截图 --> **IronPdf.Extensions.Blazor 包**扩展了主 **IronPdf** 包。 在 Blazor 服务器应用程序中将 Razor 组件渲染为 PDF 文档需要这两个软件包。该扩展为 Blazor Server 应用程序提供了集成点,使您无需大量重构即可将现有 Razor 组件转换为 PDF。 安装 IronPdf.Extensions.Blazor 会自动将 IronPDF 核心库作为依赖项。 该扩展包添加了`RenderRazorComponentToPdf`等方法,这些方法可以理解 Blazor 的组件模型并正确渲染绑定数据的组件。 为获得最佳性能和最新功能,请使用这两个软件包的最新版本。 请查看 [changelog](https://ironpdf.com/product-updates/changelog/) 了解更新和改进。 ```shell :InstallCmd 安装-打包 IronPdf.Extensions.Blazor ```
C# 用于 PDF 的 NuGet 库

通过 NuGet 安装

安装-打包 IronPdf.Extensions.Blazor

如何在 Blazor 服务器中将 Razor 组件渲染为 PDF? --> <!--说明:显示代码执行输出或结果的截图 --> 需要一个Blazor Server应用程序项目来将Razor组件转换为PDF。 Blazor Server 应用程序在服务器上运行,并通过 SignalR 连接渲染 UI 更新,因此适用于需要服务器端处理的 PDF 生成。 这种架构可确保在服务器上进行 PDF 渲染,无论客户端使用何种浏览器或设备,都能获得一致的结果。 在开始之前,请确保您已安装 .NET SDK 和 Visual Studio 2019 或更高版本的 ASP.NET 和 Web 开发工作负载。 通过 Visual Studio 的项目模板或使用 .NET CLI,使用 `dotnet new blazorserver` 创建一个新的 Blazor 服务器应用程序。 有关详细的安装说明和特定平台要求,请参阅[安装概述](https://ironpdf.com/get-started/installation-overview/)。

我应该使用什么模型类结构? 添加一个名为 **PersonInfo**的标准 C# 类。 该类是存储人员信息的模型。 插入以下代码: ```csharp :path=/static-assets/pdf/content-code-examples/how-to/razor-to-pdf-blazor-server-model.cs ``` 该模型代表传递给 Razor 组件并在 PDF 中渲染的数据结构。 IronPdf 适用于任何 C# 对象模型,从简单的 POCO 到复杂的实体框架模型。 在设计生成 PDF 的模型时,应考虑数据在最终文档中的显示方式,并相应地构建属性结构。

如何实现生成 PDF 的 Razor 组件? 使用`RenderRazorComponentToPdf`方法将Razor组件转换为PDF。 通过实例化 **`ChromePdfRenderer`** 类访问此方法。 该方法将返回一个 **`PdfDocument`** 对象,用于导出或进一步修改。 返回的 PdfDocument 支持其他修改,包括转换为 [PDF/A](https://ironpdf.com/how-to/pdfa/) 或 [PDF/UA](https://ironpdf.com/how-to/pdfua/) 格式。 您可以[合并或拆分](https://ironpdf.com/how-to/merge-or-split-pdfs/)文档、旋转页面并添加[注释](https://ironpdf.com/how-to/annotations/)或[书签](https://ironpdf.com/how-to/bookmarks/)。 根据需要应用[自定义水印](https://ironpdf.com/how-to/custom-watermark/)。 添加一个名为 **`Person.razor`**的 Razor 组件。 输入以下代码: ```razor @page "/Person" @using BlazorSample.Data; @using IronPdf; @using IronPdf.Extensions.Blazor;

Person

@code { // A parameter to receive a list of persons from the parent component. [Parameter] public IEnumerable persons { get; set; } // Dictionary to hold parameters that will be passed to the PDF renderer. public Dictionary Parameters { get; set; } = new Dictionary(); protected override async Task OnInitializedAsync() { // Initialize the persons list with some sample data. persons = new List { new PersonInfo { Name = "Alice", Title = "Mrs.", Description = "Software Engineer" }, new PersonInfo { Name = "Bob", Title = "Mr.", Description = "Software Engineer" }, new PersonInfo { Name = "Charlie", Title = "Mr.", Description = "Software Engineer" } }; } private async void PrintToPdf() { ChromePdfRenderer renderer = new ChromePdfRenderer(); // Apply text footer to the PDF pages. renderer.RenderingOptions.TextFooter = new TextHeaderFooter() { LeftText = "{date} - {time}", DrawDividerLine = true, RightText = "Page {page} of {total-pages}", Font = IronSoftware.Drawing.FontTypes.Arial, FontSize = 11 }; Parameters.Add("persons", persons); // Render Razor component to PDF and save it. PdfDocument pdf = renderer.RenderRazorComponentToPdf(Parameters); File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData); } } @foreach (var person in persons) { }
Name Title Description
@person.Name @person.Title @person.Description
``` 此方法提供了对所有 **`RenderingOptions`** 功能的访问。 添加[文本和 HTML 页眉和页脚](https://ironpdf.com/how-to/headers-and-footers/),包括[页码](https://ironpdf.com/how-to/page-numbers/),并调整页面尺寸和布局。 `RenderingOptions` 支持 [自定义边距](https://ironpdf.com/how-to/custom-margins/)、响应式设计的视口设置以及动态内容的 JavaScript 执行延迟。 对于复杂的布局或 CSS 框架(如 Bootstrap),请探索[响应式 CSS 呈现功能](https://ironpdf.com/how-to/html-to-pdf-responsive-css/),以确保 PDF 在不同页面尺寸下都能正确显示。

如何在我的 Razor 组件中添加导航? - 导航至 "共享文件夹 "并打开 `NavMenu.razor`. 添加将打开 Razor 组件 `Person` 的部分。 我们的 `Person` 组件将是第二个选项。 ```razor
``` 该导航设置与 Blazor 的路由系统集成,允许用户从应用程序的主导航菜单访问 PDF 生成功能。 `NavLink` 组件可确保正确突出显示活动路径。

PDF 生成过程是怎样的? 运行项目并生成 PDF 文档。 单击 "打印为 PDF "按钮。 IronPdf 处理您的 Razor 组件,将其转换为 HTML,并使用其基于 Chrome 浏览器的渲染引擎将其渲染为 PDF。这保持了与现代网络浏览器相同的视觉保真度。 Visual Studio debugging Blazor app with PDF generation code using ChromePdfRenderer and Razor components 生成的 PDF 将保存在项目的输出目录中。 自定义保存位置,实现浏览器直接下载,或将 PDF 存储在 Azure Blob Storage 等云存储中。 对于生产应用,应针对 PDF 生成可能失败或超出预期持续时间的情况实施错误处理和用户反馈。

在哪里可以下载完整的工作示例? 以压缩文件的形式下载本指南的完整代码。在 Visual Studio 中将其作为 Blazor Server App 项目打开。 示例包括所有依赖项、配置和示例代码,以便立即开始在 Blazor 应用程序中进行 Razor 到 PDF 的转换。 [下载用于Razor到PDF转换的Blazor示例项目](/static-assets/pdf/how-to/razor-to-pdf-blazor-server/BlazorSample.zip) 准备好看看您还能做些什么吗? 查看我们的教程页面:[转换PDF文档](https://ironpdf.com/tutorials/convert-pdf/) 如需了解更多高级应用场景,请参阅我们的 [Blazor 教程](https://ironpdf.com/how-to/blazor-tutorial/),其中涵盖在 Blazor 应用程序中使用 IronPDF 的其他集成模式和最佳实践。

常见问题解答

在 Blazor Server 中将 Razor 组件转换为 PDF 的最快方法是什么?

最快的方法是使用 IronPDF 的 RenderRazorComponentToPdf 方法。只需一行代码,您就可以将任何 Razor 组件转换为 PDF:var pdf = new IronPdf.ChromePdfRenderer().RenderRazorComponentToPdf(new Dictionary { {"persons",personsList} }).SaveAs("component-to-pdf.pdf");

在 Blazor Server 中将 Razor 转换为 PDF 需要哪些 NuGet 软件包?

您需要 IronPdf.Extensions.Blazor 软件包,该软件包会自动将 IronPDF 核心库作为依赖项。使用以下方法安装安装包 IronPdf.Extensions.Blazor

将Razor组件转换为PDF时,我可以添加自定义页眉和页脚吗?

是的,当使用 RenderRazorComponentToPdf 方法转换您的 Razor 组件时,IronPDF 可为页眉、页脚和页面格式提供完整的自定义选项。

为什么推荐使用 Blazor Server 从 Razor 组件生成 PDF?

Blazor Server 应用程序在服务器上运行,通过 SignalR 连接渲染 UI 更新,因此非常适合生成 PDF。这种架构确保了 IronPDF 的渲染发生在服务器端,无论客户端浏览器或设备如何,都能提供一致的结果。

我需要重构现有的Razor组件以将其转换为PDF吗?

这不,IronPdf.Extensions.Blazor软件包使您无需大量重构即可将现有的Razor组件转换为PDF。该扩展提供了能理解Blazor组件模型的集成点。

转换为PDF时,如何向Razor组件传递数据?

您可以在 RenderRazorComponentToPdf 方法中使用 Dictionary 参数传递数据。例如:new Dictionary { {"persons", personsList}} 其中 "persons "是参数名称,personsList 是您的数据。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 17,012,929 | 版本: 2025.12 刚刚发布