前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >探索 QuestPDF:全平台支持、多功能、专业级的 .NET PDF 库

探索 QuestPDF:全平台支持、多功能、专业级的 .NET PDF 库

作者头像
郑子铭
发布2025-03-27 12:54:56
发布2025-03-27 12:54:56
4900
代码可运行
举报
运行总次数:0
代码可运行

QuestPDF 是一个用于生成 PDF 文件的 .NET 库,它提供了一个简洁的 API 和灵活的布局选项,使得在 .NET 应用程序中创建 PDF 文件变得更加简单。

支持多平台,支持的功能有

  • • 合并文档
  • • 附加文件
  • • 提取页面
  • • 加密/解密
  • • 扩展元数据
  • • 限制访问
  • • 针对 Web 进行优化
  • • 叠加层 / 底层

安装

第一步,老规矩,先安装

代码语言:javascript
代码运行次数:0
运行
复制
dotnet add package QuestPDF

使用

代码语言:javascript
代码运行次数:0
运行
复制

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 等布局管理器,来实现更复杂的布局设计。
代码语言:javascript
代码运行次数:0
运行
复制
column.Item().Text("Centered Text")
    .AlignCenter()
    .FontSize(18)
    .FontColor(Colors.Blue.Medium);

高级功能:生成动态内容,表格

如果你需要动态生成 PDF 内容,可以根据数据生成多个条目。

代码语言:javascript
代码运行次数:0
运行
复制
 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;
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 使用
    • 样式和布局
    • 高级功能:生成动态内容,表格
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档