推荐一个开源的现代化的 PDF 生成组件
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐一个开源的现代化的 PDF 生成组件相关的知识,希望对你有一定的参考价值。
你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!
前言
QuestPDF 是一个开源免费的 .NET 组件库,可以用来生成 PDF 文档。在 Github 上有4千多的 Star。项目充分考虑了 PDF 文档的设计和布局,并且具有完整的分页支持。
QuestPDF 基于著名的图形库 SkiaSharp 创建,可以把您的数据转换为 PDF 文档。它提供了一个高度优化的布局引擎,每个内核每分钟能够生成超过 1000 个 PDF 文件。并且整个过程是线程安全的。
如何使用
你可以在 Nuget 中搜索并安装 QuestPDF。
// Package Manager
Install-Package QuestPDF
// .NET CLI
dotnet add package QuestPDF
// Package reference in .csproj file
<PackageReference Include="QuestPDF" Version="2022.11.0" />
下面的代码中,我们基于 minimal API,创建了一个简单的 PDF 页面,它真的非常简单。
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
Document.Create(container =>
container.Page(page =>
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);
page.PageColor(Colors.White);
page.DefaultTextStyle(x => x.FontSize(20));
page.Header()
.Text("Hello PDF!")
.SemiBold().FontSize(36).FontColor(Colors.Blue.Medium);
page.Content()
.PaddingVertical(1, Unit.Centimetre)
.Column(x =>
x.Spacing(20);
x.Item().Text(Placeholders.LoremIpsum());
x.Item().Image(Placeholders.Image(200, 100));
);
page.Footer()
.AlignCenter()
.Text(x =>
x.Span("Page ");
x.CurrentPageNumber();
);
);
)
.GeneratePdf("hello.pdf");
生成的 PDF 文件如下:
QuestPDF 的 Fluent API 扩展性非常好。即使是复杂的文档也可以轻松创建和维护,你可以在官网找到更多生成复杂文档的示例。
QuestPDF Previewer
QuestPDF Previewer 是一个可以简化和加速开发生命周期的工具,它可以对 PDF 文档进行预览。但真正的魔法在于热重载功能!代码更新后,预览也会同步地实时更新,无需重新编译代码即可获得实时结果,充分释放生产力。
项目地址
在 Dotnet工具箱 公众号内,回复 219,即可获取项目地址。
Dotnet 工具箱
扫码关注我们
分享
点收藏
点点赞
点在看
以上是关于推荐一个开源的现代化的 PDF 生成组件的主要内容,如果未能解决你的问题,请参考以下文章