跳過到頁腳內容
使用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 檢視器中顯示它們。

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 應用程式

我們必須先建立一個新的 Visual Studio 項目,才能開始建立我們的第一個 Blazor 應用程式。

點擊"創建"按鈕。

我們產生了多個文件,為您提供一個簡單易用的 Blazor 軟體。

  • 啟動伺服器的應用程式入口點是program.cs ,您也可以在其中設定應用程式的中間件和服務。
  • 該應用程式的主要部分名為"App.razor"。
  • 您可以在"Pages"目錄中找到該應用程式的一些範例網頁。
  • 本機開發環境的不同設定檔設定在"Properties"目錄下的"launchSettings.json"檔案中定義。 建立專案時,會自動指派連接埠號碼並將其儲存到此檔案中。

啟動模板程式。

Blazor 專案類型

Blazor 支援兩種專案類型:Blazor Server 和 Blazor WebAssembly。

前一種類型運行在伺服器上,並使用 SignalR 與瀏覽器通訊。 這意味著應用程式的使用者介面是在伺服器端渲染的,瀏覽器只接收來自伺服器的更新。 Blazor Server 的優勢在於能夠支援更大的應用程序,並且可以輕鬆處理更多使用者。

另一方面,Blazor WebAssembly 應用程式完全在瀏覽器中運行,不需要伺服器即可運行。 這使得它們更輕、載入速度更快,但它們也有一些局限性,例如無法支援較大的檔案。

本教學建議使用 Blazor Server 應用程序,因為它能夠支援顯示和處理可能較大的 PDF 檔案。 此外,Blazor Server 還支援檢視和列印 PDF,這對於 PDF 檢視器應用程式來說可能是一個有用的功能。

安裝 IronPDF。

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

使用命令列

在 Visual Studio 中,依序選擇"工具" > "NuGet 套件管理器" > "套件管理器控制台"

在軟體包管理器的終端機標籤中輸入以下命令:

Install-Package IronPdf

現在軟體包已經下載完畢,它將安裝到目前專案中。

如何在 Blazor 中從位元組數組顯示 PDF,圖 5:套件管理器控制台 UI 軟體包管理器控制台使用者介面

使用 NuGet 套件管理解決方案

Visual Studio 中提供了 NuGet 套件管理器 UI,可以直接將套件安裝到專案中。 下面截圖顯示如何開啟它。

如何在 Blazor 中顯示位元組數組中的 PDF 文件,圖 6:導覽至 NuGet 套件管理器 導覽至 NuGet 套件管理器

套件管理器使用者介面提供了一個瀏覽功能,其中顯示了 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功能將創建的 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.結論

本教學課程示範如何使用IronPDF 的功能和教學課程在 Blazor Server 應用程式中建立和顯示 PDF 文件。它首先介紹 IronPDF 及其功能,包括如何將 HTML 轉換為 PDF 、新增自訂頁首和頁尾以及合併多個 PDF 文件。 然後,它提供了逐步說明,指導如何安裝 IronPDF,在 Blazor Server 應用程式中建立 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 應用程式中顯示來自 byte array 的 PDF?

您可以使用 IronPdf 將位元組轉換為 base64 字串,然後將此字串綁定到 Blazor 應用程式中 iframe 的 'src' 屬性。此方法利用瀏覽器內建的 PDF 檢視器來顯示文件。

使用 Blazor Server 比 Blazor WebAssembly 處理 PDF 有哪些優點?

建議使用 Blazor Server 來處理 PDF,因為它可以更有效率地管理較大的檔案,並支援 PDF 檢閱與列印等功能,這些功能對於一個全面的 PDF 檢視器應用程式而言至關重要。

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

您可以透過下載 IronPDF 函式庫,並使用 Visual Studio 中的 NuGet 套件管理員來新增 IronPDF,將 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 的網頁應用程式。

我可以在Blazor應用程式中合併多個PDF嗎?

是的,IronPDF 提供了合併多個 PDF 的功能。您可以使用其方法在您的 Blazor 應用程式中將不同的 PDF 文件合併為單一檔案。

IronPDF 是否提供免費試用?

是的,IronPdf 提供免費試用版,讓開發人員可以探索其特性和功能,以確保在購買之前符合他們的專案需求。

在哪裡可以找到更多與 Blazor 搭配使用 IronPDF 的資源?

與 Blazor 一起使用 IronPDF 的其他資源可在 IronPDF 文件、部落格和教學中找到。這些資源提供了在 Blazor 應用程式中實作 PDF 功能的全面指導。

IronPDF 是否與 .NET 10 相容,這對 Blazor 從位元組顯示 PDF 有何影響?

是 - IronPDF 與 .NET 10 完全相容,開箱即支援以 .NET 10 為目標的專案。在.NET 10下使用Blazor時,性能上的改進,如減少了alloc-overhead和增強了async功能,對於將位元組數字轉換為PDF並將其串流到客戶端等操作有利。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

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