行业新闻

Milan Jovanović 使用.NET Core创建 PDF 文档——他选择的库是IronPDF。

米兰·约瓦诺维奇

Milan 作为一名软件架构师、微软 MVP 以及 .NET 生态系统中最受尊敬的权威人士之一,发表了一篇关于 .NET Core 中 PDF 生成的深度解析文章。 他演示了多种实际应用场景,包括动态文档创建、PDF 合并以及通过 API 端点提供文件。

他为所有这些任务选择的库是? IronPDF。 用他自己的话来说:"IronPDF 是我在商业项目中使用最频繁的库。"

让我们具体看看他是如何使用它的。

方法:使用 Razor 视图的 HTML 模板

生成 PDF 文件最常见的方法是使用 HTML 模板。

这是 ASP.NET Core MVC Razor 视图与 IronPDF 渲染引擎的结合。通过使用强类型视图,开发者可以在运行时将 C# 对象直接传递到模板中,从而生成动态的数据驱动型文档。

以下是该模式的实际应用示例。 首先,Razor 视图定义了文档布局:


@model ViewModels.InoviceViewModel

<div>Invoice number: @Model.InvoiceNumber</div>
<div>Invoice date: @Model.InvoiceDate</div>
<br/>
<span>Line items:</span>
<ul>
    @foreach(var lineItem in Model.LineItems)
    {
        <li>@lineItem.Name | @lineItem.Price</li>
    }
</ul>

@model ViewModels.InoviceViewModel

<div>Invoice number: @Model.InvoiceNumber</div>
<div>Invoice date: @Model.InvoiceDate</div>
<br/>
<span>Line items:</span>
<ul>
    @foreach(var lineItem in Model.LineItems)
    {
        <li>@lineItem.Name | @lineItem.Price</li>
    }
</ul>
@ModelType ViewModels.InoviceViewModel

<div>Invoice number: @Model.InvoiceNumber</div>
<div>Invoice date: @Model.InvoiceDate</div>
<br/>
<span>Line items:</span>
<ul>
    @For Each lineItem In Model.LineItems
        <li>@lineItem.Name | @lineItem.Price</li>
    Next
</ul>
$vbLabelText   $csharpLabel

随后,IronPDF 的 ChromePdfRenderer 会将渲染出的 HTML 转换为精美的 PDF:

var html = ConvertRazorViewToHtml(invoice);

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs($"invoice-{invoice.InvoiceNumber}.pdf");
var html = ConvertRazorViewToHtml(invoice);

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs($"invoice-{invoice.InvoiceNumber}.pdf");
Dim html = ConvertRazorViewToHtml(invoice)

Dim renderer = New ChromePdfRenderer()

Dim pdf = renderer.RenderHtmlAsPdf(html)

pdf.SaveAs($"invoice-{invoice.InvoiceNumber}.pdf")
$vbLabelText   $csharpLabel

三行 C# 代码。 Razor 视图负责处理所有布局逻辑,CSS 负责样式设置,而 IronPDF 负责文件转换。 正如米兰所言:"真的就是这么简单。"

米兰为何选择此方案而非其他替代方案

米兰曾在多个商业项目中使用过各类 PDF 库,他在文章中强调了几个关键因素,这些因素正是他选择 IronPDF 的原因。

Chromium 渲染引擎可提供一致的渲染效果。IronPDF 采用与 Chrome 相同的引擎渲染 HTML,这意味着生成的 PDF 文件与浏览器中的显示效果完全一致。

CSS 让您能够完全掌控格式设置。您无需学习专有的布局 API,只需使用与编写任何网页时相同的 CSS 即可。 Flexbox、网格、自定义字体、响应式间距,所有这些效果都会直接体现在 PDF 输出中。

实际应用示例:合并多个 PDF 文件

米兰将演示一个常见的业务需求:将多个 PDF 文件合并为一个文档。 例如需要汇总用于会计核算的月度收据,或是需要整合成最终交付成果的报告章节。

实际应用场景:通过 API 提供 PDF 文件

米兰还展示了 IronPDF 如何自然地融入 ASP.NET Core 的 Minimal API 模式。 从端点返回动态生成的 PDF。

阅读米兰的完整文章

Milan 的完整解析涵盖了更多实现细节和代码示例,如果您正在为 .NET 项目评估 PDF 生成方案,这些内容值得深入研究。

点击此处阅读全文

自己试试看

IronPDF 允许免费用于开发用途,因此您可以在自己的项目中测试 Milan 的模式,无需承担任何义务。 通过 NuGet 安装:

开始 30天试用