跳至页脚内容
使用IRONPDF

如何在Blazor中显示字节数组PDF

1.简介

IronPDF for C# PDF Solutions and Documentation 是一个C# PDF库,支持处理PDF渲染和将字节数组转换为PDF文件。 它还支持查看和打印PDF,以及使用注释工具对PDF进行注释。 使用IronPDF添加页眉和页脚以及合并多个PDF也非常方便。

IronPDF可以与Blazor PDF查看器一起使用以创建PDF查看器,并且可以通过创建可由浏览器显示的对象URL来处理较大的文件大小。

使用IronPDF和Blazor,开发人员可以创建一个PDF查看器,该查看器可以显示从字节数组或文件名中获取的PDF文件,还支持上传文件和处理文件下载。 IronPDF还提供了一种方法来处理PDF文档的分页,这适用于Blazor。

此外,IronPDF提供了将字节数组转换为PDF文档、下载PDF文件以及从base64字符串显示PDF的代码示例。 开发人员还可以将PDF文件转换为其他文件格式,例如将图像转换为PDF文档

IronPDF可以与Blazor服务器应用程序一起使用,并且可以与Visual Studio集成以提供无缝的开发体验。 通过IronPDF,开发人员可以创建一个专业级的UI组件,用于构建现代化、功能丰富的Web应用程序。

本文解释了开发人员如何使用IronPDF将PDF字节数组转换为PDF文档并在Blazor PDF查看器中显示它们。

class="hsg-featured-snippet">

如何在Blazor中从字节数组显示PDF

  1. 下载C#库以在Blazor中从字节数组显示PDF
  2. 利用RenderUrlAsPdf方法将所需URL渲染为PDF
  3. 访问PDF字节数组并将其转换为base64数据类型
  4. 在Blazor页面上显示base64 PDF
  5. 使用RenderHtmlAsPdf方法将HTML转换为PDF并显示

2. 要求

要跟随本教程,您需要以下工具和要求:

  • Visual Studio 2019或更新版本:需要创建和运行Blazor应用程序。 可以从Visual Studio官方网站下载
  • .NET 5.0或更高版本:需要构建和运行Blazor应用程序。 可以从官方.NET下载页面下载
  • IronPDF:这是将用于将PDF字节数组转换为PDF文档并在Blazor PDF查看器中显示的专业级UI库。 可以从IronPDF官方网站下载
  • IronPDF.Blazor NuGet包:这是将用于将IronPDF与Blazor应用程序集成的NuGet包。 可以从Visual Studio中的NuGet包管理器安装。

本教程中讨论的某些功能可能需要IronPDF的付费版本。 此外,本教程假定您对Blazor和C#有基本了解。

3. 创建Blazor应用程序

在开始构建我们的第一个Blazor应用程序之前,我们必须创建一个新的Visual Studio项目。

  • 打开Visual Studio。
  • 单击“创建新项目”。
  • 选择Blazor服务器应用程序模板。

    如何在Blazor中从字节数组显示PDF,图1:在Visual Studio中创建新项目 在Visual Studio中创建新项目

  • 选择“下一步”选项。
  • 命名您的应用程序。

    如何在Blazor中从字节数组显示PDF,图2:在Visual Studio中命名新项目 在Visual Studio中命名新项目

  • 选择“下一步”选项。
  • 选择.NET Framework。

    如何在Blazor中从字节数组显示PDF,图3:为新的Blazor Server应用程序选择.NET 6.0框架 为新的Blazor Server应用程序选择.NET 6.0框架

  • 单击创建按钮。
  • 将创建一个新项目,如下所示。

    如何在Blazor中从字节数组显示PDF,图4:Visual Studio中的初始项目视图 Visual Studio中的初始项目视图

生成了几个文件,为您提供一个可供大概使用的简单Blazor软件。

  • 启动服务器的应用程序入口点是program.cs,您还可以在其中设置中间件和服务。
  • 应用程序的主要部分称为“App.razor”。
  • 应用程序的一些示例网页可以在“Pages”目录中找到。
  • 本地开发环境的不同配置文件设置在“Properties”目录下的“launchSettings.json”文件中定义。 项目创建时,自动分配并保存一个端口号到此文件。

启动模板程序。

Blazor项目类型

Blazor支持两种项目类型:Blazor服务器和Blazor WebAssembly。

前者在服务器上运行,并使用SignalR与浏览器通信。 这意味着应用程序的UI在服务器上呈现,而浏览器仅从服务器接收更新。 Blazor服务器的优点是能够支持更大的应用程序,并且可以轻松处理更多用户。

另一方面,Blazor WebAssembly应用程序完全在浏览器中运行,并且不需要服务器运行。 这使得它们更轻量化,加载速度更快,但它们也有一些限制,比如无法支持更大的文件。

本教程建议使用Blazor服务器应用程序,因为它可以支持显示和处理可能较大的PDF文件。 此外,Blazor服务器还可以支持查看和打印PDF,这可能是PDF查看器应用程序的一个有用功能。

安装 IronPDF。

在本节中,我们将讨论如何使用不同的方法安装IronPDF。

使用命令行

在Visual Studio中导航到工具 > NuGet包管理器 > 包管理器控制台

在包管理器的终端选项卡中输入以下行:

Install-Package IronPdf

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

如何在Blazor中从字节数组显示PDF,图5:包管理器控制台UI 包管理器控制台UI

使用“管理解决方案的NuGet包”

NuGet包管理器UI可用于在Visual Studio中将软件包直接安装到项目中。 以下截图显示了如何打开它。

如何在Blazor中从字节数组显示PDF,图6:导航到NuGet包管理器 导航到NuGet包管理器

包管理器UI提供了一个浏览功能,显示了NuGet网站上提供的软件包库列表。输入“IronPDF”关键词,如下截图所示,以查找IronPDF包。

如何在Blazor中从字节数组显示PDF,图7:在NuGet包管理器UI中搜索和安装IronPDF包 在NuGet包管理器UI中搜索和安装IronPDF包

在NuGet包管理器中通过在浏览部分中搜索找到IronPDF库。

选择IronPDF包并单击“安装”按钮以将其添加到项目中。

4. 从字节数组创建和显示PDF

要在Blazor应用程序中使用IronPDF生成PDF字节数组,首先需要将IronPDF依赖项添加到您的项目中。

将IronPDF依赖项添加到Blazor应用程序后,可以使用以下代码创建PDF文档:

// Placeholder for the URL used to generate the PDF
string _url = "";

// Method to render a URL as a PDF and convert the result to a base64 string
private async Task ViewFile()
{
    var renderer = new IronPdf.ChromePdfRenderer();

    // Render the specified URL as a PDF
    var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

    // Convert the PDF stream to a base64 string
    _url = $"data:application/pdf;base64,{Convert.ToBase64String(pdf.Stream.ToArray())}";
}
// Placeholder for the URL used to generate the PDF
string _url = "";

// Method to render a URL as a PDF and convert the result to a base64 string
private async Task ViewFile()
{
    var renderer = new IronPdf.ChromePdfRenderer();

    // Render the specified URL as a PDF
    var pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata");

    // Convert the PDF stream to a base64 string
    _url = $"data:application/pdf;base64,{Convert.ToBase64String(pdf.Stream.ToArray())}";
}
' Placeholder for the URL used to generate the PDF
Private _url As String = ""

' Method to render a URL as a PDF and convert the result to a base64 string
Private Async Function ViewFile() As Task
	Dim renderer = New IronPdf.ChromePdfRenderer()

	' Render the specified URL as a PDF
	Dim pdf = renderer.RenderUrlAsPdf("https://localhost:7018/fetchdata")

	' Convert the PDF stream to a base64 string
	_url = $"data:application/pdf;base64,{Convert.ToBase64String(pdf.Stream.ToArray())}"
End Function
$vbLabelText   $csharpLabel

上述代码片段利用了IronPDF的RenderUrlAsPdf方法,该方法从指定的URL下载HTML文本并将其转换为PDF格式。 然后通过将PDF流转换为base64格式并存储在本地变量中,将生成的PDF材料呈现为未处理的base64数据字符串。

应用程序可以使用IronPDF的SaveAs功能,该功能在每个ChromePdfRenderer实例上可用,将创建的PDF文件保存到服务器的文件系统中以便稍后访问。

接下来的代码部分将base64 PDF数据准备为输出到客户端的浏览器中:

@if (_url != string.Empty)
{
    // Render the PDF base64 data as a PDF in an iframe
    <iframe src="@_url" width="100%" height="500px"></iframe>
}
@if (_url != string.Empty)
{
    // Render the PDF base64 data as a PDF in an iframe
    <iframe src="@_url" width="100%" height="500px"></iframe>
}
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: if(_url != string.Empty)
Private Sub New(Optional _url (Not ByVal) As = String.Empty)
	' Render the PDF base64 data as a PDF in an iframe
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <iframe src="@_url" width="100%" height="500px"></iframe>
	"100%" height="500px"></iframe>
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <iframe src="@_url" width="100%" height
	"@_url" width="100%" height
	<iframe src="@_url" width
End Sub
$vbLabelText   $csharpLabel

此代码片段将base64数据绑定到iframe元素的src属性。 这使得浏览器在页面加载时就使用它们内置的Web查看器将Base64内容呈现为适当的PDF文档。

以下是从base64字符串生成的PDF文件的图像。

如何在Blazor中从字节数组显示PDF,图8:在浏览器中查看在Blazor应用程序中生成的PDF 在浏览器中查看在Blazor应用程序中生成的PDF

创建简单的PDF文件

这是一个使用IronPDF在C#中创建简单PDF文档的示例代码片段:

// Create a simple PDF document with the text "Hello world!!"
var pdfDocument = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("Hello world!!");
// Create a simple PDF document with the text "Hello world!!"
var pdfDocument = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("Hello world!!");
' Create a simple PDF document with the text "Hello world!!"
Dim pdfDocument = (New IronPdf.ChromePdfRenderer()).RenderHtmlAsPdf("Hello world!!")
$vbLabelText   $csharpLabel

使用前一部分中描述的方法,可以使用客户端的浏览器查看创建的PDF文档。

6.结论

The tutorial shows how to use IronPDF Capabilities and Tutorials to create and display PDF documents in a Blazor Server app. It first introduces IronPDF and its capabilities, including how to convert HTML to PDF, adding custom headers and footers, and merging multiple PDFs. 然后提供了安装IronPDF、在Blazor服务器应用程序中创建PDF文件然后将其转换为PDF字节数组,并通过使用iframe在Blazor PDF查看器上显示它的详细说明。

总体来说,本教程全面介绍了如何与IronPDF和Blazor合作来创建和显示PDF文档。 鼓励读者进一步尝试IronPDF并尝试不同的功能以创建功能丰富的应用程序。

如果您有兴趣在您的Blazor项目中尝试IronPDF,可以利用IronPDF的免费试用版。 这为您提供了充足的时间来试验库的功能和特性,并查看它是否符合您的需求。

要开始,请参阅IronPDF的Blazor文档,其中提供了有关在项目中使用库的详细信息。 您还可以浏览IronPDF博客和教程,查找涵盖与PDF处理和渲染相关的一系列主题的教程和文章。

我们鼓励您花时间进一步尝试IronPDF和Blazor,并看看它们如何增强您的PDF相关开发工作。 有关Blazor PDF查看器的更多信息,请参考以下IronPDF Blazor PDF查看器教程

常见问题解答

如何在Blazor应用程序中从字节数组显示PDF?

您可以使用IronPDF将字节数组转换为base64字符串,然后将此字符串绑定到Blazor应用程序中iframe的'src'属性。此方法利用浏览器内置的PDF查看器来显示文档。

使用Blazor Server比Blazor WebAssembly处理PDF有何优势?

建议使用Blazor Server处理PDF,因为它可以更有效地处理较大的文件,并支持PDF审核和打印等功能,这对于全面的PDF查看器应用程序至关重要。

如何将IronPDF集成到Blazor项目中?

您可以通过下载IronPDF库并使用Visual Studio的NuGet包管理器将其添加到Blazor项目中。在包管理器控制台中可以使用命令Install-Package IronPdf

我可以在Blazor应用程序中将URL转换为PDF吗?

是的,使用IronPDF的RenderUrlAsPdf方法,您可以在Blazor应用程序中将指定URL的内容转换为PDF格式。

是否可以在Blazor应用程序中以编程方式创建PDF?

是的,使用IronPDF的RenderHtmlAsPdf方法,您可以通过将HTML内容呈现为PDF文档以编程方式创建PDF。

在Blazor项目中使用IronPDF需要哪些工具?

在Blazor项目中使用IronPDF,您需要Visual Studio 2019或更高版本、.NET 5.0或更高版本,以及IronPDF NuGet包。对Blazor和C#的基本理解也很有帮助。

如何在Blazor PDF查看器中处理文件上传和下载?

IronPDF支持在Blazor PDF查看器中进行文件上传和下载。通过集成该库,您可以使用C#代码和Blazor组件创建一个高效处理PDF的Web应用程序。

我可以在Blazor应用程序中合并多个PDF吗?

是的,IronPDF提供了合并多个PDF的功能。可以通过使用其方法将不同的PDF文档合并成一个文件在Blazor应用程序中。

IronPDF有免费试用版吗?

是的,IronPDF提供免费试用,允许开发者探索其功能确保符合项目需求再进行购买。

在哪里可以找到更多关于在Blazor中使用IronPDF的资源?

IronPDF文档、博客和教程中可以找到更多关于在Blazor中使用IronPDF的资源。这些资源提供了关于在Blazor应用程序中实现PDF功能的全面指导。

IronPDF 是否兼容 .NET 10?这会对 Blazor 从字节数组显示 PDF 产生什么影响?

是的——IronPDF 完全兼容 .NET 10,可直接支持面向 .NET 10 的项目。在 .NET 10 下使用 Blazor 时,性能提升(例如降低内存分配开销和增强异步功能)有利于将字节数组转换为 PDF 并将其流式传输到客户端等操作。

Curtis Chau
技术作家

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

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