使用IRONPDF 使用Blazor教程创建PDF文件 Curtis Chau 已更新:七月 28, 2025 Download IronPDF NuGet 下载 DLL 下载 Windows 安装程序 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article IronPDF 是一个有名的 C# 库,可以与 Blazor 应用程序一起使用。 本次评审将指导您如何使用 IronPDF 将 PDF 报告嵌入到 Blazor 应用程序中,展示其无缝集成和高效性。 class="hsg-featured-snippet"> 如何在 Blazor 中创建 PDF 文件 在 Visual Studio 中创建一个新的 Blazor 项目 安装适用于 Blazor 应用程序的 HTML 到 PDF 库 根据 URL 从网页创建 PDF 文档 从 HTML 字符串创建 PDF 文档 1. IronPDF 功能 开发人员可以通过强大的 IronPDF .NET PDF 库快速创建、读取和处理 PDF 文档。 IronPDF 拥有内建的 Chrome 引擎,提供大量实用且强大的功能。 这些功能包括将 HTML5、JavaScript、CSS 和图像转换为 PDF 的能力、为 PDF 文档添加独特的页眉和页脚的能力,以及准确生成与网页浏览器中显示相同的 PDF 的能力。 IronPDF 支持各种 Web 技术,包括 HTML、ASPX、Razor Pages 和 MVC 框架。 IronPDF 的关键属性如下: IronPDF 提供在 .NET C# 应用程序中创建和修改 PDF 文件的完全控制 IronPDF 能够根据网页的 URL 生成 PDF 文件,使用特定的用户代理、代理、头信息和 Cookie 配置。 IronPDF 能生成位于需要登录表单的网页的 PDF 文件,使用表单变量 IronPDF 能从现有的 PDF 文件中提取或移除照片 IronPDF 可以为 PDF 文档添加文本、照片、书签、水印等元素 IronPDF 简化了合并和拆分单个或多个 PDF 文档页面的操作。 IronPDF 能处理网页资产,如 JavaScript、CSS 和媒体文件,并将它们渲染成与浏览器中显示相同的 PDF 文档。 IronPDF 支持所有 .NET 框架,包括 .NET Core、.NET Standard 等。 2. 什么是 Blazor? Blazor 是一种 Web 应用程序框架,使得使用 C# 和 HTML 在客户端创建 Web 应用程序成为可能,使用 WebAssembly。 WebAssembly 应用程序以二进制指令格式发送到浏览器,能够以接近本地的速度运行。 这为 C# 等语言提供了在浏览器中运行的新可能性。 在 Visual Studio 中创建一个新项目 首先,打开 Microsoft Visual Studio 应用程序,并从文件菜单中选择“新建项目”。 然后,选择“Blazor 服务器应用”。 在 Visual Studio 中创建新项目 输入项目名称并选择文件路径。 然后,点击创建按钮。 选择新 Blazor 应用程序的名称和位置 选择所需的 .NET 框架(本教程中我们将使用 .NET 6.0),如下图所示: 使用 .NET 6.0 框架在 Visual Studio 中创建一个新项目 Microsoft Visual Studio 现在将生成这个 Blazor 应用程序的结构。 接下来,将 IronPDF 库添加到这个新项目中。 3. 安装IronPDF库 可以通过四种方式下载和安装 IronPDF 库: 使用 Visual Studio 的 NuGet 包管理器 使用 Visual Studio 的命令行 直接从 NuGet 网站下载 直接从 IronPDF 网站下载 3.1 使用 Visual Studio 的 NuGet 包管理器 Visual Studio 提供 NuGet 包管理器,以帮助直接将库安装到项目中。 下图显示如何打开NuGet包管理器。 访问 Visual Studio 的 NuGet 包管理器 在“浏览”标签下使用搜索字段搜索“IronPDF”,如下图所示: 在 NuGet 包管理器 GUI 中搜索 IronPDF 库 上图展示了相关搜索结果列表。 选择所需的选项,将包安装到项目中。 3.2 使用 Visual Studio 命令行 在 Visual Studio 中,进入工具 > NuGet 包管理器 > 包管理器控制台 在包管理器控制台选项卡中输入以下行: Install-Package IronPdf 现在,该包将被下载并安装到当前项目中。 使用 NuGet 包管理器控制台安装 IronPDF 库 3.3 直接从 NuGet 网站下载 安装 IronPDF 库的第三种方式是直接从网站下载 NuGet 包。 导航到IronPDF 的 NuGet 网站。 点击右侧菜单中的“下载包”选项。 在文件系统上打开下载的包。 它将自动安装。 重新加载解决方案并开始在项目中使用。 3.4 直接从 IronPDF 网站下载 访问 IronPDF 网站,直接下载 IronPDF 包。 下载后,按以下步骤将包添加到项目中: 从解决方案窗口中右键点击项目。 选择“添加”>“引用”选项,然后导航到之前下载的库所在位置。 点击 OK 将库添加为引用。 4. 在 Blazor 服务器应用中创建 PDF 文档 本教程中的 Blazor 应用程序将使用 IronPDF 根据网页的 URL 获取 HTML 内容并将其转换为 PDF 文档。 在项目中包含的 .razor 文件中输入以下源代码。 @using IronPdf @code { /// <summary> /// This method exports data by converting a URL to a PDF file and initiating its download. /// </summary> public async Task ExportData() { try { string fileName = "Demo.pdf"; var renderer = new ChromePdfRenderer(); // Render the contents of the URL as a PDF document var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata"); // Save the PDF using a JavaScript function await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray())); } catch (Exception ex) { // Handle any exceptions that may occur Console.Error.WriteLine($"Error in ExportData: {ex.Message}"); } } } @using IronPdf @code { /// <summary> /// This method exports data by converting a URL to a PDF file and initiating its download. /// </summary> public async Task ExportData() { try { string fileName = "Demo.pdf"; var renderer = new ChromePdfRenderer(); // Render the contents of the URL as a PDF document var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata"); // Save the PDF using a JavaScript function await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray())); } catch (Exception ex) { // Handle any exceptions that may occur Console.Error.WriteLine($"Error in ExportData: {ex.Message}"); } } } [using] ReadOnly Property code() As IronPdf ''' <summary> ''' This method exports data by converting a URL to a PDF file and initiating its download. ''' </summary> 'INSTANT VB TODO TASK: Local functions are not converted by Instant VB: ' public async Task ExportData() ' { ' try ' { ' string fileName = "Demo.pdf"; ' var renderer = New ChromePdfRenderer(); ' ' ' Render the contents of the URL as a PDF document ' var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata"); ' ' ' Save the PDF using a JavaScript function ' await JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray())); ' } ' catch (Exception ex) ' { ' ' Handle any exceptions that may occur ' Console.@Error.WriteLine(string.Format("Error in ExportData: {0}", ex.Message)); ' } ' } End Property $vbLabelText $csharpLabel 上面的代码片段使用两种方法生成 HTML 到 PDF 的文档。 第一种是 IronPDF 的RenderUrlAsPdf 方法,它从给定的 URL 下载 HTML 内容并将其转换为 PDF 格式。 第二种方法是静态JSRuntime.InvokeVoidAsync 方法,它触发浏览器的 JavaScript 引擎以在网页的范围内调用一个 JavaScript 函数,该函数将 PDF 内容保存到客户端文件系统中的文件。 下面包含此 JavaScript 函数: <script type="text/javascript"> /** * Saves the PDF data as a file on the client's system. * @param {string} filename - The name of the file to be created. * @param {string} bytesBase64 - The Base64 encoded string of the PDF data. */ function saveAsFile(filename, bytesBase64) { if (navigator.msSaveBlob) { // Download the document in Microsoft Edge browser var data = window.atob(bytesBase64); var bytes = new Uint8Array(data.length); for (var i = 0; i < data.length; i++) { bytes[i] = data.charCodeAt(i); } var blob = new Blob([bytes.buffer], { type: "application/octet-stream" }); navigator.msSaveBlob(blob, filename); window.navigator.msSaveOrOpenBlob(blob); } else { var link = document.createElement('a'); link.download = filename; link.href = "data:application/octet-stream;base64," + bytesBase64; document.body.appendChild(link); // Needed for Firefox link.click(); document.body.removeChild(link); } } </script> <script type="text/javascript"> /** * Saves the PDF data as a file on the client's system. * @param {string} filename - The name of the file to be created. * @param {string} bytesBase64 - The Base64 encoded string of the PDF data. */ function saveAsFile(filename, bytesBase64) { if (navigator.msSaveBlob) { // Download the document in Microsoft Edge browser var data = window.atob(bytesBase64); var bytes = new Uint8Array(data.length); for (var i = 0; i < data.length; i++) { bytes[i] = data.charCodeAt(i); } var blob = new Blob([bytes.buffer], { type: "application/octet-stream" }); navigator.msSaveBlob(blob, filename); window.navigator.msSaveOrOpenBlob(blob); } else { var link = document.createElement('a'); link.download = filename; link.href = "data:application/octet-stream;base64," + bytesBase64; document.body.appendChild(link); // Needed for Firefox link.click(); document.body.removeChild(link); } } </script> HTML 上面的 JavaScript 函数接收来自 Blazor 的 Base64 数据,并将其转换为 blob,然后将其保存到客户端位置。 Alternatively, The SaveAs method from the ChromePdfRenderer class can also be used to save PDF documents to the browser's local storage. 5. 从 HTML 字符串创建 PDF 文档 以下代码段展示如何将 HTML 字符串转换成文档。 @using IronPdf @code { /// <summary> /// Demonstrates turning an HTML string into a PDF document. /// </summary> public void GeneratePdfFromHtmlString() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>"); // You can save the generated PDF locally pdf.SaveAs("HelloWorld.pdf"); } } @using IronPdf @code { /// <summary> /// Demonstrates turning an HTML string into a PDF document. /// </summary> public void GeneratePdfFromHtmlString() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>"); // You can save the generated PDF locally pdf.SaveAs("HelloWorld.pdf"); } } [using] ReadOnly Property code() As IronPdf ''' <summary> ''' Demonstrates turning an HTML string into a PDF document. ''' </summary> 'INSTANT VB TODO TASK: Local functions are not converted by Instant VB: ' public void GeneratePdfFromHtmlString() ' { ' var renderer = New ChromePdfRenderer(); ' var pdf = renderer.RenderHtmlAsPdf("<h1>Hello world!!</h1>"); ' ' ' You can save the generated PDF locally ' pdf.SaveAs("HelloWorld.pdf"); ' } End Property $vbLabelText $csharpLabel 之前的示例使用RenderHtmlAsPdf 实例方法将任何 HTML 的字符串转化为 PDF 内容。 此外,可以在前面描述的过程里使用SaveAs方法将此内容保存到客户端计算机上。 在本教程中创建的 Blazor PDF 生成应用程序 上面的截图展示了本教程中开发的 Web 应用程序。 点击下载按钮将触发 C# 代码生成 PDF 内容,以及在客户端下载 PDF 内容的 JavaScript 函数。 结论 本文演示了如何开发一个使用 IronPDF PDF 库从网页生成 PDF 文件的 Blazor Web 应用程序。 IronPDF 不是开源的,然而,一个免费试用密钥允许您在生产中使用而不会有水印。 常见问题解答 如何将PDF库与Blazor服务器端应用程序集成? 您可以通过使用IronPDF将PDF库与Blazor服务器端应用程序集成。首先,在Visual Studio中创建一个Blazor项目,然后通过NuGet包管理器或命令行安装IronPDF库。IronPDF允许您从HTML内容无缝生成PDF文件。 在Blazor应用程序中有什么方法可以从HTML生成PDF? 在Blazor应用程序中,您可以使用IronPDF的RenderUrlAsPdf方法将网页URL转换为PDF,或使用RenderHtmlAsPdf直接从HTML字符串生成PDF。这些方法在从各种HTML源创建PDF文件方面提供了灵活性。 如何在Blazor应用程序中将PDF文件保存到客户端的文件系统? 要在Blazor应用程序中将PDF文件保存到客户端的文件系统,可以使用JavaScript函数将PDF数据转换为blob并触发下载。IronPDF提供生成PDF所需的工具,随后可以使用客户端JavaScript进行处理。 在Visual Studio中创建Blazor服务器端项目的过程是什么? 在Visual Studio中创建Blazor服务器端项目包括从文件菜单中选择“新建项目”,选择“Blazor Server App”,指定项目名称和位置,并选择合适的.NET Framework版本。此设置允许您集成诸如IronPDF之类的附加库以增强功能。 我可以使用此库将HTML中的JavaScript和CSS内容转换为PDF吗? 是的,您可以使用IronPDF将HTML中的JavaScript和CSS内容转换为PDF。它支持渲染HTML5、CSS和JavaScript内容,让您能够生成保持原网页布局和样式的完整PDF文件。 如果PDF生成在Blazor中不能按预期工作,该如何进行故障排除? 如果PDF生成在Blazor中没有按预期工作,请确保项目中已正确安装IronPDF库。验证HTML内容的格式是否正确可访问。此外,检查浏览器控制台中可能影响PDF渲染过程的JavaScript错误。 如何确保我的PDF文件在使用PDF库时包含标题和页脚? 要在使用IronPDF时确保PDF文件包含标题和页脚,您可以配置渲染选项以添加自定义的标题和页脚内容。这样可以在PDF输出中包含页码或标题等附加信息。 在Blazor应用程序中生成身份验证页面后的PDF是否可能? 是的,IronPDF 可以为 Blazor 应用中需要身份验证的页面生成 PDF 文件。您需要先管理身份验证 cookie 或令牌才能访问受限内容,然后才能使用该库的功能将其转换为 PDF 文件。 IronPDF 与 .NET 10 兼容吗?与 .NET 10 一起使用有哪些好处? 是的,IronPDF 完全兼容 .NET 10——无需任何自定义变通方案、补丁或已弃用的 API,即可开箱即用。.NET 10 对 ASP.NET Core 和 Blazor 进行了更新,包括性能提升、依赖管理优化、框架引用处理增强以及 JavaScript 隔离改进,所有这些都有利于使用 Razor 页面、URL 或 HTML 内容的 PDF 生成工作流程。 将 IronPDF 与 .NET 10 结合使用如何提高性能和运行时效率? 将 IronPDF 与 .NET 10 结合使用,可以利用多项运行时增强功能,例如数组接口方法去虚拟化、结构体转义分析、改进的 JIT 优化以及对 AVX-512 指令的支持。这些改进减少了内存分配,降低了垃圾回收的开销,并加快了 HTML 渲染和 PDF 处理等任务的速度。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十一月 13, 2025 如何在 C# 中合并两个 PDF 字节数组 使用 IronPDF 在 C# 中合并两个 PDF 字节数组。学习通过简单的代码示例从字节数组、内存流和数据库合并多个 PDF 文件。 阅读更多 已发布十一月 13, 2025 如何创建 ASP.NET MVC PDF 查看器 为 ASP.NET MVC 应用程序构建一个强大的 PDF 查看器。显示 PDF 文档,将视图转换为 PDF,并使用 IronPDF 添加交互功能。 阅读更多 已发布十一月 13, 2025 如何构建 .NET HTML 到 PDF 转换器 学习如何使用 IronPDF 在 .NET 中将 HTML 转换为 PDF。 阅读更多 开发人员指南:构建Blazor PDF查看器在.NET MAUI中使用IronPDF创建P...
已发布十一月 13, 2025 如何在 C# 中合并两个 PDF 字节数组 使用 IronPDF 在 C# 中合并两个 PDF 字节数组。学习通过简单的代码示例从字节数组、内存流和数据库合并多个 PDF 文件。 阅读更多
已发布十一月 13, 2025 如何创建 ASP.NET MVC PDF 查看器 为 ASP.NET MVC 应用程序构建一个强大的 PDF 查看器。显示 PDF 文档,将视图转换为 PDF,并使用 IronPDF 添加交互功能。 阅读更多