跳過到頁腳內容
使用IRONPDF

如何在 ASP.NET MVC 中創建 PDF 檢視器

為 ASP.NET MVC 應用程式建立強大的 PDF 檢視器不需要複雜的 JavaScript 程式庫或第三方檢視器控制項。 借助IronPDF ,您可以建立一個強大的 MVC PDF 檢視器控件,它可以處理從顯示 PDF 文件到直接從視圖產生動態 PDF 文件的所有操作。

本文將向您展示如何實現一個完整的 ASP.NET MVC PDF 檢視器解決方案,可在所有瀏覽器上無縫運作。 我們還將展示如何為現代 Web 應用程式實現文字選擇、表單填寫和響應式顯示等功能。 在您上傳和查看第一個文件之前,請記下我們全面的文件

下載 IronPDF ,看看只需幾行程式碼就能輕鬆建立自己的 .NET MVC PDF 檢視器控制項。

如何建立一個基於 ASP.NET MVC 的 PDF 檢視器?

設定基於 ASP 的 PDF 檢視器首先需要透過NuGet 套件管理器安裝 IronPDF。 此 .NET PDF 檢視器控制項提供伺服器端處理功能,可消除瀏覽器相容性問題。 有關詳細的安裝指導,請參閱IronPDF 安裝文件

Install-Package IronPdf

在 ASP.NET MVC 控制器中,新增必要的命名空間:

using IronPdf;
using System.Web.Mvc;
using IronPdf;
using System.Web.Mvc;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這些匯入功能使您的 Web 應用程式能夠處理 PDF 渲染和顯示。 ChromePdfRenderer類別是 MVC PDF 檢視器控制的核心元件,它提供了在使用者瀏覽器中直接建立、操作和顯示 PDF 檔案的方法。 與客戶端解決方案不同,IronPDF 在伺服器端處理所有操作,確保在所有裝置和瀏覽器上呈現一致的效果,同時保持對 PDF 文件的控制。 這種方法的一個主要優點是安全性。

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

建立一個顯示現有 PDF 檔案的 PDF 檢視器控制項需要實作一個控制器操作,該操作會將文件作為FileResult傳回。 這種方法使用戶可以直接在瀏覽器中查看 PDF 頁面,而無需手動上傳或選擇檔案。 對於更進階的場景,請探索IronPDF 的渲染選項

public FileResult DisplayPdf(string fileName)
{
    // Load existing PDF document
    var pdfPath = Server.MapPath($"~/Content/PDFs/{fileName}");
    PdfDocument PDF = PdfDocument.FromFile(pdfPath);
    // Set response headers to display in browser
    Response.Headers.Add("Content-Disposition", "inline; filename=" + fileName);
    // Return PDF to the browser
    return File(PDF.BinaryData, "application/pdf");
}
public FileResult DisplayPdf(string fileName)
{
    // Load existing PDF document
    var pdfPath = Server.MapPath($"~/Content/PDFs/{fileName}");
    PdfDocument PDF = PdfDocument.FromFile(pdfPath);
    // Set response headers to display in browser
    Response.Headers.Add("Content-Disposition", "inline; filename=" + fileName);
    // Return PDF to the browser
    return File(PDF.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這段程式碼從伺服器的檔案系統載入 PDF 文件並將其傳送到瀏覽器。 Content-Disposition: inline標頭告訴瀏覽器在視窗內顯示 PDF 文件,而不是觸發下載。 PdfDocument.FromFile方法讀取現有文件,而PDF.BinaryData提供串流所需的位元組陣列。

這個簡單的實作創建了一個功能齊全的 MVC PDF 檢視器,可以有效地處理各種文件大小。 為了實現響應式顯示,瀏覽器會根據視窗尺寸自動調整顯示,確保您的 PDF 檢視器在行動裝置上也能正常運作。 根據Stack Overflow 上的討論,這種伺服器端方法比嵌入插件提供了更好的控制。 它與螢幕閱讀器也相容良好。

輸出 PDF

使用 IronPDF 建立 ASP.NET MVC PDF 檢視器:圖 1 - PDF 在瀏覽器中顯示

如何將視圖轉換為 PDF 文件?

您的 ASP.NET MVC PDF 檢視器可以從 Razor 視圖動態產生 PDF 文檔,從而實現資料驅動的文檔建立。 這項強大的功能可讓您將任何視圖轉換為專業格式的 PDF 檔案。 了解更多關於將CSHTML轉換為PDF的資訊

public FileResult GeneratePdfFromView()
{
    // Sample data for the view
    var model = new ReportModel
    {
        Title = "Monthly Report",
        Data = ReportModel.GetReportData()
    };
    // Initialize renderer
    var renderer = new ChromePdfRenderer();
    // Configure rendering options
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.EnableJavaScript = true;
    // Render MVC view to PDF
    var PDF = renderer.RenderView(this.HttpContext,
                                  "~/Views/Reports/Monthly.cshtml",
                                  model);
    // Display in browser
    Response.Headers.Add("Content-Disposition", "inline");
    return File(PDF.BinaryData, "application/pdf");
}
public FileResult GeneratePdfFromView()
{
    // Sample data for the view
    var model = new ReportModel
    {
        Title = "Monthly Report",
        Data = ReportModel.GetReportData()
    };
    // Initialize renderer
    var renderer = new ChromePdfRenderer();
    // Configure rendering options
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.EnableJavaScript = true;
    // Render MVC view to PDF
    var PDF = renderer.RenderView(this.HttpContext,
                                  "~/Views/Reports/Monthly.cshtml",
                                  model);
    // Display in browser
    Response.Headers.Add("Content-Disposition", "inline");
    return File(PDF.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

RenderView 方法將您的 CSHTML 視圖轉換為 PDF 文檔,並保留所有樣式和佈局。 RenderingOptions 可讓您控制邊距、啟用 JavaScript 執行以及配置其他顯示屬性。 這種伺服器端渲染技術確保無論使用者使用何種瀏覽器或設備,都能獲得一致的輸出結果。

產生的 PDF 頁面保留了您視圖的響應式設計元素,自動調整內容以達到最佳顯示效果。 對於複雜的佈局,您還可以新增頁首和頁尾來建立專業文件。 與大多數客戶端方案相比,這是一個非常輕量級的解決方案。

渲染視圖輸出

使用 IronPDF 建立 ASP.NET MVC PDF 檢視器:圖 2 - 視圖渲染為 PDF,然後顯示在我們的 PDF 檢視器應用程式中

您可以為 PDF 檢視器新增哪些功能?

現代 PDF 檢視器控制項的實作需要除基本顯示功能之外的互動功能。 IronPDF 在渲染 PDF 檔案時會自動啟用文字選擇和文字搜尋功能。 使用者可以直接從顯示的文件中選取並複製內容。 這些功能可以提升使用者體驗,並使您的 ASP.NET MVC PDF 檢視器功能更加強大。

public FileResult ViewPdfWithFeatures(int documentId = 1)
{
    // Load the PDF document object
    var PDF = LoadPdfDocument(documentId);
    if (PDF == null)
    {
        // Handle file not found (returns nothing, which will result in a 404 or empty response)
        return null;
    }
    PDF.SecuritySettings.AllowUserFormData = true;
    PDF.Bookmarks.AddBookMarkAtStart("Table of Contents", 1);
    PDF.Bookmarks.AddBookMarkAtStart("Chapter 1", 5);
    // Configure viewer toolbar
    Response.Headers.Add("Content-Disposition",
                        "inline; filename=document.pdf#toolbar=1");
    // return File (pdf.BinaryData, "application/pdf");
    return File(PDF.BinaryData, "application/pdf");
}
public FileResult ViewPdfWithFeatures(int documentId = 1)
{
    // Load the PDF document object
    var PDF = LoadPdfDocument(documentId);
    if (PDF == null)
    {
        // Handle file not found (returns nothing, which will result in a 404 or empty response)
        return null;
    }
    PDF.SecuritySettings.AllowUserFormData = true;
    PDF.Bookmarks.AddBookMarkAtStart("Table of Contents", 1);
    PDF.Bookmarks.AddBookMarkAtStart("Chapter 1", 5);
    // Configure viewer toolbar
    Response.Headers.Add("Content-Disposition",
                        "inline; filename=document.pdf#toolbar=1");
    // return File (pdf.BinaryData, "application/pdf");
    return File(PDF.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此功能實現了表單填寫功能,允許使用者直接在瀏覽器中提交 PDF 表單資料。 新增書籤後,文件結構清晰,方便瀏覽長篇文件。 Content-Disposition標頭中的內建工具列參數可確保使用者可以存取瀏覽器的縮放、列印和下載工具。

這些功能將基本顯示介面轉變為支援完整文件互動的全面 ASP.NET MVC PDF 檢視器。 對於進階應用場景,您可以探索IronPDF 的註釋功能,為 PDF 頁面添加評論和註釋。 使用 Ctrl + F 等鍵盤快速鍵可以快速搜尋文字匹配項。

輸出

使用 IronPDF 建立 ASP.NET MVC PDF 檢視器:圖 3 - 已載入 PDF 並新增了書籤輪廓

如何確保您對 PDF 檢視器的控制權限?

在 Web 應用程式中實作 PDF 檢視器時,安全性至關重要。 IronPDF 為敏感 PDF 文件提供多層保護。 根據微軟的安全最佳實踐,伺服器端處理比客戶端庫提供更好的控制。

public FileResult SecurePdfView(string documentId)
{
    var PDF = GenerateConfidentialPdf();
    // Apply security settings
    PDF.SecuritySettings.UserPassword = "MySecretPassword";
    PDF.SecuritySettings.OwnerPassword = "OwnerSecretPassword";
    PDF.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
    PDF.SecuritySettings.AllowUserCopyPasteContent = false;
    PDF.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;
    // Prevent unauthorized downloads
    Response.Headers.Add("X-Frame-Options", "SAMEORIGIN");
    Response.Headers.Add("Content-Security-Policy",
                        "frame-ancestors 'self'");
    return File(PDF.BinaryData, "application/pdf");
}
public FileResult SecurePdfView(string documentId)
{
    var PDF = GenerateConfidentialPdf();
    // Apply security settings
    PDF.SecuritySettings.UserPassword = "MySecretPassword";
    PDF.SecuritySettings.OwnerPassword = "OwnerSecretPassword";
    PDF.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
    PDF.SecuritySettings.AllowUserCopyPasteContent = false;
    PDF.SecuritySettings.AllowUserEdits = IronPdf.Security.PdfEditSecurity.NoEdit;
    // Prevent unauthorized downloads
    Response.Headers.Add("X-Frame-Options", "SAMEORIGIN");
    Response.Headers.Add("Content-Security-Policy",
                        "frame-ancestors 'self'");
    return File(PDF.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這些安全措施可保護您的 PDF 檔案免遭未經授權的存取和散佈。 密碼保護要求在查看前進行身份驗證,而權限設定可防止複製或列印敏感內容。 安全標頭可防止將您的 PDF 檢視器控制項嵌入未經授權的外部網站中。 這在保護機密文件時尤其有用。

如需了解更多安全性選項,請查閱IronPDF 的密碼和權限文件

結論

IronPDF憑藉其全面的PDF檢視器功能,可將ASP.NET MVC應用程式轉變為強大的文件管理系統。 從基本的文件顯示到表單填寫和文字搜尋等進階功能,您可以建立一個符合現代 Web 應用程式要求的專業 MVC PDF 檢視器控制項。 伺服器端處理可確保在所有平台上呈現一致的效果,同時保持對 PDF 文件的安全性和控制權。 無論您需要顯示 PDF 文件、建立動態報告或添加互動式 UI 元素,IronPDF 都提供相應的工具和文件來支援您的開發流程。

準備好實現您自己的 ASP.NET MVC PDF 檢視器了嗎? 立即開始免費試用,並透過我們全面的文件探索 IronPDF 的全部功能。 有關實際操作範例,請參閱我們的程式碼範例教學。 需要企業級功能? 查看我們的授權選項,選擇適合您團隊的方案。

常見問題解答

如何在 ASP.NET MVC 中建立 PDF 檢視器而不需要複雜的程式庫?

您可以使用 IronPDF 為您的 ASP.NET MVC 應用程式建立一個強大的 PDF 檢視器。它可讓您直接從視圖中顯示 PDF 檔案並產生動態 PDF 文件,而不需要複雜的 JavaScript 函式庫或第三方檢視器控制項。

IronPDF 為 ASP.NET MVC 應用程式提供哪些功能?

IronPDF for .NET 提供的功能包括顯示 PDF 文件、將視圖轉換為 PDF,以及新增互動式元素以增強 ASP.NET MVC 應用程式的功能。

IronPDF 能否處理 ASP.NET MVC 中的視圖轉換為 PDF?

是的,IronPDF 可以將視圖轉化成 PDF 文件,讓您可以輕鬆地從 ASP.NET MVC 視圖直接產生 PDF 檔案。

是否可以在 ASP.NET MVC 中使用 IronPDF 為 PDF 添加互動功能?

當然,IronPDF 可讓您在 PDF 文件中加入互動功能,增強 ASP.NET MVC 應用程式中的使用者參與度。

使用 IronPDF 在 ASP.NET MVC 中顯示 PDF 是否需要額外的外掛程式?

不,使用 IronPDF,您不需要額外的外掛程式或第三方檢視器控制項,即可在您的 ASP.NET MVC 應用程式中顯示 PDF。

Curtis Chau
技術作家

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

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