使用IRONPDF

使用Blazor教程创建PDF文件

IronPDF 是一个著名的 C# 库,可与 Blazor 应用程序配合使用。 本评论将指导您使用 IronPDF 在 Blazor 应用程序中嵌入 PDF 报告,展示其无缝集成和有效性。

1.IronPDF 功能

借助强大的 IronPDF for .NET PDF 库,开发人员可以快速创建、阅读和处理 PDF 文档。 IronPDF 具有内置的 Chrome 引擎,并提供丰富而强大的功能。 其中包括将 HTML5、JavaScript、CSS 和图像转换为 PDF 的功能,为 PDF 文档添加独特页眉和页脚的功能,以及精确生成 PDF 文件的功能。 IronPdf 支持各种网络技术,包括 HTML、ASPX、Razor Pages 和 MVC 框架。

IronPDF 的主要属性如下:

  • IronPDF for .NET 提供在 .NET C# 应用程序中创建和修改 PDF 文件的完全控制功能
  • IronPDF 可以使用特定的用户代理、代理、标头和 Cookie 配置从它们的 URL 生成网页的 PDF 文件
  • IronPDF 可以为位于登录表单后使用表单变量的网页生成 PDF 文件
  • IronPDF 可以从现有的 PDF 文件中提取和/或删除照片
  • IronPDF可以向PDF文档添加文本、照片、书签、水印和其他元素
  • IronPDF 可以轻松合并和拆分一个或多个 PDF 文档的页面。
  • IronPDF 可以处理 JavaScript、CSS 和媒体文件等网页资产,并将其渲染为 PDF 文档,就像在浏览器中显示的一样。
  • IronPDF 支持所有 .NET Framework,包括 .NET Core、.NET Standard 等。

2.Blazor 是什么?

Blazor 是一个 Web 应用程序框架,它使使用 Web Assembly 以 C# 和 HTML 创建客户端 Web 应用程序变得可行。

Web Assembly 应用程序以二进制指令格式发送到浏览器,可以接近原生的速度运行。 这为 C# 等语言在浏览器内运行创造了新的潜力。

在 Visual Studio 中创建新项目

首先,打开 Microsoft Visual Studio 应用程序,从文件菜单中选择 "新建项目"。 然后,选择 "Blazor Server App"。

使用 Blazor 创建 PDF 文件教程,图 1:在 Visual Studio 中创建新项目

在 Visual Studio 中创建新项目

输入项目名称并选择文件路径。 然后,点击创建按钮。

使用Blazor创建PDF文件教程,图2:选择新Blazor应用程序的名称和位置

选择新 Blazor 应用程序的名称和位置

选择所需的 .NET Framework(在本教程中我们将使用 .NET 6.0),如下图所示:

使用 Blazor 创建 PDF 文件教程,图 3:使用 .NET 6.0 框架在 Visual Studio 中创建新项目

在Visual Studio中使用.NET 6.0框架创建新项目

Microsoft Visual Studio 现在将生成此 Blazor 应用程序的结构。

接下来,将 IronPDF 库添加到这个新项目中。

3.安装 IronPDF 库

IronPDF 库可以通过四种方式下载和安装:

  • 使用 Visual Studio 的 NuGet 软件包管理器
  • 使用 Visual Studio 的命令行
  • 直接从 NuGet 网站下载
  • 直接从 IronPDF 网站下载

3.1 使用 Visual Studio 的 NuGet 软件包管理器

Visual Studio 提供了 NuGet 包管理器,可协助将库直接安装到项目中。 下面的截图显示了如何打开 NuGet 包管理器。

使用 Blazor 创建 PDF 文件教程,图 4:访问 Visual Studio 的 NuGet 包管理器

访问 Visual Studio 的 NuGet 包管理器

使用 "浏览 "选项卡下的搜索栏搜索 "IronPdf",如下截图所示:

使用 Blazor 创建 PDF 文件教程,图 5:在 NuGet 包管理器 GUI 中搜索 IronPDF 库

在 NuGet 包管理器 GUI 中搜索 IronPDF 库

上图显示了相关搜索结果列表。 选择所需的选项,将软件包安装到您的项目中。

3.2 使用 Visual Studio 命令行

在 Visual Studio 中,依次转到 工具 > NuGet 包管理器 > 包管理器控制台

在 "软件包管理器控制台 "选项卡中输入以下一行:

Install-Package IronPdf

现在将下载软件包并安装到当前项目中。

使用Blazor制作PDF文件教程,图6:使用NuGet Package Manager Console安装IronPDF库

使用 NuGet 包管理器控制台安装 IronPDF 库

3.3 直接从 NuGet 网站下载

安装 IronPdf 库的第三种方法是直接从网站下载 NuGet 包。

导航到 IronPDF 的 NuGet 网站

  • 点击右侧菜单中的 "下载软件包 "选项。
  • 在文件系统中打开下载的软件包。 它将自动安装。
  • 重新加载解决方案并开始在项目中使用。

3.4 直接从 IronPDF 网站下载

访问IronPDF网站以直接下载IronPDF包

下载后,请按照以下步骤将软件包添加到您的项目中:

  • 右键单击解决方案窗口中的项目。
  • 选择 "参考 "选项,然后导航到您之前下载的库的位置。
  • 单击 "确定 "将库添加为参考资料。

4.在 Blazor 服务器应用程序中创建 PDF 文档

本教程中的 Blazor 应用程序将使用 IronPDF 通过 URL 获取网页的 HTML 内容,并将其转换为 PDF 文档。

在项目中包含的 .razor 文件中输入以下源代码。

@using IronPdf;

public void ExportData()
{
    try
    {
        string fileName = "Demo.pdf";
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");
        JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
    }
    catch (Exception ex)
    {

    }
}
@using IronPdf;

public void ExportData()
{
    try
    {
        string fileName = "Demo.pdf";
        var renderer = new IronPdf.ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");
        JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()));
    }
    catch (Exception ex)
    {

    }
}
Private IronPdf As [using]

Public Sub ExportData()
	Try
		Dim fileName As String = "Demo.pdf"
		Dim renderer = New IronPdf.ChromePdfRenderer()
		Dim pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata")
		JSRuntime.InvokeVoidAsync("saveAsFile", fileName, Convert.ToBase64String(pdf.Stream.ToArray()))
	Catch ex As Exception

	End Try
End Sub
$vbLabelText   $csharpLabel

上面的代码片段使用两种方法从 HTML 生成 PDF 文档。 第一个是 IronPDF 的 RenderUrlAsPdf 方法,它从给定的 URL 下载 HTML 内容并将其转换为 PDF 格式。

第二种方法是静态的JSRuntime.InvokeVoidAsync方法,它触发浏览器的JavaScript引擎在网页范围内调用JavaScript函数,将PDF内容保存到客户端的文件系统中的文件中。

该 JavaScript 函数包含在下面:

<script type="text/JavaScript">
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            //Download document in 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">
    function saveAsFile(filename, bytesBase64) {
        if (navigator.msSaveBlob) {
            //Download document in 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,然后保存到客户端位置。

或者,也可以使用SaveAs方法从ChromePdfRenderer类将PDF文档保存到浏览器的本地存储中。

5.从 HTML 字符串创建 PDF 文档

以下代码片段展示了如何将 HTML 字符串转化为文档。

var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello world!!</h1>")
var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello world!!</h1>")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'var pdf = New IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello world!!</h1>")
$vbLabelText   $csharpLabel

前面的示例使用RenderHtmlAsPdf实例方法将任何HTML字符串转换为PDF内容。 此外,可以在前面描述的过程中使用SaveAs方法将此内容保存到客户端的计算机上。

使用 Blazor 创建 PDF 文件教程,图 7:本教程中创建的 Blazor PDF 生成应用程序

在本教程中创建的Blazor PDF生成应用程序

上面的截图显示了本教程中开发的网络应用程序。 点击下载按钮将触发 C# 代码以生成 PDF 内容,并触发 JavaScript 函数以在客户端下载 PDF 内容。

结论

本文演示了如何开发一个 Blazor Web 应用程序,该程序使用 IronPDF PDF 库从网页生成 PDF 文件。

IronPDF不是开源的,不过,免费试用密钥允许您在生产中使用而不会出现水印。

Chipego
奇佩戈-卡琳达
软件工程师
Chipego 拥有出色的倾听技巧,这帮助他理解客户问题并提供智能解决方案。他在 2023 年加入 Iron Software 团队,此前他获得了信息技术学士学位。IronPDF 和 IronOCR 是 Chipego 主要专注的两个产品,但他对所有产品的了解每天都在增长,因为他不断找到支持客户的新方法。他喜欢 Iron Software 的合作氛围,公司各地的团队成员贡献他们丰富的经验,以提供有效的创新解决方案。当 Chipego 离开办公桌时,你经常可以发现他在看书或踢足球。
< 前一页
Blazor PDF 查看器教程
下一步 >
使用 IronPDF 在 .NET MAUI 中创建 PDF 文件