本文将对QuestPDF这个.NET库进行介绍,包括其功能、使用步骤、布局选项以及一些高级功能,如动态内容生成等,还会提及它的使用许可情况。
QuestPDF:.NET应用中的PDF生成利器
QuestPDF是一个专门用于生成PDF文件的.NET库。它有着简洁的API以及灵活多变的布局选项,这让在.NET应用程序里创建PDF文件变得轻松简单许多。
QuestPDF具备多平台支持的特性,同时拥有诸多实用功能:
-
• 合并文档
-
• 附加文件
-
• 提取页面
-
• 加密/解密
-
• 扩展元数据
-
• 限制访问
-
• 针对Web进行优化
-
• 叠加层/底层
使用QuestPDF首先要进行安装,执行命令:dotnet add package QuestPDF。然后在代码中引入命名空间:using QuestPDF.Infrastructure;并且设置许可证类型为社区版,即QuestPDF.Settings.License = LicenseType.Community;
下面是创建一个简单PDF文档并进行布局的示例。首先创建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");
});
});
});
最后保存PDF文件:document.GeneratePdf("simple - example.pdf");
在QuestPDF中,各个函数有着明确的作用:
-
• Document.Create用于创建PDF文档。
-
• container.Page用于设置页面内容。
-
• page.Content用于设置页面的内容布局,支持Column、Row等布局管理器。
-
• column.Item用于添加单个项目,像文本、图像等。
• document.GeneratePdf用于生成PDF文件并保存到指定路径。
QuestPDF提供了丰富的布局选项,方便调整页面样式:
-
• 字体和样式:可以对文本的字体、大小、颜色、加粗、斜体等进行调整。
-
• 页边距和对齐方式:能够设置页面的页边距,还支持内容的对齐。
-
• 自定义布局:支持Column、Row、Stack等布局管理器,实现更复杂的布局设计。
在高级功能方面,例如生成动态内容(表格)。如果需要根据数据动态生成PDF内容,可以按照如下方式操作。先准备数据:
var rows = new[] {
new { Name = "John", Age = 30 },
new { Name = "Jane", Age = 25 },
new { Name = "Tom", Age = 35 }
};
然后创建包含表格的PDF文档:
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生成库。它适用于多种场景,尤其是那些需要灵活布局和自定义样式的情况。它支持常见的布局管理器,像列和行布局等,也能添加文本、图像、表格等元素。无论是创建简单文档,还是处理复杂需求,如动态内容生成、复杂样式设置等都能胜任。并且该库对年总收入低于100万美元的个人或企业、非营利组织运营或者FOSS项目免费开放使用,使用时设置QuestPDF.Settings.License = LicenseType.Community即可。
原创文章,作者:Foster,如若转载,请注明出处:https://www.gouwuzhinan.com/archives/14127.html