跳至页脚内容
使用IRONPDF

如何在 Dotnet Core 中生成 PDF 文件

在.NET Core应用程序中创建PDF文档是开发人员为生成发票、报告和其他业务文档的Web应用程序而常见的任务。 IronPDF 提供了一个强大的 PDF 库,通过其 Chrome 渲染引擎简化了在 ASP.NET Core 中生成 PDF 的过程,每次都能生成像素完美的 PDF。在本文中,我们将看看如何在 .NET 环境中处理各种 PDF 生成任务。

DotNet Core 如何生成 PDF 文件?

IronPDF 使用基于 Google Chrome 的 WebKit 渲染引擎将 HTML 内容渲染为 PDF 文件。 这种 PDF 创建方法意味着您可以利用现有的 HTML 标记和 CSS 知识来创建 PDF,而无需学习复杂的 PDF 生成功能或处理陡峭的学习曲线。 PDF 库自动处理从网页生成 PDF 文档。

该库的流畅 API 允许开发人员生成 HTML 页面、URL 或 HTML 内容字符串的 PDF 文档。 在将 HTML 转换为 PDF 时,IronPDF 保留复杂布局、CSS 样式、JavaScript 执行,甚至依赖于动态内容的网页内容。 这使其成为需要在 .NET 应用程序中提供丰富功能 PDF 转换能力的 .NET 开发人员的合适工具。 .NET 库在生成准确无误的 PDF 文件方面表现出色。

如何通过 NuGet 包管理器安装 IronPDF?

开始使用 IronPDF 只需通过 NuGet 包管理器安装一个命令行工具。 在 Visual Studio 中打开包管理器控制台并运行以下命令:

Install-Package IronPdf

如何从 HTML 字符串生成 PDF 文档?

创建 PDF 文档的最简单方法是直接转换 HTML 内容。 以下是一个基本的 'Hello World' 示例,展示如何生成 PDF 文件:

using IronPdf;

// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("hello.pdf");
using IronPdf;

// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("hello.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

在上述代码中,我们使用仅几行代码创建了一个新的 PDF 文档。 ChromePdfRenderer 类提供了从 HTML 生成 PDF 文件的核心功能。 pdf 对象包含准备保存到文件路径的 PDF 文档。

高级 HTML 转 PDF 转换

为了更详细地展示 HTML 到 PDF 的能力,让我们创建一个带有 HTML 标记和 CSS 样式的发票文档:

using IronPdf;

var html = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; font-size: 14px; }
        .invoice-header { 
            background-color: #2c3e50; 
            color: white; 
            padding: 20px;
            font-family: 'Helvetica', sans-serif;
        }
        .invoice-details { margin: 20px 0; }
        table { width: 100%; border-collapse: collapse; }
        th, td {
            padding: 12px; 
            text-align: left; 
            border-bottom: 1px solid #ddd;
        }
        .total { 
            font-size: 1.2em; 
            font-weight: bold; 
            text-align: right;
        }
    </style>
</head>
<body>
    <div class='invoice-header'>
        <h1>Invoice #2024-001</h1>
        <p>Date: January 15, 2024</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: John Doe</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$749</td>
            </tr>
        </table>
        <p class='total'>Total: $749.00</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();
// Configure rendering options for the PDF document
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
using IronPdf;

var html = @"
<html>
<head>
    <style>
        body { font-family: Arial, sans-serif; font-size: 14px; }
        .invoice-header { 
            background-color: #2c3e50; 
            color: white; 
            padding: 20px;
            font-family: 'Helvetica', sans-serif;
        }
        .invoice-details { margin: 20px 0; }
        table { width: 100%; border-collapse: collapse; }
        th, td {
            padding: 12px; 
            text-align: left; 
            border-bottom: 1px solid #ddd;
        }
        .total { 
            font-size: 1.2em; 
            font-weight: bold; 
            text-align: right;
        }
    </style>
</head>
<body>
    <div class='invoice-header'>
        <h1>Invoice #2024-001</h1>
        <p>Date: January 15, 2024</p>
    </div>
    <div class='invoice-details'>
        <h3>Bill To: John Doe</h3>
        <table>
            <tr>
                <th>Item</th>
                <th>Quantity</th>
                <th>Price</th>
            </tr>
            <tr>
                <td>Professional License</td>
                <td>1</td>
                <td>$749</td>
            </tr>
        </table>
        <p class='total'>Total: $749.00</p>
    </div>
</body>
</html>";

var renderer = new ChromePdfRenderer();
// Configure rendering options for the PDF document
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

本示例展示了 IronPDF 处理包含 CSS 样式的复杂布局的能力,包括字体大小和字体系列设置。 PDF 库处理 HTML 标记以创建保持 HTML 页面外观的 PDF 文档。 上述代码展示了 ASP.NET Core 应用程序如何生成用于业务文档的 PDF 输出。

输出

如何在 Dotnet Core 中生成 PDF 文件:图 1 - HTML 到 PDF 输出 PDF 文件

如何将网页转换为 PDF 文件?

IronPDF 在从实时网页生成 PDF 方面表现出色。 此功能对于需要动态捕获网页内容的 ASP.NET Core Web 应用程序尤其有用。 PDF 库可从任何 URL 生成 PDF 文件:

using IronPdf;

var renderer = new ChromePdfRenderer();
// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://example.com");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

.NET 库在生成 PDF 文件时自动处理 JavaScript 执行、外部资源和响应式设计。 renderer 对象提供了访问高级功能的途径,用于自定义网页如何转换为 PDF 文件。

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for dynamic content

// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.ViewPortWidth = 1920;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.WaitFor.RenderDelay(1000); // Wait for dynamic content

// Render a webpage URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");
// Save the PDF document
pdf.SaveAs("webpage.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这些自定义选项可确保动态内容在 PDF 转换之前完全加载,从而生成准确的 PDF 文件。 上述代码演示了 ASP.NET Core 如何从网页生成具有完美渲染效果的 PDF。

如何在 Dotnet Core 中生成 PDF 文件:图 2 - 与网页相比从网页渲染的 PDF

如何在 ASP.NET Core Web 应用程序中创建 PDF 文档?

将 PDF 生成集成到 ASP.NET Core 应用程序非常简单。 PDF 库与 ASP.NET Core 控制器无缝配合,生成 PDF 文档。 以下是一个创建 PDF 文件的 API 端点示例:

using Microsoft.AspNetCore.Mvc;
using IronPdf;

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate-report")]
    public IActionResult GenerateReport()
    {
        var html = @"
            <h1>Monthly Sales Report</h1>
            <p>Generated on: " + DateTime.Now.ToString() + @"</p>
            <table>
                <tr><th>Product</th><th>Sales</th></tr>
                <tr><td>Product A</td><td>$5,000</td></tr>
                <tr><td>Product B</td><td>$3,500</td></tr>
            </table>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF file to browser
        return File(pdf.BinaryData, "application/pdf", "output.pdf");
    }
}
using Microsoft.AspNetCore.Mvc;
using IronPdf;

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate-report")]
    public IActionResult GenerateReport()
    {
        var html = @"
            <h1>Monthly Sales Report</h1>
            <p>Generated on: " + DateTime.Now.ToString() + @"</p>
            <table>
                <tr><th>Product</th><th>Sales</th></tr>
                <tr><td>Product A</td><td>$5,000</td></tr>
                <tr><td>Product B</td><td>$3,500</td></tr>
            </table>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        // Return PDF file to browser
        return File(pdf.BinaryData, "application/pdf", "output.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此控制器操作创建新文档并直接将 PDF 文件发送到浏览器。 return 语句使用 .NET Core 框架的内置文件响应处理。 ASP.NET Core Web 应用程序可以轻松生成报表、发票和其他文档的 PDF。

输出 PDF 文件

如何在 Dotnet Core 中生成 PDF 文件:图 3 - 在 ASP.NET 中创建的 PDF

对于 MVC 应用程序,您也可以从 Razor 视图渲染 HTML 以创建 PDF:

[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
    // Get invoice data from database
    var model = await GetInvoiceData(id);
    // Render Razor view to HTML string
    var html = await RenderViewToString("Invoice", model);
    // Convert HTML to PDF document
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return PDF file with appropriate file path
    return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
[HttpGet]
public async Task<IActionResult> DownloadInvoice(int id)
{
    // Get invoice data from database
    var model = await GetInvoiceData(id);
    // Render Razor view to HTML string
    var html = await RenderViewToString("Invoice", model);
    // Convert HTML to PDF document
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(html);
    // Return PDF file with appropriate file path
    return File(pdf.BinaryData, "application/pdf", $"invoice-{id}.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此代码示例展示了 ASP.NET Core 如何与 IronPDF 集成以从 Razor 模板生成 PDF 文档。 从视图呈现的页面将成为专业的 PDF 文档。

结论

IronPDF 将在 .NET Core 中生成 PDF 文档转化为一个简单、高效的过程。 其 Chrome 渲染引擎可确保从 HTML 内容生成 PDF 文件时保持完美的一致性,而直观的 API 消除了通常与 PDF 操作相关的学习曲线。 PDF 库为 ASP.NET Core 开发人员提供了良好的文档支持和积极的维护。

无论您是在为商业用途创建 PDF,还是在构建企业 Web 应用程序,IronPDF 提供了专业 PDF 创建所需的工具,并有商业许可选项可用。 开发人员一致称赞 IronPDF 的易用性和渲染质量。

立即开始您的免费试用,提供适合各种规模团队的许可选项。

常见问题解答

如何在 .NET Core 中生成 PDF 文档?

您可以使用 IronPDF 在 .NET Core 中生成 PDF 文档,该工具允许您使用其先进的 Chrome 渲染引擎从 HTML、URL 和 Razor 视图创建 PDF。

使用 IronPDF 进行 PDF 生成的优势是什么?

IronPDF 提供了若干优势,包括易于集成、支持像素完美渲染和从多种来源如 HTML 和 URL 创建 PDF 的能力,非常适合需要 PDF 生成的 Web 应用程序。

IronPDF可以处理复杂的PDF生成任务吗?

是的,IronPDF 专为处理 .NET 环境中复杂的 PDF 生成任务而设计,为开发人员提供创建详细和准确 PDF 文档所需的工具。

Chrome 渲染引擎在 IronPDF 中的作用是什么?

IronPDF 中的 Chrome 渲染引擎确保生成的 PDF 达到像素完美,保持原始 HTML 或 Web 内容的保真度。

IronPDF 适合用于生成发票和报告等业务文档吗?

绝对适合,IronPDF 非常适合用于生成发票和报告等业务文档,提供精确的渲染和对多种文档格式的支持。

IronPDF 可以将哪些类型的输入转换为 PDF?

IronPDF 可以将 HTML、URL 和 Razor 视图等输入转换为 PDF 文档,提供内容创建的灵活性。

IronPDF 支持 ASP.NET Core 应用程序吗?

是的,IronPDF 与 ASP.NET Core 应用程序完全兼容,使开发人员能够无缝集成 PDF 生成功能到他们的 Web 项目中。

IronPDF 在 Web 应用程序中的一些常见用例是什么?

IronPDF 的常见用例包括为 Web 应用程序生成发票、报告及任何其他业务文档所需的 PDF。

Curtis Chau
技术作家

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

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