使用Blazor教程創建PDF文件
IronPDF 是一個著名的 C# 庫,可與 Blazor 應用程式搭配使用。 本評測將指導您如何使用 IronPDF 將 PDF 報告嵌入 Blazor 應用程式,展示其無縫整合和高效性。
如何在 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 文件添加獨特的頁首和頁腳,以及生成與在 Web 瀏覽器中顯示效果完全相同的 PDF。 IronPDF 支援多種 Web 技術,包括 HTML、ASPX、Razor Pages 和 MVC 框架。
IronPDF的主要特點如下:
IronPDF 提供 .NET C# 應用程式中 PDF 檔案的建立和修改的完全控制。
- IronPDF 可以使用特定的 User-Agent、Proxy、Header 和 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 應用程式框架,它使得使用 WebAssembly 在 C# 和 HTML 中建立客戶端 Web 應用程式成為可能。
WebAssembly 應用程式以二進位指令格式傳送至瀏覽器,其運作速度接近原生應用程式。 這為 C# 等語言在瀏覽器中運作創造了新的可能性。
在 Visual Studio 中建立新專案
首先,開啟 Microsoft Visual Studio 應用程式,然後從"檔案"選單中選擇"新專案"。 然後,選擇"Blazor 伺服器應用程式"。
使用 Blazor 建立 PDF 檔案教學,圖 1:在 Visual Studio 中建立新項目 在 Visual Studio 中建立新項目
輸入項目名稱並選擇檔案路徑。 然後,點擊"創建"按鈕。
使用 Blazor 建立 PDF 檔案教程,圖 2:選擇新 Blazor 應用程式的名稱和位置 選擇新 Blazor 應用程式的名稱和位置
選擇所需的 .NET Framework 版本(本教學課程將使用 .NET 6.0),如下圖所示:
使用 Blazor 建立 PDF 檔案教學,圖 3:在 Visual Studio 中使用 .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 Package Manager。
使用 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 套件管理器控制台安裝 IronPDF 庫 使用 NuGet 套件管理器控制台安裝 IronPDF 庫
3.3 直接從 NuGet 網站下載
安裝 IronPDF 庫的第三種方法是直接從網站下載 NuGet 套件。
- 點選右側選單中的"下載軟體包"選項。
- 開啟檔案系統中下載的軟體包。 它會自動安裝。
- 重新載入解決方案,然後在您的專案中開始使用它。
3.4 直接從 IronPDF 網站下載
請造訪 IronPDF 網站直接下載 IronPDF 軟體包。
下載完成後,請按照以下步驟將該軟體包新增至您的專案:
- 在解決方案視窗中右擊專案。
- 選擇"新增">"引用"選項,然後導覽至您先前下載的庫的位置。
- 按一下"確定"將該庫新增為參考。
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
上面的程式碼片段使用了兩種方法從 HTML 產生 PDF 文件。 第一個是 IronPDF 的RenderUrlAsPdf方法,它從給定的 URL 下載 HTML 內容並將其轉換為 PDF 格式。
第二種方法是靜態方法,它會觸發瀏覽器的 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>
上面的 JavaScript 函數從 Blazor 接收 Base64 資料,並將其轉換為 blob,然後儲存到客戶端位置。
或者,也可以使用 @@--CODE-25114--@@ 類別中的 @@--CODE-25113--@@ 方法將 PDF 文件儲存到瀏覽器的本機儲存中。
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
前面的範例使用RenderHtmlAsPdf實例方法將任何 HTML 字串轉換為 PDF 內容。 此外,可以使用前面所述的步驟中的 SaveAs 方法將此內容儲存到客戶端電腦上。
!使用 Blazor 建立 PDF 檔案教程,圖 7:本教程中建立的 Blazor PDF 生成應用程式 本教程中創建的 Blazor PDF 生成應用程式
上面的截圖展示了本教程中開發的Web應用程式。 點擊下載按鈕將觸發 C# 程式碼產生 PDF 內容,並觸發 JavaScript 函數在用戶端下載 PDF 內容。
結論
本文示範如何開發一個使用 IronPDF PDF 庫從網頁產生 PDF 檔案的 Blazor Web 應用程式。
IronPDF 不是開源軟體,但是,免費試用金鑰可讓您在生產環境中使用它,而不會出現浮水印。
常見問題解答
我該如何將 PDF 庫整合到 Blazor 伺服器端應用程式中?
您可以透過使用 IronPDF 將 PDF 庫整合到 Blazor 伺服器端應用程式中。首先,在 Visual Studio 中建立 Blazor 專案,然後透過 NuGet 套件管理員或命令列安裝 IronPDF 庫。IronPDF 可讓您無縫地從 HTML 內容生成 PDF 文件。
在 Blazor 應用程式中,生成 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 伺服器應用程式”,指定專案名稱和位置,並選擇適當的 .NET Framework 版本。此設置可讓您整合額外的庫,比如使用 IronPDF 以增強功能。
我可以使用這個庫將 HTML 中的 JavaScript 和 CSS 內容轉換為 PDF 嗎?
是的,您可以使用 IronPDF 將 HTML 中的 JavaScript 和 CSS 內容轉換為 PDF。它支持渲染 HTML5、CSS 和 JavaScript 內容,使您能夠生成保持原始網頁佈局和樣式的綜合 PDF 文檔。
如果在 Blazor 中 PDF 生成未如預期工作,有哪些故障排除步驟?
如果在 Blazor 中 PDF 生成未如預期工作,請確保 IronPDF 庫已在專案中正確安裝。驗證 HTML 內容格式是否正確且可訪問。此外,檢查瀏覽器控制台中的任何 JavaScript 錯誤可能影響 PDF 渲染過程。
如何確保我的 PDF 文件在使用 PDF 庫時包含頁眉和頁腳?
要確保您的 PDF 文件在使用 IronPDF 時包含頁眉和頁腳,您可以配置渲染選項來添加自定義頁眉和頁腳內容。這使您能夠在 PDF 輸出中包含頁碼或標題等額外資訊。
在 Blazor 應用程式中是否可以為受身份驗證限制的頁面生成 PDF?
是的,IronPDF可以生成適用於Blazor應用程式中身份驗證後的頁面。您需要管理身份驗證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操作等任務。



