使用IRONPDF 如何在ASP.NET Core中創建PDF查看器 Curtis Chau 更新日期:9月 18, 2025 Download IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 在 .NET 中构建 Web 应用程序通常需要直接在浏览器中显示 PDF 文档。 无论是发票、报告还是交互式 PDF 表单,终端用户都希望有一个无缝的文档查看器体验,而无需 Adobe Acrobat Reader 或其他第三方浏览器工具。 在本教程中,我们将向您展示如何使用 IronPDF 实现一个 PDF 查看器用于 ASP.NET 和 .NET Core。 这种强大的 PDF 查看器控件允许开发人员在其 .NET 应用程序中创建、呈现和显示 PDF 文件,提供处理关键业务文档的专业解决方案。 PDF 浏览在 ASP.NET Core 中如何工作? 现代浏览器作为一个内置的 PDF 查看器。 当您使用正确的 MIME 类型(application/pdf)提供 PDF 文件时,浏览器将自动内联显示它。这意味着您不需要外部插件来查看 PDF 文档或显示 PDF 文件。 关键在于生成高质量的 PDF,并配置正确的响应头。 IronPDF 是一个经常更新的 .NET PDF 库,擅长从 HTML、Razor 视图或现有文档创建完美像素的 PDF 页面。 其基于 Chrome 的呈现确保准确的 CSS、JavaScript 和图像支持,为您的终端用户提供类似桌面 PDF 查看器的观看体验。 设置您的 ASP.NET Core 项目 首先创建一个新的 ASP.NET Core MVC 应用程序: dotnet new mvc -n PdfViewerApp cd PdfViewerApp 这将搭建一个支持 MVC 的基础 .NET 应用程序。 然后,您可以安装所需的 IronPDF NuGet 包进行 PDF 处理和呈现。 如何安装和配置 IronPDF? 安装 IronPDF 仅需几个步骤。 在 Visual Studio 中打开包管理器控制台并运行以下内容: Install-Package IronPdf 或使用 .NET CLI: dotnet add package IronPdf 在您的 Program.cs 或 Startup.cs 中配置 IronPDF: // Add this at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Use your trial or commercial key // Add this at application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Use your trial or commercial key IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 安装后,在 Program.cs 中设置您的许可证密钥。 IronPDF 的文档提供了配置的附加信息和示例。 如何生成可查看的 PDF? IronPDF 让您可以从原始 HTML、网页或 Razor 视图创建 PDF 文件。 生成的 PDF 文档可以用几行 C# 源代码内联显示。 例如,使用 ChromePdfRenderer,您可以呈现 HTML 并将其作为 PDF 文件返回到浏览器,在您的 ASP.NET PDF 查看器控件中显示。 这种方法避免强制下载,让用户能够在您的 Web 表单或 Blazor 项目中直接查看、打印、搜索和保存 PDF。 从 HTML 字符串创建 PDF 最简单的方法是将 HTML 直接转换为 PDF: using IronPdf; public class PdfController : Controller { public IActionResult GenerateFromHtml() { var renderer = new ChromePdfRenderer(); // Create PDF from HTML var 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 viewing return File(pdf.BinaryData, "application/pdf"); } } using IronPdf; public class PdfController : Controller { public IActionResult GenerateFromHtml() { var renderer = new ChromePdfRenderer(); // Create PDF from HTML var 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 viewing return File(pdf.BinaryData, "application/pdf"); } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 本示例展示了如何直接从一个 HTML 字符串生成 PDF。 创建了一个 ChromePdfRenderer,它使用 Chromium 进行准确的呈现。 HTML(带有内联 CSS)被传递到 RenderHtmlAsPdf,生成一个 PdfDocument。 返回具有 application/pdf MIME 类型的文件可确保浏览器内联显示。这对于在 ASP.NET Core 中动态生成报告或发票非常有用。 從 URL 生成 PDF 将现有网页转换为 PDF: public IActionResult GenerateFromUrl(string url = "https://ironpdf.com") { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.WaitFor.JavaScript(3000); renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; var pdf = renderer.RenderUrlAsPdf(url); Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf"); return File(pdf.BinaryData, "application/pdf"); } public IActionResult GenerateFromUrl(string url = "https://ironpdf.com") { var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.EnableJavaScript = true; renderer.RenderingOptions.WaitFor.JavaScript(3000); renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print; var pdf = renderer.RenderUrlAsPdf(url); Response.Headers.Add("Content-Disposition", "inline; filename=webpage.pdf"); return File(pdf.BinaryData, "application/pdf"); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 在这里,IronPDF 将一个实时网页转换为 PDF。 RenderUrlAsPdf 方法获取页面,应用样式和脚本,并输出一个精心制作的 PDF。 将 Content-Disposition 头设为 inline 可使文件在浏览器的 PDF 查看器中打开。 这对于归档或共享 Web 内容作为 PDF 文档来说是理想的。 輸出 !如何在 ASP.NET Core 中创建一个 PDF 查看器:图 2 - URL 转为 PDF 输出并在 PDF 查看器中显示 将 Razor 视图转换为 PDF 动态将您的 Razor 视图转换为 PDF: public async Task<IActionResult> ViewToPdf() { // Render the view to HTML string first var htmlContent = await RenderViewToString("Invoice", invoiceModel); var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); return File(pdf.BinaryData, "application/pdf"); } private async Task<string> RenderViewToString(string viewName, object model) { ViewData.Model = model; using (var sw = new StringWriter()) { var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName); var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw); viewResult.View.Render(viewContext, sw); return sw.ToString(); } } public async Task<IActionResult> ViewToPdf() { // Render the view to HTML string first var htmlContent = await RenderViewToString("Invoice", invoiceModel); var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(htmlContent); return File(pdf.BinaryData, "application/pdf"); } private async Task<string> RenderViewToString(string viewName, object model) { ViewData.Model = model; using (var sw = new StringWriter()) { var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName); var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw); viewResult.View.Render(viewContext, sw); return sw.ToString(); } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 此代码片段将 Razor 视图转换为 PDF。 视图首先通过 RenderViewToString 渲染为 HTML 字符串,然后使用 RenderHtmlAsPdf 转换。 结果作为浏览器可查看的文件返回。这让您可以重复使用 Razor 模板(如发票)用于网页显示和 PDF 生成,确保一致性。 如何在浏览器中显示 PDF? 内联显示 PDF 的关键在于设置正确的响应头。 基本内联显示 public IActionResult ViewPdf() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>"); Response.Headers.Add("Content-Disposition", "inline"); return File(pdf.BinaryData, "application/pdf"); } public IActionResult ViewPdf() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>"); Response.Headers.Add("Content-Disposition", "inline"); return File(pdf.BinaryData, "application/pdf"); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这个例子强制 PDF 内联显示而不是下载。 通过 RenderHtmlAsPdf 转换简单的 HTML 字符串,并将 Content-Disposition 头设置为 inline。这是一种快速在浏览器中预览生成的 PDF 文件的方法。 輸出 !如何在 ASP.NET Core 中创建一个 PDF 查看器:图 3 - 简单的内联 PDF 查看器示例 动态加载 PDF 无需刷新页面即可加载不同的 PDF: [HttpGet] public IActionResult GetPdfList() { var pdfs = new List<object> { new { id = 1, name = "Report 1" }, new { id = 2, name = "Report 2" } }; return Json(pdfs); } [HttpGet] public IActionResult GetPdf(int id) { var renderer = new ChromePdfRenderer(); var html = $"<h1>Report {id}</h1><p>Content for report {id}</p>"; var pdf = renderer.RenderHtmlAsPdf(html); return File(pdf.BinaryData, "application/pdf"); } // Load PDF dynamically function loadPdf(pdfId) { const frame = document.getElementById('pdfFrame'); frame.src = `/Pdf/GetPdf?id=${pdfId}`; } [HttpGet] public IActionResult GetPdfList() { var pdfs = new List<object> { new { id = 1, name = "Report 1" }, new { id = 2, name = "Report 2" } }; return Json(pdfs); } [HttpGet] public IActionResult GetPdf(int id) { var renderer = new ChromePdfRenderer(); var html = $"<h1>Report {id}</h1><p>Content for report {id}</p>"; var pdf = renderer.RenderHtmlAsPdf(html); return File(pdf.BinaryData, "application/pdf"); } // Load PDF dynamically function loadPdf(pdfId) { const frame = document.getElementById('pdfFrame'); frame.src = `/Pdf/GetPdf?id=${pdfId}`; } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 该代码动态将不同的 PDF 加载到查看器中。 控制器提供一个 PDF 列表并按需生成它们。 JavaScript 的 loadPdf 函数更新 <iframe> 的来源,而不重新加载页面,从而实现快速在文档之间切换。 关于部署的注意事项? IronPDF 可以跨 ASP.NET、ASP.NET Core 和 Blazor Server 项目运行。 您可以在服务器上托管,部署到 Azure 或使用 Docker 容器化。 由于它是一个经常更新并且支持活跃的库,您可以依赖它用于企业级文档处理。 Azure 部署 在部署到 Azure 应用服务时,IronPDF 通过最少的配置无缝工作。 确保您的应用服务计划至少为 B1 级,以获得最佳性能。 IronPDF 自动处理 Chrome 渲染引擎的部署。 请参阅 此处我们的文档,了解如何选择合适的 Azure 级别。 Docker 支持 对于容器化部署,IronPDF 提供 Docker 支持。 在您的 Dockerfile 中添加这些: # Install IronPDF dependencies RUN apt-get update && apt-get install -y libgdiplus 性能提示 当内容不频繁更改时,缓存生成的 PDF 使用异步方法以提高可扩展性 为复杂的 PDF 生成设置适当的超时 常见问题和解决方案 PDF 未显示为内联 如果 PDF 被下载而不是显示: // Ensure Content-Disposition is set correctly Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf"); // Ensure Content-Disposition is set correctly Response.Headers.Add("Content-Disposition", "inline; filename=document.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 跨域问题 当从不同域加载 PDF 时: // Add CORS headers if needed Response.Headers.Add("Access-Control-Allow-Origin", "*"); // Add CORS headers if needed Response.Headers.Add("Access-Control-Allow-Origin", "*"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 大型 PDF 文件 对于大文件,请考虑流式传输: public async Task<IActionResult> StreamPdf() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent); var stream = new MemoryStream(pdf.BinaryData); return new FileStreamResult(stream, "application/pdf"); } public async Task<IActionResult> StreamPdf() { var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf(largeHtmlContent); var stream = new MemoryStream(pdf.BinaryData); return new FileStreamResult(stream, "application/pdf"); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 結論 在 ASP.NET Core 中创建 PDF 查看器并不复杂。 通过结合 IronPDF 的 渲染引擎与浏览器的默认 PDF 查看器,您获得的是一个专业、用户友好的在线 PDF 文件显示、编辑和处理解决方案。无论您需要渲染发票、集成动态报告,还是为移动应用程序构建文档查看器,此方法都提供了合适的功能、可扩展性和性能平衡。 在寻找一个包含工作源代码的完整教程吗? 下载我们的免费示例项目,探索 IronPDF 如何帮助您今天为 ASP.NET 集成一个现代、安全和灵活的 PDF 查看器。 准备在您的 ASP.NET Core 应用程序中实现 PDF 查看了吗? 通过 免费试用 IronPDF 开始,并立即改变您的 Web 应用程序的文档处理能力。 立即開始使用 IronPDF。 免費啟動 常見問題解答 在 ASP.NET 應用程式中顯示 PDF 文件的最佳方法是什麼? 使用 IronPDF,開發人員可以輕鬆地在 ASP.NET 應用程式的瀏覽器中直接渲染 PDF 文檔,從而提供無縫的使用者體驗,而無需 Adobe Acrobat Reader 等第三方工具。 IronPDF 能否用於增強 Web 應用程式中的 PDF 檢視功能? 是的,IronPDF旨在透過與Web應用程式的無縫整合來增強PDF檢視功能,確保使用者可以輕鬆且有效率地檢視PDF文件。 在 ASP.NET 中使用 IronPDF 時,我是否需要其他工具來檢視 PDF 檔案? 不,IronPDF 無需 Adobe Acrobat Reader 等其他工具,提供了一個內建解決方案,可以直接在 ASP.NET 應用程式中查看 PDF 文件。 如何在我的 .NET Web 應用程式中實作 PDF 檢視器? 透過將 IronPDF 整合到您的 .NET Web 應用程式中,您可以實現一個功能強大的 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 和 .NET Framework。這表示您可以在現代的 .NET 10 ASP.NET 或 Blazor 應用程式中使用 IronPDF,在瀏覽器中產生、提供和顯示 PDF 檔案。 (ironpdf.com) Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 發表日期 11月 13, 2025 如何在 C# 中合併兩個 PDF 位元組數組 使用 IronPDF 在 C# 中合併兩個 PDF 位元組數組。學習如何透過簡單的程式碼範例,將來自位元組數組、記憶體流和資料庫的多個 PDF 文件合併在一起。 閱讀更多 發表日期 11月 13, 2025 如何在 ASP.NET MVC 中創建 PDF 檢視器 為 ASP.NET MVC 應用程式構建一個強大的 PDF 檢視器。顯示 PDF 文件,將視圖轉換為 PDF,使用 IronPDF 添加互動功能。 閱讀更多 發表日期 11月 13, 2025 如何建立 .NET HTML 轉 PDF 轉換器 學習如何在.NET中使用IronPDF將HTML轉換為PDF。 閱讀更多 如何在C#中以程式化方式讀取PDF表單字段如何使用IronPDF創建VB.NET PDF...
發表日期 11月 13, 2025 如何在 C# 中合併兩個 PDF 位元組數組 使用 IronPDF 在 C# 中合併兩個 PDF 位元組數組。學習如何透過簡單的程式碼範例,將來自位元組數組、記憶體流和資料庫的多個 PDF 文件合併在一起。 閱讀更多
發表日期 11月 13, 2025 如何在 ASP.NET MVC 中創建 PDF 檢視器 為 ASP.NET MVC 應用程式構建一個強大的 PDF 檢視器。顯示 PDF 文件,將視圖轉換為 PDF,使用 IronPDF 添加互動功能。 閱讀更多