使用IRONPDF 如何在ASP.NET Core中创建PDF查看器 Curtis Chau 已更新:九月 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在ASP.NET和.NET Core中实现PDF查看器。 这个强大的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中生成报告或发票非常有用。 从URLs生成PDFs 转换现有网页为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文档是理想的。 输出 将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内联显示,而非下载。 一个简单的HTML字符串使用RenderHtmlAsPdf转换,并将Content-Disposition头设置为inline。这是直接在浏览器中快速预览生成的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服务器项目中使用。 您可以在服务器上托管、部署到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如何帮助您集成一个现代、安全、灵活的PDF查看器到ASP.NET中。 准备好在您的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网络应用中实现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 及 .NET Framework。这意味着您可以在现代的 .NET 10 ASP.NET 或 Blazor 应用程序中使用 IronPDF,在浏览器中生成、提供和显示 PDF 文件。(ironpdf.com) Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十一月 13, 2025 如何在 C# 中合并两个 PDF 字节数组 使用 IronPDF 在 C# 中合并两个 PDF 字节数组。学习通过简单的代码示例从字节数组、内存流和数据库合并多个 PDF 文件。 阅读更多 已发布十一月 13, 2025 如何创建 ASP.NET MVC PDF 查看器 为 ASP.NET MVC 应用程序构建一个强大的 PDF 查看器。显示 PDF 文档,将视图转换为 PDF,并使用 IronPDF 添加交互功能。 阅读更多 已发布十一月 13, 2025 如何构建 .NET HTML 到 PDF 转换器 学习如何使用 IronPDF 在 .NET 中将 HTML 转换为 PDF。 阅读更多 如何以编程方式读取C#中的PDF表单字段如何使用IronPDF创建VB.NET PDF...
已发布十一月 13, 2025 如何在 C# 中合并两个 PDF 字节数组 使用 IronPDF 在 C# 中合并两个 PDF 字节数组。学习通过简单的代码示例从字节数组、内存流和数据库合并多个 PDF 文件。 阅读更多
已发布十一月 13, 2025 如何创建 ASP.NET MVC PDF 查看器 为 ASP.NET MVC 应用程序构建一个强大的 PDF 查看器。显示 PDF 文档,将视图转换为 PDF,并使用 IronPDF 添加交互功能。 阅读更多