跳至頁尾內容
使用IRONPDF

適用於.NET的PDF API:使用IronPDF生成、編輯和保護文件

要在ASP.NET Core中實現PDF查看器,請使用IronPDF從HTML、URL或Razor視圖生成PDF。 為它們提供正確的標頭以供瀏覽器內嵌顯示,提供流暢的文件查看體驗,無需外部插件或下載。

.NET中的Web應用程式通常需要直接在瀏覽器中顯示PDF文件。 無論是發票、報告或互動式PDF表單,使用者都希望有流暢的文件查看器體驗,而不需要Adobe Acrobat Reader或其他第三方瀏覽器工具。

在本教程中,您將學習如何使用IronPDF為ASP.NET和.NET Core實現PDF查看器。 這個可靠的PDF查看器控件允許開發者在.NET應用程式中建立、渲染和顯示PDF文件,提供解決關鍵業務文件的專業解決方案。 這裡描述的方法適用於.NET 10和所有早期的.NET Core版本。

在ASP.NET Core中PDF查看如何工作?

現代瀏覽器作為內建的PDF查看器。 當您以正確的MIME型別(application/pdf)提供PDF文件時,瀏覽器會自動內嵌顯示,這意味著您不需要外部插件來查看PDF文件或顯示PDF文件。 關鍵在於生成高質量的PDF並配置正確的響應標頭。

IronPDF是一個經常更新的.NET PDF程式庫,擅長從HTML、Razor視圖或現有文件建立像素完美的PDF頁面。 其基於Chrome的渲染引擎確保精確的CSS、JavaScript和圖像支持,為使用者提供可比擬桌面PDF查看器的查看體驗。 您可以在IronPDF功能頁上查看完整的功能列表。

當請求到達您的ASP.NET Core控制器時,工作流程很簡單:使用IronPDF生成(或載入)PDF,將application/pdf,然後返回二進位資料。 瀏覽器自動處理渲染——不需要JavaScript PDF.js設置,也不依賴瀏覽器擴展。

及早了解這個模式可節省開發時間。不是整合複雜的JavaScript查看程式庫,而是將渲染工作委託給瀏覽器,並僅在伺服器端使用IronPDF進行生成和操作。ASP.NET Core文件中的文件響應解釋了在這些模式中使用的底層FileResult型別。

如何設置ASP.NET Core專案?

首先建立一個新的ASP.NET Core MVC應用程式。 打開終端並運行:

dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
SHELL

這會啟動帶有MVC支持的基本.NET應用程式。 MVC結構為您提供控制器以處理PDF生成請求和構建前端介面的視圖。 一個專門的PdfController讓與PDF相關的邏輯保持組織化和易於維護,隨著應用程式的增長。

如何安裝和配置IronPDF?

安裝IronPDF只需幾個步驟。 在Visual Studio中的NuGet Package Manager控制台或.NET CLI中使用:

# Package Manager Console (Visual Studio)
Install-Package IronPdf

# .NET CLI
dotnet add package IronPdf
# Package Manager Console (Visual Studio)
Install-Package IronPdf

# .NET CLI
dotnet add package IronPdf
SHELL

然後在Program.cs中配置程式庫:

using IronPdf;

// Set license key at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
using IronPdf;

// Set license key at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
Imports IronPdf

' Set license key at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

在任何PDF操作之前在Program.cs中設置您的授權密鑰。 開發和評估時可選用免費試用授權IronPDF文件提供不同部署環境的其他配置範例,包括Azure和Docker。

如何生成用於查看的PDF?

IronPDF可讓您從原始HTML字串、在線網頁或Razor視圖建立PDF文件。 生成的PDF文件可以用幾行C#程式碼內嵌顯示。

這種方法避免強制下載,讓使用者能夠直接在瀏覽器內查看、列印、搜索和儲存PDF——無需使用者端額外的查看元件。

如何從HTML字串建立PDF?

最簡單的方法是直接將HTML字串轉換為PDF。 使用此模式生成動態內容,如報告或發票:

using IronPdf;

var renderer = new ChromePdfRenderer();

string html = @"
    <html>
    <head>
        <style>
            body { font-family: Arial; padding: 20px; }
            h1 { color: #333; }
        </style>
    </head>
    <body>
        <h1>Sample PDF Document</h1>
        <p>This PDF was generated using IronPDF in ASP.NET Core.</p>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(html);

// Return PDF to browser for inline viewing
return File(pdf.BinaryData, "application/pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string html = @"
    <html>
    <head>
        <style>
            body { font-family: Arial; padding: 20px; }
            h1 { color: #333; }
        </style>
    </head>
    <body>
        <h1>Sample PDF Document</h1>
        <p>This PDF was generated using IronPDF in ASP.NET Core.</p>
    </body>
    </html>";

var pdf = renderer.RenderHtmlAsPdf(html);

// Return PDF to browser for inline viewing
return File(pdf.BinaryData, "application/pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim html As String = "
    <html>
    <head>
        <style>
            body { font-family: Arial; padding: 20px; }
            h1 { color: #333; }
        </style>
    </head>
    <body>
        <h1>Sample PDF Document</h1>
        <p>This PDF was generated using IronPDF in ASP.NET Core.</p>
    </body>
    </html>"

Dim pdf = renderer.RenderHtmlAsPdf(html)

' Return PDF to browser for inline viewing
Return File(pdf.BinaryData, "application/pdf")
$vbLabelText   $csharpLabel

建立一個ChromePdfRenderer,它使用Chromium引擎進行精確渲染。 HTML(具有內聯CSS)被傳遞給PdfDocument。 將文件返回application/pdf MIME型別可確保瀏覽器內嵌顯示。想深入了解這種轉換方法,請參閱HTML字串到PDF指南

如何從URL生成PDF?

將現有網頁轉換為PDF同樣簡單。 這對於存檔在線內容或生成以網頁形式發布的報告快照非常有用:

using IronPdf;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

var pdf = renderer.RenderUrlAsPdf("https://example.com/report");
Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");

return File(pdf.BinaryData, "application/pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000);
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

var pdf = renderer.RenderUrlAsPdf("https://example.com/report");
Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf");

return File(pdf.BinaryData, "application/pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.JavaScript(3000)
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print

Dim pdf = renderer.RenderUrlAsPdf("https://example.com/report")
Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf")

Return File(pdf.BinaryData, "application/pdf")
$vbLabelText   $csharpLabel

RenderUrlAsPdf方法抓取網頁,應用樣式和腳本,並輸出一個精美的PDF。 將inline使文件在瀏覽器的PDF查看器中打開。 JavaScript渲染選項可確保動態內容在捕捉之前正確載入。

顯示IronPDF for .NET文件的PDF查看器Web應用程式,頂部有從HTML生成、從URL生成和列印按鈕

如何將Razor視圖轉換為PDF?

Razor視圖是理想的結構化文件模板,如發票,因為同一模板可以服務於網頁和PDF輸出。 將視圖渲染為HTML字串,然後傳遞至IronPDF:

using IronPdf;

// Render the Razor view to an HTML string first
var htmlContent = await RenderViewToString("Invoice", invoiceModel);

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

return File(pdf.BinaryData, "application/pdf");
using IronPdf;

// Render the Razor view to an HTML string first
var htmlContent = await RenderViewToString("Invoice", invoiceModel);

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

return File(pdf.BinaryData, "application/pdf");
Imports IronPdf

' Render the Razor view to an HTML string first
Dim htmlContent As String = Await RenderViewToString("Invoice", invoiceModel)

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)

Return File(pdf.BinaryData, "application/pdf")
$vbLabelText   $csharpLabel

首先使用輔助方法將視圖渲染為HTML字串,然後使用RenderHtmlAsPdf轉換。 這種方法讓您可以重用Razor模板進行網頁顯示和PDF生成,確保輸出在各種格式中保持一致。 HTML到PDF指南涵蓋了其他Razor整合模式。

如何在瀏覽器中內嵌顯示PDF?

內嵌顯示PDF(而不是觸發下載)的關鍵在於設置正確的響應標頭。 當內容型別和狀態配置正確時,現代瀏覽器支持內嵌PDF查看。

設置Content-Disposition: attachment會提示下載對話框。 區別在於一個標頭的值變化,但它對使用者體驗有重大影響。

您還可以增強顯示的文件,使用頁眉和頁腳進行頁碼和品牌標識,或新增自訂浮水印以將文件標記為草稿或機密。

如何啟用動態PDF載入?

對於需要在無需整頁刷新間切換多個文件的應用程式,請使用iframe結合控制器端點:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

// Controller action to list available PDFs
[HttpGet]
public IActionResult GetPdfList()
{
    var pdfs = new List<object>
    {
        new { id = 1, name = "Report 1" },
        new { id = 2, name = "Report 2" }
    };
    return Json(pdfs);
}

// Controller action to generate and return a specific PDF
[HttpGet]
public IActionResult GetPdf(int id)
{
    var renderer = new ChromePdfRenderer();
    string html = $"<h1>Report {id}</h1><p>Content for report {id}.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    Response.Headers.Add("Content-Disposition", $"inline; filename=report-{id}.pdf");
    return File(pdf.BinaryData, "application/pdf");
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

// Controller action to list available PDFs
[HttpGet]
public IActionResult GetPdfList()
{
    var pdfs = new List<object>
    {
        new { id = 1, name = "Report 1" },
        new { id = 2, name = "Report 2" }
    };
    return Json(pdfs);
}

// Controller action to generate and return a specific PDF
[HttpGet]
public IActionResult GetPdf(int id)
{
    var renderer = new ChromePdfRenderer();
    string html = $"<h1>Report {id}</h1><p>Content for report {id}.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    Response.Headers.Add("Content-Disposition", $"inline; filename=report-{id}.pdf");
    return File(pdf.BinaryData, "application/pdf");
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

' Controller action to list available PDFs
<HttpGet>
Public Function GetPdfList() As IActionResult
    Dim pdfs = New List(Of Object) From {
        New With {.id = 1, .name = "Report 1"},
        New With {.id = 2, .name = "Report 2"}
    }
    Return Json(pdfs)
End Function

' Controller action to generate and return a specific PDF
<HttpGet>
Public Function GetPdf(id As Integer) As IActionResult
    Dim renderer = New ChromePdfRenderer()
    Dim html As String = $"<h1>Report {id}</h1><p>Content for report {id}.</p>"
    Dim pdf = renderer.RenderHtmlAsPdf(html)
    Response.Headers.Add("Content-Disposition", $"inline; filename=report-{id}.pdf")
    Return File(pdf.BinaryData, "application/pdf")
End Function
$vbLabelText   $csharpLabel

在使用者端,使用Razor視圖中的一段簡短JavaScript片段更新iframe源,以在無需頁面重新載入的情況下載入不同的PDF。 控制器按需生成PDF,保持響應大小預測。 對於大型文件,將此模式與IronPDF的合併和拆分功能結合使用,以分段提供文件。

PdfViewerApp的截圖顯示一個PDF查看器顯示'Hello World'文字及導航控制和操作按鈕,用於從HTML生成、從URL生成和列印

如何處理部署和性能?

IronPDF可在ASP.NET、ASP.NET Core和Blazor Server專案中運行。 您可以在Windows Server上託管、部署至Azure或使用Docker進行容器化。 由於它支持.NET 10及早期版本,它可以整合到現代和遺留應用程式中。

如何部署到Azure?

部署到Azure App Service時,IronPDF需要的配置最小化。 確保您的App Service計畫至少是B1級以達到最佳性能。 IronPDF自動處理Chrome渲染引擎的部署。

對於Linux上的容器化部署,請在Dockerfile中新增所需的系統依賴項:

RUN apt-get update && apt-get install -y libgdiplus
RUN apt-get update && apt-get install -y libgdiplus
SHELL

IronPDF文件詳細介紹了特定平台的Linux要求。 如果不需要完整的Chrome渲染引擎,考慮使用IronPDF Slim以減少容器映像大小。

有哪些關鍵性能考量?

PDF服務應用程式的性能取決於PDF生成的頻率和大小。 以下是適用於大多數生產部署的做法:

  • 在基礎內容變動不頻繁時使用記憶體流或分布式快取快取生成的PDF
  • 使用非同步控制器操作以避免在PDF生成過程中阻塞執行緒
  • 為包含繁重JavaScript的複雜HTML頁面設置適當的渲染超時
  • 應用浮水印和壓縮以在服務前減少文件大小
  • 啟用PDF轉換為圖像以生成預覽縮圖,而不是在文件列表中載入完整的PDF
  • 使用文字提取來構建伺服器端搜索索引,而不是依賴於瀏覽器內建的PDF搜索

您如何排除常見PDF顯示問題?

為什麼PDF在下載而不是顯示?

如果PDF下載而不是內嵌顯示,請核實響應標頭是否正確設置。 請檢查MIME型別是正確的attachment

Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
return File(pdf.BinaryData, "application/pdf");
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf");
return File(pdf.BinaryData, "application/pdf");
Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf")
Return File(pdf.BinaryData, "application/pdf")
$vbLabelText   $csharpLabel

一些代理和負載均衡器會刪除或修改響應標頭——用開發者工具確認標頭到達瀏覽器。 對於跨來源場景,將CORS標頭新增到Program.cs中,而不是單個響應,以保持配置集中。 如果PDF包含敏感資料,比起僅依賴CORS限制,應應用PDF簽名和密碼保護。

如何處理大型PDF文件?

對於大型文件,流式傳輸可減少伺服器的記憶體壓力。 使用FileStreamResult而不是返回原始位元組資料:

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);

var stream = new MemoryStream(pdf.BinaryData);
return new FileStreamResult(stream, "application/pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent);

var stream = new MemoryStream(pdf.BinaryData);
return new FileStreamResult(stream, "application/pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(largeHtmlContent)

Dim stream As New MemoryStream(pdf.BinaryData)
Return New FileStreamResult(stream, "application/pdf")
$vbLabelText   $csharpLabel

對於非常大的文件,考慮使用IronPDF的合併和拆分功能將它們分成幾個部分,並在使用者介面中實施分頁。 這使個別PDF響應較小且載入速度快。 Microsoft的ASP.NET Core大型文件指導也涵蓋了與PDF交付相關的緩衝策略。

您如何更深入使用IronPDF?

在ASP.NET Core中構建PDF查看器不需要複雜的第三方查看程式庫。 通過將IronPDF的伺服器端渲染引擎與瀏覽器的內建PDF支持結合起來,您可以獲得一個專業的文件查看解決方案,具有良好的擴展能力而且需要的使用者端設置最少。 IronPDF主頁提供完整的程式庫概述和入門資源。

從這裡起,您可以向多個方向擴展實施:

請存取IronPDF文件獲取完整的API參考。 今日開始構建,立即獲取IronPDF免費試用——不需要信用卡。

現在開始使用IronPDF。
green arrow pointer

常見問題

在ASP.NET應用程式中顯示PDF文件的最佳方式是什麼?

使用IronPDF允許開發者在ASP.NET應用程式中輕鬆地直接在瀏覽器中渲染PDF文件,提供無縫的使用者體驗而無需使用像Adobe Acrobat Reader這樣的第三方工具。

IronPDF能否用於增強網頁應用程式中的PDF檢視?

是的,IronPDF旨在通過方便地整合到網頁應用程式中來增強PDF檢視,確保使用者可以輕鬆且有效地查看PDF文件。

在ASP.NET中使用IronPDF時,我需要額外的工具來檢視PDF嗎?

不,IronPDF消除了對於像Adobe Acrobat Reader這樣的額外工具的需求,提供了一個內建的解決方案來直接在ASP.NET應用程式中檢視PDF。

如何在我的.NET網頁應用程式中實現PDF檢視器?

通過將IronPDF整合到您的.NET網頁應用程式中,您可以實施一個功能強大的PDF檢視器,支援各種PDF功能並提供一個使用者友好的介面。

為什麼我應該在ASP.NET中使用IronPDF進行PDF檢視?

IronPDF為ASP.NET應用程式中的PDF檢視提供可靠且有效的解決方案,讓開發者可以為使用者提供無縫的體驗,而無需依賴外部插件。

使用IronPDF是否可以顯示互動PDF表單?

是的,IronPDF支援顯示互動PDF表單,使使用者可以直接在瀏覽器中填寫和互動PDF文件。

可以使用IronPDF查看哪些型別的PDF文件?

IronPDF可以處理各種型別的PDF文件,包括發票、報告和互動表單,使其成為任何ASP.NET應用程式的多功能工具。

IronPDF是否支援.NET 10進行PDF生成和檢視?

是的。IronPDF完全支援.NET 10以及較早的版本如.NET 9、8、7、6以及.NET Core和Framework。這意味著您可以在現代.NET 10 ASP.NET或Blazor應用程式中使用IronPDF來生成、服務並在瀏覽器中內嵌顯示PDF。 (ironpdf.com)

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話