抖音粉丝群1
『7x24小时有问必答』

AI浪潮下的计算机行业——从业者现状与未来展望
 
QuestPDF 是一个用于生成 PDF 文件的 .NET 库,它提供了一个简洁的 API 和灵活的布局选项,使得在 .NET 应用程序中创建 PDF 文件变得更加简单。
支持多平台,支持的功能有
• 合并文档
• 附加文件
• 提取页面
• 加密/解密
• 扩展元数据
• 限制访问
• 针对 Web 进行优化
• 叠加层 / 底层
安装
第一步,老规矩,先安装
dotnet add package QuestPDF
使用

using QuestPDF.Infrastructure;

QuestPDF.Settings.License = LicenseType.Community;

// 创建 PDF 文档并进行布局

var document = Document.Create(container =>

{

    container.Page(page =>

    {

        page.Margin(50); // 设置页面边距

        page.Content().Column(column =>

        {

            column.Item().Text("Hello, NetShare!").FontSize(24).Bold(); // 添加文本

            column.Item().Text("Welcome to follow the official account: Net Sharing");

            column.Item().Image("20210517111144223.png"); // 插入图像 

        });

    });

});

// 保存 PDF 文件

document.GeneratePdf("simple-example.pdf");
• 
Document.Create()
 用于创建 PDF 文档。
• 
container.Page()
 设置页面内容。
• 
page.Content()
 设置页面的内容布局,支持各种布局管理器如 
Column
Row
• 
column.Item()
 用于添加单个项目,例如文本、图像等。
• 
document.GeneratePdf()
 用于生成 PDF 文件并保存到指定路径。
样式和布局
QuestPDF 提供了丰富的布局选项,可以方便地调整页面的样式。比如:
• 字体和样式:你可以调整文本的字体、大小、颜色、加粗、斜体等。
• 页边距和对齐方式:设置页面的页边距,并支持内容的对齐。
• 自定义布局:支持 
Column
Row
Stack
 等布局管理器,来实现更复杂的布局设计。
column.Item().Text("Centered Text")

    .AlignCenter()

    .FontSize(18)

    .FontColor(Colors.Blue.Medium);
高级功能:生成动态内容,表格
如果你需要动态生成 PDF 内容,可以根据数据生成多个条目。
 var rows = new[]

   {

            new { Name = "John", Age = 30 },

            new { Name = "Jane", Age = 25 },

            new { Name = "Tom", Age = 35 }

        };

var document = Document.Create(container =>

{

    container.Page(page =>

    {

        page.Content().Column(column =>

        {

            column.Item().Text("Dynamic Table").AlignCenter().FontSize(24).Bold();

            column.Item().Table(table =>

            {

                table.ColumnsDefinition(columns =>

                {

                    columns.ConstantColumn(150);  // 固定宽度

                    columns.RelativeColumn();     // 自动分配剩余空间

                });

                table.Header(header =>

                {

                    header.Cell().Text("Name");

                    header.Cell().Text("Age");

                });

                foreach (var row in rows)

                {

                    table.Cell().Text(row.Name);

                    table.Cell().Text(row.Age);

                }

            });

        });

    });

});

// 保存 PDF 文件

document.GeneratePdf("simple-example.pdf");
总结
• QuestPDF 是一个功能强大的 PDF 生成库,适用于需要灵活布局和自定义样式的场景。
• 它支持常见的布局管理器(如列和行),以及文本、图像、表格等元素的添加。
• 你可以使用 QuestPDF 创建简单的文档,也可以处理更复杂的需求,如动态内容、复杂的样式设置等。
• 该库可供年总收入低于 100 万美元的任何个人或企业免费使用,或作为非营利组织运营,或者是 FOSS 项目,一般公司完全够使用条件。项目要设置
QuestPDF.Settings.License = LicenseType.Community;
 
关注公众号“Net分享”,技术文章第一时间推送,随缘更新 , 分享一些你可能注意不到的细节。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

Copyright 2010-2015. All rights reserved. 

微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码