跳至页脚内容
使用IRONPDF

如何创建 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中打开Package Manager Console并运行:

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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这个简单的设置可让您访问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");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ChromePdfRenderer类处理转换处理,将您的HTML转换为PDF文档。 将Content-Disposition标头设置为“inline”指示浏览器显示PDF而不是下载它,创建一个无缝的PDF查看器体验,让用户可以直接在Web应用程序中查看PDF文件。

在浏览器查看器中输出PDF文档

如何创建ASP.NET Core PDF查看器:图1 - 我们的浏览器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");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

如何创建ASP.NET Core PDF查看器:图2 - 从URL渲染的PDF并显示在我们的PDF查看器程序中

对于存储在服务器上的现有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");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如何创建ASP.NET Core PDF查看器:图3 - 查看现有的PDF(包括我们添加的水印)

这种灵活性意味着您的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");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出 with Fillable Form

如何创建ASP.NET Core PDF查看器:图4

当用户在他们的浏览器中打开此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
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这些功能将您的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的处理和显示。

Curtis Chau
技术作家

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

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