跳過到頁腳內容
使用IRONPDF

如何使用 IronPDF for .NET 創建 ASP.NET Core MVC PdfViewer

現代瀏覽器都內建了 PDF 檢視器,當 Web 應用程式提供具有正確 MIME 類型的 PDF 檔案時,該檢視器會自動啟動。 這樣就無需使用第三方工具或插件,使用者可以直接在瀏覽器中顯示 PDF 文件。 IronPDF 是一個經常更新的 .NET PDF 庫,它使在 ASP.NET Core MVC 應用程式中產生、渲染和顯示 PDF 檔案變得簡單。

本文將向您展示如何使用 IronPDF 基於 Chrome 的渲染引擎建立一個 ASP.NET Core MVC PDF 檢視器 Web 應用程式。本指南的主要目標是在保持高效能的同時,實現像素級精準的渲染效果。

!{--01001100010010010100001001010010010000010101001001011001010111110100011101000101010101 01000101111101010011010101000100000101010010010101000100010101000100010111110101011101001000110 1010101000100100001011111010100000101001001001111010001000101010101010000110101010100101010101011 10101010001010010010010010010000010100110001011111010000100100110001001111101000011010010111111010000110100101110--

現代瀏覽器如何顯示PDF檔案?

Chrome、Firefox、Edge 和 Safari 等現代瀏覽器都內建了 PDF 檢視器功能。 當您的 ASP.NET Core 應用程式傳回 application/pdf 內容類型的檔案時,瀏覽器會將 PDF 文件內嵌呈現,而無需 Adobe Acrobat 或外部插件。 這款內建的 PDF 檢視器支援文字選擇、列印、縮放控制、書籤和頁面導航等基本功能,從而打造完整的文件檢視體驗。

為了安全地提供現有文件,最佳實踐是使用託管環境來定位它們,而不是依賴在開發和生產之間可能會發生變化的目錄路徑。 此外,對於大型文檔,使用文件流通常比載入整個位元組數組更節省記憶體。

using Microsoft.AspNetCore.Mvc;
public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}
using Microsoft.AspNetCore.Mvc;
public class DocumentController : Controller
{
    public IActionResult ViewPdf()
    {
        // Path to an existing PDF file in the wwwroot folder
        string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "documents", "sample.pdf");
        byte[] fileBytes = System.IO.File.ReadAllBytes(path);
        // Return file for inline browser display
        return File(fileBytes, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF 檢視器:顯示我們的 PDF 文件

如何使用 IronPDF 建立 ASP.NET Core MVC PDF 檢視器:圖 1 - 瀏覽器中顯示的範例 PDF

上面的程式碼從伺服器讀取一個現有的 PDF 文件,並將其傳回給瀏覽器。 File() 方法接受一個位元組陣列和一個內容類型,指示瀏覽器的文件檢視器以內嵌方式渲染內容。這種方法適用於所有現代瀏覽器,無論是在桌面端還是行動裝置上,都能為所有使用者提供一致的體驗。

開發者如何動態產生PDF文件?

靜態 PDF 文件雖然有用,但許多 Web 應用程式需要動態產生的文件。 IronPDF 的ChromePdfRenderer類別可以將 HTML 內容轉換為專業渲染的 PDF 檔案。 首先,透過 Visual Studio 中的 NuGet 套件安裝 IronPDF 即可開始使用。

您可以直接在 HTML 字串中包含外部資源,例如特定主題的 CSS 或圖表的 JavaScript。

using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string HTML = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";
        PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
    public IActionResult GenerateReport()
    {
        var renderer = new ChromePdfRenderer();
        // HTML content with CSS styling
        string HTML = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 40px; }
                    h1 { color: #2c3e50; }
                    .report-body { line-height: 1.6; }
                </style>
            </head>
            <body>
                <h1>Monthly Sales Report</h1>
                <div class='report-body'>
                    <p>Generated: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
                    <p>This report contains the latest sales figures.</p>
                </div>
            </body>
            </html>";
        PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF檔案產生後會在我們的文件檢視器中顯示。

如何使用 IronPDF 建立 ASP.NET Core MVC PDF 檢視器:圖 2 - 從 HTML 內容渲染 PDF 文件,然後查看它

此範例示範了 IronPDF 如何將 HTML 字串轉換為 PDF 文件。 ChromePdfRenderer使用基於 Chromium 的引擎,確保準確的 CSS 渲染和 JavaScript 支援。 產生的 PDF 文件保留了 HTML 正文中定義的所有樣式,因此非常適合建立報告、發票和其他需要一致格式的文件。 控制器處理請求,應用程式將渲染後的輸出傳回給使用者。

有關HTML 轉 PDF 轉換的更多資訊和程式碼範例,請查閱 IronPDF 的綜合文件。

在線上顯示和下載之間有哪些選項?

有時用戶需要下載 PDF 檔案而不是在瀏覽器中查看。 您可以在主頁上放置一個鏈接,引導用戶查看這些報告。 瀏覽器如何處理回應的具體細節取決於Content-Disposition標頭。

using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument PDF = renderer.RenderUrlAsPdf("https://example.com");
        // Display PDF inline in browser
        return File(pdf.BinaryData, "application/pdf");
    }
    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument PDF = renderer.RenderUrlAsPdf("https://example.com");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class PdfController : Controller
{
    public IActionResult DisplayInline()
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument PDF = renderer.RenderUrlAsPdf("https://example.com");
        // Display PDF inline in browser
        return File(pdf.BinaryData, "application/pdf");
    }
    public IActionResult DownloadPdf()
    {
        var renderer = new ChromePdfRenderer();
        PdfDocument PDF = renderer.RenderUrlAsPdf("https://example.com");
        // Prompt download with specified filename
        return File(pdf.BinaryData, "application/pdf", "webpage-report.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF 渲染並內嵌顯示

如何使用 IronPDF 建立 ASP.NET Core MVC PDF 檢視器:圖 3 - 從 URL 內容渲染後,以內聯方式檢視 PDF 文件

這兩個控制器操作的差異在於 File() 方法的第三個參數。 當您提供檔案名稱時,ASP.NET Core 會自動新增Content-Disposition : attachment 標頭,提示使用者下載檔案。如果省略檔案名稱參數,則使用預設的內嵌顯示模式。

這種靈活性使您的應用程式能夠根據使用者請求或專案要求支援兩種查看場景。

Razor Pages 如何與 .NET Core PDF 產生整合?

ASP.NET Core MVC 中的 Razor Pages 為實作 .NET PDF 檢視器控制項提供了另一種方法。 頁面模型可以使用與 IronPDF 相同的功能來產生和返回 PDF 檔案。

using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        string HTML = $@"
            <html>
            <body>
                <h1>Invoice #{id}</h1>
                <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
                <p>Thank you for your business!</p>
            </body>
            </html>";
        PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
public class InvoiceModel : PageModel
{
    public IActionResult OnGet(int id)
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        string HTML = $@"
            <html>
            <body>
                <h1>Invoice #{id}</h1>
                <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
                <p>Thank you for your business!</p>
            </body>
            </html>";
        PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
        return File(pdf.BinaryData, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出

如何使用 IronPDF 建立 ASP.NET Core MVC PDF 檢視器:圖 4 - 產生的 PDF

此 Razor Pages 範例示範了 OnGet 處理程序如何根據 URL 參數產生 PDF。 RenderingOptions 屬性允許自訂邊距、頁面方向和其他設定。 如需了解更多信息,請查閱 IronPDF 的渲染選項文件

結論

建立一個用於 PDF 文件的 ASP.NET Core MVC 檢視器,將瀏覽器原生功能與 IronPDF 的強大生成功能結合。 現代瀏覽器內建的 PDF 檢視器會在 ASP 控制器返回具有正確 MIME 類型的文件時自動處理顯示、列印和導航功能。 IronPDF 簡化了從 HTML、URL 或現有文件建立專業 PDF 文件的過程,並完全支援 CSS、JavaScript 和自訂渲染選項。

無論是建立用於顯示 PDF 文件的簡單文件檢視器,還是實現報表產生系統,IronPDF 都提供了無縫 PDF 整合所需的工具和功能。 .NET 程式庫可以與您的 ASP.NET Core Web 應用程式無縫整合。

立即開始免費試用,探索 IronPDF 的全部功能,或購買許可證用於生產環境。

常見問題解答

如何在 ASP.NET Core MVC 應用程式中顯示 PDF 檔案?

您可以使用 IronPDF for .NET 在 ASP.NET Core MVC 應用程式中顯示 PDF 檔案。它允許您使用現代的內建 PDF 檢視器直接在瀏覽器中產生、渲染和顯示 PDF 檔案。

在瀏覽器中檢視 PDF 是否需要第三方外掛程式?

不,現代瀏覽器已內建 PDF 檢視器,可在提供具有正確 MIME 類型的 PDF 檔案時自動啟動。IronPDF 可協助確保您的 PDF 正確提供。

在 ASP.NET Core MVC 中使用 IronPDF 有何優勢?

IronPDF for .NET 是一個 .NET PDF 函式庫,可簡化在 ASP.NET Core MVC 應用程式中產生和渲染 PDF 文件的流程,提高生產力並簡化 PDF 管理。

IronPDF 可與現有的瀏覽器 PDF 檢視器搭配使用嗎?

是的,IronPDF 可與現有的瀏覽器 PDF 檢視器無縫配合,確保 PDF 以正確的 MIME 類型提供,以便在瀏覽器中自動顯示。

IronPdf 是否經常更新?

是的,IronPDF 是一個經常更新的 .NET PDF 函式庫,提供在 ASP.NET Core MVC 應用程式中處理 PDF 文件的最新功能和改進。

IronPDF 如何處理 Web 應用程式中的 PDF 生成?

IronPDF 提供從各種內容類型產生 PDF 的強大功能,讓開發人員可以在 Web 應用程式中建立動態且互動的 PDF 文件。

應使用何種 MIME 類型來提供 PDF 檔案?

為了確保在瀏覽器中正常顯示,PDF 檔案應使用 MIME 類型「application/pdf」。IronPDF 可協助有效管理這方面的工作。

我可以自訂 IronPDF 中的 PDF 渲染方式嗎?

是的,IronPDF 提供廣泛的自訂選項來渲染 PDF,讓您可以量身訂做輸出,以符合特定的設計和功能需求。

IronPDF 是否僅支援 ASP.NET Core MVC 應用程式?

雖然 IronPDF 非常適合 ASP.NET Core MVC 應用程式,但它也具有多樣性,可搭配其他 .NET 應用程式來處理 PDF 功能。

Curtis Chau
技術作家

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

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