PDF ドキュメント処理用の無料の .NET API
PDF の作成、編集、ロード、および操作のためのオープン ソース .NET ライブラリ。新しいページ、表、画像、テキスト、図形を PDF ファイルに追加します。
QuestPDF は、ソフトウェア開発者が PDF ドキュメントを簡単に生成、読み取り、変更、および操作できるようにする、非常に便利なオープン ソースの最新の .NET ライブラリです。このライブラリは非常に機能が豊富で、完全なページング サポートを念頭に置いて設計されたレイアウト エンジンを提供します。このライブラリは非常に扱いやすく、開発ライフサイクルを確実にスピードアップできます。このライブラリは、ホット リロード機能をサポートしています。つまり、開発者は、コードを再コンパイルする必要なく、リアルタイムで結果を得ることができます。
QuestPDF ライブラリは非常に流暢で、ほんの数行のコードで非常に複雑なドキュメントの作成、カスタマイズ、および管理を非常に簡単に行うことができます。シンプルなテキストの描画、カスタム スタイルのテキストの描画、ページングのサポート、カスタム フォントのサポート、文字間隔、カスタムの段落間隔、Unicode のサポート、画像の挿入、画像の縦横比の管理、境界線のレンダリング、挿入など、ライブラリには他にもいくつかの機能があります。ハイパーリンク、コンテンツ、画像の回転など。
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 を使用すると、コンピューター プログラマーは行要素と列要素の組み合わせよりも洗練された構造を実現できます。単純なテーブル インスタンスを作成するには、各列の幅を記述し、その中に任意の数の行と列を配置する必要があります。このライブラリは、テーブル ヘッダーまたはフッターの追加、新しい行の追加、新しいセルの挿入、セルの削除、行スパンと列スパン、セルの重ね合わせなどの機能をサポートしています。
.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();
}
});