跳過到頁腳內容
使用IRONPDF

如何從字節數組在Blazor中顯示PDF

1. 介紹

IronPDF for C# PDF Solutions and Documentation 是一個 C# PDF 庫,支持處理 PDF 渲染和將字節數組轉換為 PDF 文件。 它還支持查看和打印 PDF,以及使用批註工具對 PDF 進行批註。 使用 IronPDF 添加頁眉和頁腳以及合併多個 PDF 也非常方便。

IronPDF 可以與 Blazor PDF viewer 一起使用來創建 PDF 查看器,它可以通過創建瀏覽器可以顯示的對象 URL 來處理更大的文件大小。

使用 IronPDF 與 Blazor,開發人員可以創建一個 PDF 查看器,可以顯示來自字節數組或文件名的 PDF 文件,並且還支持上傳文件和處理文件下載。 IronPDF 還提供支持對 PDF 文檔分頁的方法,該方法與 Blazor 完美配合。

此外,IronPDF 提供了代碼示例來將字節數組轉換為 PDF 文檔,下載 PDF 文件,並從 base64 字符串顯示 PDF。 開發人員還可以將 PDF 文件轉換為其他文件格式,例如將圖像轉換為 PDF 文件

IronPDF 可以與 Blazor 服務器應用程序一起使用,並可以與 Visual Studio 集成,以提供無縫的開發體驗。 使用 IronPDF,開發人員可以創建一個可用於構建現代、功能豐富的 Web 應用程序的專業 UI 組件。

本文說明開發人員如何使用 IronPDF 將 PDF 字節數組轉換為 PDF 文檔並在 Blazor PDF 查看器中顯示它們。

class="hsg-featured-snippet">

How to Display PDF from Byte Array in Blazor

  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:這是專業級 UI 庫,將用於將 PDF 字節數組轉換為 PDF 文檔並在 Blazor PDF 查看器中顯示。 可以從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 框架。

    如何在 Blazor 中從字節數組中顯示 PDF,圖3:為新 Blazor 服務器應用選擇 .NET 6.0 框架 為新 Blazor 服務器應用選擇 .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 這可能是一個查看器應用程序的有用功能。

安裝 IronPDF

在本節中,我們將討論如何通過不同方法安裝 IronPDF。

使用命令行

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

將以下行輸入包管理器的終端標籤中:

Install-Package IronPdf

現在包已下載,將安裝在當前項目中。

如何在 Blazor 中從字節數組中顯示 PDF,圖5:包管理器控制台 UI 包管理器控制台 UI

使用 Manage NuGet Packages for Solutions

NuGet 包管理器 UI 可在 Visual Studio 中使用,以將包直接安裝到項目中。 以下屏幕截圖顯示如何打開它。

如何在 Blazor 中從字節數組中顯示 PDF,圖6:導航至 NuGet 包管理器 導航至 NuGet 包管理器

包管理器 UI 提供瀏覽功能,顯示 NuGet 網站上提供的包庫列表。根據以下屏幕截圖輸入 “IronPDF” 關鍵字,以查找 IronPDF 包。

如何在 Blazor 中從字節數組中顯示 PDF,圖7:在 NuGet 包管理器 UI 中搜索並安裝 IronPDF 包 在 NuGet 包管理器 UI 中搜索並安裝 IronPDF 包

瀏覽 部分中搜索 IronPDF,找到 NuGet 包管理器中的 IronPDF 庫。

選擇 IronPDF 包並單擊“安裝”按鈕將其添加到項目中。

4. 從字節數組創建和顯示 PDF

要使用 IronPDF 在 Blazor 應用程序中生成 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 方法將創建的 PDF 文件保存在服務器文件系統中,以供以後訪問,該方法可以在每個 ChromePdfRenderer 實例上訪問。

在代碼的下一部分中準備好將 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 屬性。 這導致瀏覽器使用其內置網頁查看器將 base64 內容渲染為合適的 PDF 文檔,一旦頁面加載完成。

這是一個從 base64 字符串生成的 PDF 文件的圖像。

如何在 Blazor 中從字節數組中顯示 PDF,圖8:在瀏覽器中查看在 Blazor 應用中生成的 PDF 在瀏覽器中查看在 Blazor 應用中生成的 PDF

創建簡單的 PDF 文件

以下是使用 C# 中的 IronPDF 創建簡單 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 WebAssembly 相比,使用 Blazor Server 處理 PDF 檔案有哪些優點?

建議使用 Blazor Server 處理 PDF 文件,因為它能夠更有效率地管理較大的文件,並支援 PDF 檢視和列印等功能,這對於功能全面的 PDF 檢視器應用程式至關重要。

如何將 IronPDF 整合到 Blazor 專案中?

您可以透過下載 IronPDF 庫,然後使用 Visual Studio 中的 NuGet 套件管理器將其新增至 Blazor 專案中,從而將 IronPDF 整合到 Blazor 專案中。您可以在套件管理器控制台中使用命令Install-Package IronPdf

我可以在 Blazor 應用程式中將 URL 轉換為 PDF 嗎?

是的,使用 IronPDF 的RenderUrlAsPdf方法,您可以在 Blazor 應用程式中將指定 URL 中的內容轉換為 PDF 格式。

是否可以透過程式設計方式在 Blazor 應用程式中建立 PDF 檔案?

是的,借助 IronPDF 的RenderHtmlAsPdf方法,您可以在 Blazor 應用程式中以程式設計方式將 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 檔案的功能。您可以透過使用其方法,在 Blazor 應用程式中將不同的 PDF 文件合併成一個文件來實現此目的。

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 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。