跳至页脚内容
使用IRONPDF

如何在 ASP.NET Core 查看器中显示、保存和打印 PDF

如何在 ASP.NET Core 查看器中显示、保存和打印 PDF.

直接在Web浏览器中显示PDF文档已成为现代ASP.NET Core Web应用程序的基本需求。 无论是生成发票、报告还是合同,用户都希望无缝查看PDF文件,而无需下载PDF文件或安装Adobe Acrobat Reader或其他插件。 本教程演示了IronPDF如何通过其强大的基于Chrome的渲染引擎简化您在ASP.NET Core PDF查看器中的PDF文件显示、保存和打印。

浏览器在ASP.NET Core中如何处理PDF查看?

现代浏览器包括内置的PDF查看器,当它们收到具有正确MIME类型(application/pdf)的PDF文件时会激活。 当您的ASP.NET Core Web应用程序返回具有适当标头的PDF文档时,浏览器会自动内联显示它。这消除了对外部插件、Adobe Acrobat Reader或复杂JavaScript库的需求。 根据MDN Web Docs,正确的标头配置对于控制浏览器如何处理文件下载和显示是至关重要的。

IronPDF通过其ChromePdfRenderer类生成高质量的PDF文件,利用了这个浏览器功能。 渲染器在底层使用完整的Chrome引擎,确保您的PDF文档按照预期精确显示,并完全支持现代CSS、JavaScript、数字签名和Web字体。 与简单的文档查看器不同,IronPDF提供了对PDF处理和渲染的完全控制。

在ASP.NET Core中显示/查看PDF文件需要什么工具?

在您的ASP.NET Core PDF查看器项目中设置IronPDF只需几个步骤。 首先,使用Visual Studio或通过命令行创建一个新项目。打开Visual Studio并选择ASP.NET Core Web应用程序项目模板:

dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
dotnet new mvc -n PdfViewerApp
cd PdfViewerApp
SHELL

安装IronPDF .NET包

在您的.NET项目中通过NuGet包管理器安装IronPDF:

Install-Package IronPdf

或者在解决方案资源管理器中,右键单击您的项目并选择"管理NuGet包"。选择适当的软件包源并搜索IronPDF。

这就是所有设置所需的内容。 IronPDF可与ASP.NET Core 3.1及更高版本(长期支持版本)无缝协作,包括.NET 6、7和8。该库经常更新以确保与最新框架的兼容性。 有关详细的安装说明和其他信息,请访问IronPDF安装指南。该包包括用于PDF生成、编辑和处理的所有必要组件。

如何使用ASP.NET Core在浏览器中显示PDF文件?

创建和在浏览器中显示PDF文件只需几行代码。 这是一个完整的控制器操作,它从HTML生成PDF文档并内联显示。此代码片段演示了核心功能:

using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult ViewPdf()
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options for the PDF viewer
        renderer.RenderingOptions.PrintHtmlBackgrounds = true;
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        renderer.RenderingOptions.EnableJavaScript = true;
        // Generate PDF from HTML string
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; width: 100%; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF for inline viewing in the browser
        return File(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;

public class PdfController : Controller
{
    public IActionResult ViewPdf()
    {
        var renderer = new ChromePdfRenderer();
        // Configure rendering options for the PDF viewer
        renderer.RenderingOptions.PrintHtmlBackgrounds = true;
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        renderer.RenderingOptions.EnableJavaScript = true;
        // Generate PDF from HTML string
        var html = @"
            <html>
            <head>
                <style>
                    body { font-family: Arial, sans-serif; padding: 20px; }
                    h1 { color: #2c3e50; }
                    .content { line-height: 1.6; width: 100%; }
                </style>
            </head>
            <body>
                <h1>Invoice #12345</h1>
                <div class='content'>
                    <p>Date: " + DateTime.Now.ToString("yyyy-MM-dd") + @"</p>
                    <p>Thank you for your business!</p>
                </div>
            </body>
            </html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF for inline viewing in the browser
        return File(pdf.BinaryData, "application/pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上面的代码创建了一个ChromePdfRenderer实例,并将其配置为包含背景颜色并将HTML表单转换为PDF表单。 RenderHtmlAsPdf方法将HTML字符串转换为PDF文件。下面的代码显示了如何通过application/pdf MIME类型返回PDF,告诉浏览器内联显示它而不是下载。 这种服务器端的方法确保在所有浏览器和平台上进行一致的渲染。

输出

如何在ASP.NET Core查看器中显示、保存和打印PDF:图5 - PDF输出

对于现有的HTML文件或Razor页面,您可以使用替代渲染方法查看PDF内容:

// Render from URL - useful for complex pages
var pdf = renderer.RenderUrlAsPdf("https://example.com/invoice");
// Render from HTML file in the same location
var pdf = renderer.RenderHtmlFileAsPdf("Views/Invoice.html");
// Render from wwwroot folder
var pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report.html");
// Render from URL - useful for complex pages
var pdf = renderer.RenderUrlAsPdf("https://example.com/invoice");
// Render from HTML file in the same location
var pdf = renderer.RenderHtmlFileAsPdf("Views/Invoice.html");
// Render from wwwroot folder
var pdf = renderer.RenderHtmlFileAsPdf("wwwroot/templates/report.html");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这些方法为您提供如何来源您的HTML内容的灵活性,同时保持相同的高质量PDF渲染输出。 您还可以使用IronPDF的全面功能加载现有的PDF文档、编辑PDF文件甚至处理Word(DOCX文件)和Excel格式。 在文档中了解有关HTML到PDF转换选项的更多信息。 如需高级处理和编辑功能,请查看API参考。

如何让用户从浏览器保存PDF文档?

为了让用户下载PDF文件而不是内联查看,修改Content-Disposition标头。 这一功能对于需要用户保存文档以供离线访问的Web应用程序至关重要:

public IActionResult DownloadPdf()
{
    var renderer = new ChromePdfRenderer();
    // Create PDF with CSS styling and images
    var html = @"<h1>Download Me</h1>
                 <img src='logo.png' width='100' />";
    var pdf = renderer.RenderHtmlAsPdf(html, @"wwwroot/images");
    // Force download with custom filename
    return File(pdf.BinaryData, "application/pdf", "invoice-2024.pdf");
}
public IActionResult DownloadPdf()
{
    var renderer = new ChromePdfRenderer();
    // Create PDF with CSS styling and images
    var html = @"<h1>Download Me</h1>
                 <img src='logo.png' width='100' />";
    var pdf = renderer.RenderHtmlAsPdf(html, @"wwwroot/images");
    // Force download with custom filename
    return File(pdf.BinaryData, "application/pdf", "invoice-2024.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

添加文件名参数会自动将Content-Disposition标头设置为"附件",提示浏览器下载文件。用户还可以使用浏览器的内置保存功能,通过Ctrl+S或浏览器的PDF查看器工具栏保存内联显示的PDF文件。 默认行为允许用户选择其首选的文件夹位置。

输出

如何在ASP.NET Core查看器中显示、保存和打印PDF:图6 - 浏览器PDF输出

处理大型PDF文档时,为了提高内存效率,请使用流:

public IActionResult StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    // Load and process HTML with images
    var html = "<h1>Streamed Content</h1>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Stream the PDF file to the browser
    var stream = pdf.Stream;
    stream.Position = 0;
    return File(stream, "application/pdf", "document.pdf");
}
public IActionResult StreamPdf()
{
    var renderer = new ChromePdfRenderer();
    // Load and process HTML with images
    var html = "<h1>Streamed Content</h1>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Stream the PDF file to the browser
    var stream = pdf.Stream;
    stream.Position = 0;
    return File(stream, "application/pdf", "document.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这种方法通过直接将PDF文件流传输到响应来减少内存消耗,不会创建中间字节数组。 上面的代码演示了大型文档的高效文件处理。 您还可以从wwwroot文件夹或其他位置加载现有的PDF文件,编辑它们,并流传输修改后的版本。 如需更高级的PDF文档操作和图像处理,请探索PdfDocument API参考。 该组件支持各种编辑操作,包括文本选择、表单填写和添加数字签名。

用户可以直接从ASP.NET Core Web应用程序打印PDF文档吗?

IronPDF通过配置适当的CSS媒体类型和页面设置来优化打印的PDF文件。 无论用户是打印到物理打印机还是保存为PDF,该功能都能确保专业输出:

public IActionResult PrintablePdf()
{
    var renderer = new ChromePdfRenderer();
    // Configure printing options for the PDF viewer
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 25;
    renderer.RenderingOptions.MarginRight = 25;
    // Load HTML with print-specific CSS
    var html = @"<h1>Print-Optimized Document</h1>
                 <p>This document is optimized for printing.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return the PDF file for viewing and printing
    return File(pdf.BinaryData, "application/pdf");
}
public IActionResult PrintablePdf()
{
    var renderer = new ChromePdfRenderer();
    // Configure printing options for the PDF viewer
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
    renderer.RenderingOptions.MarginTop = 25;
    renderer.RenderingOptions.MarginBottom = 25;
    renderer.RenderingOptions.MarginLeft = 25;
    renderer.RenderingOptions.MarginRight = 25;
    // Load HTML with print-specific CSS
    var html = @"<h1>Print-Optimized Document</h1>
                 <p>This document is optimized for printing.</p>";
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return the PDF file for viewing and printing
    return File(pdf.BinaryData, "application/pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

CssMediaType设置为Print应用了特定于打印的CSS样式,确保PDF文档在打印时看起来正确。 边距设置为物理纸张提供了适当的空间。 以下代码显示了用户如何从浏览器的PDF查看器使用标准打印对话框直接打印PDF文件,保持对打印机选择和设置的完全控制。 了解更多关于PDF渲染选项的信息,以微调输出。 核心PDF查看组件自动处理所有打印细节。

如何在ASP.NET Core查看器中显示、保存和打印PDF:图7 - 打印PDF输出

跨平台和容器支持

IronPDF可以顺利运行在Windows、Linux、macOS、Docker容器以及Azure和AWS等云平台上。 这种跨平台的兼容性确保了您的ASP.NET Core PDF查看解决方案在任何部署环境中都能一致地工作。 该库内部处理平台特定的渲染细节,因此相同的代码在各个地方都可以无需修改地工作。

如何在ASP.NET Core查看器中显示、保存和打印PDF:图8 - 跨平台兼容性

服务器端处理确保所有平台上PDF生成的一致性。 无论是部署在Windows服务器还是Linux容器上,组件都能保持相同的渲染质量。 该库自动管理操作系统之间的路径差异,因此wwwroot文件夹或其他位置的文件可以正确处理。 对于容器化部署,请查看Docker部署指南。该包包括每个平台所需的所有依赖项,设置不需要除标准ASP.NET Core要求之外的其他配置。

使用免费试用开始,今天就转变您的文档查看功能。

摘要

IronPDF通过将服务器端生成与浏览器原生查看相结合,改变了ASP.NET Core Web应用程序中的PDF处理。 只需几行代码,您就可以从HTML创建专业的PDF文档,内联显示PDF文件,启用下载,以及优化打印。 基于Chrome的渲染引擎可确保在所有平台上达到像素完美的精度,无需Adobe Acrobat Reader或其他第三方查看器。

此ASP.NET Core PDF查看解决方案提供了包括表单填写、文本选择、数字签名和编辑PDF文件在内的全面功能。 该组件还支持将Word文档(DOCX文件)、Excel电子表格和图像转换为PDF。 无论您是在构建简单的文档查看器还是复杂的文档管理系统,IronPDF都提供了所需的工具和支持。

该库的标记助手集成和丰富的文档使得实现简单。 您的项目主页可以直接显示PDF文件,而后端处理复杂的PDF生成任务。 查看器在从wwwroot文件夹加载、动态生成或从外部资源检索时保持一致的行为。 借助内置的主题支持和可定制的宽度设置,您可以完美匹配应用程序的设计。

准备在您的.NET Core Web应用程序中实施PDF查看了吗?

要用于生产,许可证起价为$749,并包含全面的支持和更新。 访问文档获取详细的API参考和高级功能。 请参考我们的丰富代码示例,快速在您的ASP.NET Core项目中实现PDF功能。

如何在ASP.NET Core查看器中显示、保存和打印PDF:图9 - 许可

常见问题解答

我怎样才能在ASP.NET Core应用程序中显示PDF?

你可以在ASP.NET Core应用程序中使用IronPDF,它提供在应用程序中直接渲染PDF文件的功能。

使用IronPDF在ASP.NET Core中保存PDF的步骤是什么?

要在ASP.NET Core中保存PDF,你可以使用IronPDF的内建方法将你的文档转换为PDF格式,然后将其写入文件系统或流。

在ASP.NET Core应用程序中可以打印PDF吗?

是的,IronPDF允许你通过其渲染和打印功能直接从ASP.NET Core应用程序打印PDF。

在ASP.NET Core中使用IronPDF有什么好处?

IronPDF与ASP.NET Core无缝集成,能够轻松进行PDF操作,如查看、保存和打印,设置非常简单。

IronPDF可以处理ASP.NET Core中的大型PDF文档吗?

是的,IronPDF经过优化,可以高效处理大型PDF文档,即使是复杂文件也能确保流畅性能。

IronPDF支持在ASP.NET Core中加上PDF注释和评论吗?

IronPDF支持在PDF中添加和读取注释和评论,增强了在ASP.NET Core应用程序中的PDF文档的互动性和可用性。

如何将IronPDF集成到现有的ASP.NET Core项目中?

你可以通过安装IronPDF NuGet包并使用其API来管理PDF,将IronPDF集成到你的ASP.NET Core项目中。

在ASP.NET Core中使用IronPDF有没有特定的系统要求?

IronPDF需要.NET Core或.NET 5+,支持所有主流操作系统,使其成为ASP.NET Core项目的灵活选择。

在ASP.NET Core中,IronPDF可以将其他文件格式转换为PDF吗?

是的,IronPDF可以在ASP.NET Core环境中将各种文件格式如HTML、图像和文档转换为PDF。

IronPDF为ASP.NET Core开发者提供什么样的支持?

IronPDF为ASP.NET Core开发者提供了全面的文档、代码示例和响应式支持,以帮助实现PDF功能。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。