用于 PDF 文档处理的免费 .NET API
用于创建、编辑、加载和操作 PDF 的开源 .NET 库。向 PDF 文件添加新页面、表格、图像、文本和形状。
QuestPDF 入门
QuestPDF 库以 nuget 包的形式提供。因此强烈推荐使用 NuGet 将 QuestPDF 安装到您的项目中。请使用以下命令安装成功。
从 Nuget 安装 QuestPDF
// Package Manager
Install-Package QuestPDF
// .NET CLI
dotnet add package QuestPDF
// Package reference in .csproj file
您也可以手动安装它;直接从 GitHub 存储库下载最新版本文件。
通过 .NET 库轻松创建 PDF
开放源代码 PDF 库 QuestPDF 使软件开发人员能够使用几个简单的 .NET 代码命令在他们自己的应用程序中创建 PDF 文档。该库使开发人员可以轻松定义页面大小、边距、背景颜色、文本样式、字体大小、页眉和页脚、页面内容、间距等。更新您现有的 PDF 文件也非常容易。
通过 .NET 库创建 PDF 文件
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
// code in your main method
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");
通过 C# API 管理文本和格式
QuestPDF 库提供了几个重要的功能来处理 PDF 文档中的文本插入和文本绘制。它使开发人员能够使用默认样式以及自定义样式、下标和上标绘制文本、调整文本行、调整字母间距、字体对齐、设置排版模式、自定义段落间距、设置文本方向、插入页码、添加超链接等上。
通过 .NET 库的 PDF 文件中的下标和上标
.Text(text =>
{
text.DefaultTextStyle(x => x.FontSize(20));
text.ParagraphSpacing(10);
var highlight = TextStyle.Default.BackgroundColor(Colors.Green.Lighten3);
text.Span("E=mc").Style(highlight);
text.Span("2").Superscript().Style(highlight);
text.Span(" is the equation of mass–energy equivalence.");
text.EmptyLine();
text.Span("H").Style(highlight);
text.Span("2").Subscript().Style(highlight);
text.Span("O").Style(highlight);
text.Span(" is the chemical formula for water.");
});
通过 C# 库添加和管理 PDF 中的图像
开源 PDF 库 QuestPDF 包含对在 C# .NET 应用程序中添加静态和动态图像的完整支持。软件开发人员可以轻松地将任何常见光栅图像格式(如 JPG、PNG、BMB 等)的静态图像放入 PDF 文档中。对于动态图像,它提供灵活的布局,因此很难预测图像分辨率。为获得最佳图像清晰度,建议生成具有指定分辨率的图像。它对于创建地图/图表非常有用。
通过 .NET 库将图像添加到 PDF
// it is possible to provide an image as:
// 1) a binary array
byte[] imageData = File.ReadAllBytes("path/to/logo.png")
container.Image(imageData)
// 2) a fileName
container.Image("path/myFile.png")
// 3) a stream
using var stream = new FileStream("logo.png", FileMode.Open);
container.Image(stream);
通过 C# API 在 PDF 中插入表格
QuestPDF 使计算机程序员能够实现比 Row 和 Column 元素的任何组合更复杂的结构。要创建一个简单的表格实例,用户需要描述每列的宽度,然后在其中放置任意数量的行和列。该库支持添加表头或页脚、添加新行、插入新单元格、删除单元格、行跨度和列跨度、重叠单元格等功能。
通过 .NET 库在 PDF 文件中创建简单表格
.Border(1)
.Table(table =>
{
table.ColumnsDefinition(columns =>
{
columns.RelativeColumn();
columns.RelativeColumn();
columns.RelativeColumn();
columns.RelativeColumn();
});
// by using custom 'Element' method, we can reuse visual configuration
table.Cell().Row(1).Column(4).Element(Block).Text("A");
table.Cell().Row(2).Column(2).Element(Block).Text("B");
table.Cell().Row(3).Column(3).Element(Block).Text("C");
table.Cell().Row(4).Column(1).Element(Block).Text("D");
// for simplicity, you can also use extension method described in the "Extending DSL" section
static IContainer Block(IContainer container)
{
return container
.Border(1)
.Background(Colors.Grey.Lighten3)
.ShowOnce()
.MinWidth(50)
.MinHeight(50)
.AlignCenter()
.AlignMiddle();
}
});