推荐一个开源的现代化的 PDF 生成组件

020f20b33d132a9522f9f87874251779.png

2c800e2936e8cad8c1a9c85985aabe56.gif

733ab77b47c56624d39eea9f2e887285.png

你好,这里是 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 文件如下:

f8029a68b70d0677ad01882c456500c0.png

QuestPDF 的 Fluent API 扩展性非常好。即使是复杂的文档也可以轻松创建和维护,你可以在官网找到更多生成复杂文档的示例。

QuestPDF Previewer

QuestPDF Previewer 是一个可以简化和加速开发生命周期的工具,它可以对 PDF 文档进行预览。但真正的魔法在于热重载功能!代码更新后,预览也会同步地实时更新,无需重新编译代码即可获得实时结果,充分释放生产力。

85924657c27854a8110efec4d2710fda.gif


项目地址

在 Dotnet工具箱 公众号内,回复 219‍‍,即可获取项目地址。

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值