如何创建 ASP.NET Core PDF 查看器
构建ASP.NET Core PDF查看器不应需要复杂的JavaScript库或第三方浏览器插件。 现代Web应用程序需要一种可靠的方法来直接在浏览器中显示PDF文件,无论是用于发票、报告还是交互式PDF文档。 IronPDF通过利用浏览器内置的PDF查看器功能,同时在服务器端生成像素完美的PDF,简化了这个过程。
在本文中,我们将引导您如何在ASP.NET Core项目中生成和查看PDF文档,展示如何创建可以显示任何PDF的PDF查看器应用程序。
什么是ASP.NET Core PDF查看器?
ASP.NET Core PDF查看器使用户可以直接在Web应用程序中查看PDF文档,而无需将文件下载到他们的设备。IronPDF采用了一种令人耳目一新的简单方法:它使用Chrome的渲染引擎在服务器端生成高质量的PDF文件,然后通过正确的标头提供,使浏览器自动内联显示PDF文件,而不是与基于JavaScript的文档查看器组件进行较量。
这种服务器端方法意味着您的ASP.NET Core PDF查看器在所有浏览器上都可以一致地工作,无需如Adobe Acrobat Reader等附加插件。 由于IronPDF使用与数百万浏览器相同的Chrome引擎,您的PDF文档能够完全按照预期呈现,保留CSS样式、JavaScript交互和复杂布局。 ASP.NET Core PDF集成处理从HTML到PDF转换到安全文档传递的所有内容,并提供长期支持。
如何在您的Web应用程序中安装IronPDF?
在您的.NET Core Web应用程序中安装IronPDF只需一个NuGet包管理器命令。 在 Visual Studio 中打开包管理器控制台并运行:
Install-Package IronPdf
安装完成后,请在您的 Program.cs 文件中配置 IronPDF 以设置您的许可证密钥:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Start with a free trial key
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // Start with a free trial key
Imports IronPdf
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY" ' Start with a free trial key
这个简单的设置可让您访问IronPDF的完整.NET Core PDF查看器功能。 库自动处理Chrome引擎部署,并提供一个干净的API,用于在ASP.NET Core应用程序中生成和显示PDF文件。
如何创建基础PDF文档查看器?
创建您的第一个ASP.NET Core PDF查看器所需代码量很少。 这是一个将HTML内容转换为可查看PDF文档的控制器:
using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class PdfController : Controller
{
public IActionResult ViewDocument()
{
var renderer = new ChromePdfRenderer();
// Create PDF from HTML string
var html = @"
<html>
<body style='font-family: Arial; padding: 20px;'>
<h1>Invoice #2024-001</h1>
<p>This PDF document is displayed directly in your browser.</p>
<table style='width: 100%; border-collapse: collapse;'>
<tr>
<td style='border: 1px solid #ddd; padding: 8px;'>Item</td>
<td style='border: 1px solid #ddd; padding: 8px;'>Price</td>
</tr>
<tr>
<td style='border: 1px solid #ddd; padding: 8px;'>Service</td>
<td style='border: 1px solid #ddd; padding: 8px;'>$99.00</td>
</tr>
</table>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Return PDF for inline viewing
Response.Headers.Add("Content-Disposition", "inline; filename=invoice.pdf");
return File(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
public class PdfController : Controller
{
public IActionResult ViewDocument()
{
var renderer = new ChromePdfRenderer();
// Create PDF from HTML string
var html = @"
<html>
<body style='font-family: Arial; padding: 20px;'>
<h1>Invoice #2024-001</h1>
<p>This PDF document is displayed directly in your browser.</p>
<table style='width: 100%; border-collapse: collapse;'>
<tr>
<td style='border: 1px solid #ddd; padding: 8px;'>Item</td>
<td style='border: 1px solid #ddd; padding: 8px;'>Price</td>
</tr>
<tr>
<td style='border: 1px solid #ddd; padding: 8px;'>Service</td>
<td style='border: 1px solid #ddd; padding: 8px;'>$99.00</td>
</tr>
</table>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(html);
// Return PDF for inline viewing
Response.Headers.Add("Content-Disposition", "inline; filename=invoice.pdf");
return File(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Public Class PdfController
Inherits Controller
Public Function ViewDocument() As IActionResult
Dim renderer = New ChromePdfRenderer()
' Create PDF from HTML string
Dim html = "
<html>
<body style='font-family: Arial; padding: 20px;'>
<h1>Invoice #2024-001</h1>
<p>This PDF document is displayed directly in your browser.</p>
<table style='width: 100%; border-collapse: collapse;'>
<tr>
<td style='border: 1px solid #ddd; padding: 8px;'>Item</td>
<td style='border: 1px solid #ddd; padding: 8px;'>Price</td>
</tr>
<tr>
<td style='border: 1px solid #ddd; padding: 8px;'>Service</td>
<td style='border: 1px solid #ddd; padding: 8px;'>$99.00</td>
</tr>
</table>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
' Return PDF for inline viewing
Response.Headers.Add("Content-Disposition", "inline; filename=invoice.pdf")
Return File(pdf.BinaryData, "application/pdf")
End Function
End Class
ChromePdfRenderer 类负责处理转换过程,将您的 HTML 转换为 PDF 文档。 将 Content-Disposition 标头设置为"inline"会告诉浏览器显示 PDF 而不是下载它,从而创造无缝的 PDF 查看器体验,用户可以在其 Web 应用程序中直接查看 PDF 文件。
在浏览器查看器中输出PDF文档

如何显示来自不同来源的PDF文件?
您的ASP.NET Core PDF查看器可以从多个包源生成PDF文件。 以下是如何将URL转换为可查看的PDF:
public IActionResult ViewFromUrl(string websiteUrl)
{
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 2000; // Wait for content to load
var pdf = renderer.RenderUrlAsPdf(websiteUrl);
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf");
}
public IActionResult ViewFromUrl(string websiteUrl)
{
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 2000; // Wait for content to load
var pdf = renderer.RenderUrlAsPdf(websiteUrl);
Response.Headers.Add("Content-Disposition", "inline");
return File(pdf.BinaryData, "application/pdf");
}
Imports IronPdf
Public Function ViewFromUrl(websiteUrl As String) As IActionResult
Dim renderer As New ChromePdfRenderer()
' Configure rendering options
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.WaitFor.RenderDelay = 2000 ' Wait for content to load
Dim pdf = renderer.RenderUrlAsPdf(websiteUrl)
Response.Headers.Add("Content-Disposition", "inline")
Return File(pdf.BinaryData, "application/pdf")
End Function
输出

对于存储在服务器上的现有PDF文件,您可以轻松加载和显示它们。 此示例代码展示了如何使用 wwwroot 文件夹中的文件:
public IActionResult ViewExistingPdf(string fileName)
{
// Load PDF from wwwroot folder
var pdfPath = Path.Combine(_webHostEnvironment.WebRootPath, "documents", fileName);
var pdf = PdfDocument.FromFile(pdfPath);
// Optional: Add modifications like watermarks
pdf.ApplyWatermark("<h2 style='color: red; opacity: 0.5;'>CONFIDENTIAL</h2>");
return File(pdf.BinaryData, "application/pdf");
}
public IActionResult ViewExistingPdf(string fileName)
{
// Load PDF from wwwroot folder
var pdfPath = Path.Combine(_webHostEnvironment.WebRootPath, "documents", fileName);
var pdf = PdfDocument.FromFile(pdfPath);
// Optional: Add modifications like watermarks
pdf.ApplyWatermark("<h2 style='color: red; opacity: 0.5;'>CONFIDENTIAL</h2>");
return File(pdf.BinaryData, "application/pdf");
}
Public Function ViewExistingPdf(fileName As String) As IActionResult
' Load PDF from wwwroot folder
Dim pdfPath = Path.Combine(_webHostEnvironment.WebRootPath, "documents", fileName)
Dim pdf = PdfDocument.FromFile(pdfPath)
' Optional: Add modifications like watermarks
pdf.ApplyWatermark("<h2 style='color: red; opacity: 0.5;'>CONFIDENTIAL</h2>")
Return File(pdf.BinaryData, "application/pdf")
End Function

这种灵活性意味着您的 PDF 查看器可以处理动态生成的内容以及存储在您的 wwwroot 文件夹或数据库中的现有 PDF 文档。 组件无缝集成到您的ASP.NET Core架构中。
如何添加高级PDF查看器功能?
IronPDF将您的基础PDF查看器转变为具有高级功能的强大文档查看器。 向PDF文件添加表单,启用用户可以直接填写的交互功能:
public IActionResult CreateFormPdf()
{
var html = @"
<html>
<body>
<h2>Application Form</h2>
<form>
Name:
<br><br>
Email:
<br><br>
<input type='checkbox'> I agree to terms
</form>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true; // Enable form fields
var pdf = renderer.RenderHtmlAsPdf(html);
return File(pdf.BinaryData, "application/pdf");
}
public IActionResult CreateFormPdf()
{
var html = @"
<html>
<body>
<h2>Application Form</h2>
<form>
Name:
<br><br>
Email:
<br><br>
<input type='checkbox'> I agree to terms
</form>
</body>
</html>";
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true; // Enable form fields
var pdf = renderer.RenderHtmlAsPdf(html);
return File(pdf.BinaryData, "application/pdf");
}
Public Function CreateFormPdf() As IActionResult
Dim html As String = "
<html>
<body>
<h2>Application Form</h2>
<form>
Name:
<br><br>
Email:
<br><br>
<input type='checkbox'> I agree to terms
</form>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True ' Enable form fields
Dim pdf = renderer.RenderHtmlAsPdf(html)
Return File(pdf.BinaryData, "application/pdf")
End Function
输出带有可填写表单

当用户在他们的浏览器中打开此PDF时,可以直接填写表单而无需外部工具。 您还可以通过添加页眉、页脚、页码或数字签名来编辑PDF文件。 标记助手方法使得添加这些功能变得简单:
// Add headers and page numbers
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align: center;'>Company Report</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align: center;'>Page {page} of {total-pages}</div>",
MaxHeight = 25
};
// Add headers and page numbers
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align: center;'>Company Report</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align: center;'>Page {page} of {total-pages}</div>",
MaxHeight = 25
};
Imports System
' Add headers and page numbers
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align: center;'>Company Report</div>",
.MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align: center;'>Page {page} of {total-pages}</div>",
.MaxHeight = 25
}
这些功能将您的ASP.NET PDF查看器转变为文档管理的综合解决方案,支持从简单显示到复杂编辑操作的所有功能,包括文本选择和打印功能。 您甚至可以通过IronPDF的转换功能处理其他格式,如Excel、Word、DOCX文件和PowerPoint。
结论
使用IronPDF创建ASP.NET Core PDF查看器消除了JavaScript解决方案的复杂性,同时提供专业级的PDF文档处理。 通过利用浏览器的本地功能和Chrome的渲染引擎,您只需几行代码即可创建、显示和管理PDF文件——无需默认配置或复杂设置。
服务器端生成与浏览器端查看的结合为您的Web应用程序提供了支持、性能和用户体验的完美平衡。 无论您是需要显示PDF文件、处理表单、编辑现有文档或打印PDF,IronPDF的简单API都使实现变得简单。 库经常更新,以确保与最新的.NET框架和Windows环境兼容。
准备在您的ASP.NET Core项目中构建自己的PDF查看器了吗? 开始免费试用,以找到合适的方案。 需要帮助以开始吗? 查看这个详细教程或浏览完整文档以获取更多示例。
常见问题解答
ASP.NET Core PDF查看器的目的是什么?
ASP.NET Core PDF查看器允许您直接在浏览器中显示PDF文件,使得用户可以轻松查看发票、报告或交互式PDF等文档,而无需外部插件。
IronPDF如何简化ASP.NET Core中PDF查看器的创建?
IronPDF通过利用浏览器的内置PDF查看器功能并在服务器端生成像素完美的PDF,消除了复杂JavaScript库或第三方插件的需求,从而简化了这一过程。
IronPDF能处理交互式PDF文档吗?
是的,IronPDF可以管理交互式PDF文档,允许用户在浏览器中直接填写表单和与PDF内容互动。
在Web应用程序中使用IronPDF显示PDF有什么好处?
IronPDF提供了一种可靠、高效的方式来在Web应用程序中显示PDF,提供了服务器端PDF生成和与ASP.NET Core应用程序无缝集成等功能。
使用IronPDF是否需要第三方浏览器插件?
不,IronPDF利用了浏览器的内置PDF查看器功能,因此不需要第三方浏览器插件来显示PDF文件。
使用ASP.NET Core PDF查看器可以显示哪些类型的PDF文档?
ASP.NET Core PDF查看器可以直接在浏览器中显示各种类型的PDF文档,包括发票、报告和交互式表单。
IronPDF是否支持服务器端PDF生成?
是的,IronPDF支持服务器端PDF生成,确保文档在浏览器中显示之前能够准确高效地渲染。
IronPDF如何确保像素完美的PDF渲染?
IronPDF通过使用先进的算法和技术,确保在服务器端生成的文档能够像素完美地渲染。
使用IronPDF构建ASP.NET Core PDF查看器时使用哪种编程语言?
ASP.NET Core PDF查看器是使用C#和ASP.NET Core框架构建的,利用IronPDF处理和显示PDF。



