コードによる PDF 生成にはさまざまな利点があります。リアルタイムデータ、データベースレコード、ユーザー入力などの動的コンテンツを容易に統合するのに役立ちます。この機能は、ユーザーにより優れたカスタマイズと自動化機能を提供し、面倒な手動操作も回避します。この記事では、Spire.PDF for .NET を使用して PDF ドキュメントを作成する方法を紹介します。
Spire.PDF for .NET をインストールします
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを.NETプロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
予備知識
Spire.PDF for .NET のページ(PdfPageBase クラスで表される)は、クライアント領域と周囲のマージンで構成されています。コンテンツ領域は、ユーザーがさまざまなコンテンツを記述するための領域であり、ページ余白は通常空白のエッジになります。
下図に示すように、ページ上の座標系の原点はクライアント領域の左上隅にあり、x 軸は水平に右に伸び、y 軸は垂直に下に伸びています。クライアント領域に追加するすべての要素は、指定された座標に基づいている必要があります。
さらに、次の表に重要なクラスと方法を示します。これは、以下のコードを理解しやすくするのに役立ちます。
クラスと方法 | 説明 |
PdfDocument クラス | PDF ドキュメント モデルを表します。 |
PdfPageBase クラス | PDF ドキュメント内のページを表します。 |
PdfSolidBrush クラス | オブジェクトを単色で塗りつぶすブラシを表します。 |
PdfTrueTypeFont クラス | True Typeフォントを表します。 |
PdfStringFormat クラス | アライメント、文字間隔、インデントなどのテキスト書式情報を表します。 |
PdfTextWidget クラス | 複数のページにまたがる機能を持つテキスト領域を表します。 |
PdfTextLayout クラス | テキストのレイアウト情報を表します。 |
PdfDocument.Pages.Add() メソッド | PDF ドキュメントにページを追加します。 |
PdfPageBase.Canvas.DrawString() メソッド | 指定したフォントとブラシオブジェクトを使用して、ページ上の指定した位置に文字列を描画します。 |
PdfTextWidget.Draw() メソッド | テキストウィジェットをページの指定した位置に描画します。 |
PdfDocument.Save() メソッド | ドキュメントを PDF ファイルに保存します。 |
C# と VB.NET で PDF ドキュメントを作成する
Spire.PDF for .NET では、PDF ドキュメントにさまざまな要素を追加できます。この記事では、プレーンテキストの PDF ドキュメントを作成する方法について説明します。詳細な手順は次のとおりです。
- PdfDocument オブジェクトを作成します。
- PdfDocument.Pages.Add() メソッドを使用してページを追加します。
- ブラシとフォントのオブジェクトを作成します。
- PdfPageBase.Canvas.DrawString() メソッドを使用して、ページの指定された座標で文字列を描画します。
- テキストを保存する PdfTextWidget オブジェクトを作成します。
- PdfTextWidget.Draw() メソッドを使用して、ページの指定された位置にテキストのウィジェットを描画します
- PdfDocument.Save() メソッドを使用してドキュメントを PDF ファイルに保存します。
- C#
- VB.NET
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace CreatePdfDocument
{
class Program
{
static void Main(string[] args)
{
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//ページを追加する
PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(35f));
//タイトルのテキストを指定する
string titleText = "ライセンス契約";
//Solid Brusheを作成する
PdfSolidBrush titleBrush = new PdfSolidBrush(new PdfRGBColor(Color.Blue));
PdfSolidBrush paraBrush = new PdfSolidBrush(new PdfRGBColor(Color.Black));
//True Typeフォントを作成する
PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("Yu Mincho", 18f, FontStyle.Bold),true);
PdfTrueTypeFont paraFont = new PdfTrueTypeFont(new Font("Yu Mincho", 12f, FontStyle.Regular), true);
//PdfStringFormatクラスによるテキストの配置を設定する
PdfStringFormat format = new PdfStringFormat();
format.Alignment = PdfTextAlignment.Center;
//ページにタイトルを描画する
page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format);
//.txtファイルから段落テキストを取得する
string paraText = File.ReadAllText("content.txt");
//段落内容を保存するPdfTextWidgetオブジェクトを作成する
PdfTextWidget widget = new PdfTextWidget(paraText, paraFont, paraBrush);
//段落の内容を配置する長方形を作成する
RectangleF rect = new RectangleF(0, 50, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height);
//PdfLayoutTypeをPaginateに設定して内容を自動的にページング
PdfTextLayout layout = new PdfTextLayout();
layout.Layout = PdfLayoutType.Paginate;
//ページに段落テキストを描画する
widget.Draw(page, rect, layout);
//ファイルに保存する
doc.SaveToFile("CreatePdfDocument.pdf");
doc.Dispose();
}
}
}
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Namespace CreatePdfDocument
Class Program
Shared Sub Main(ByVal args() As String)
'PdfDocumentオブジェクトを作成する
Dim doc As PdfDocument = New PdfDocument()
'ページを追加する
Dim page As PdfPageBase = doc.Pages.Add(PdfPageSize.A4,New PdfMargins(35f))
'タイトルのテキストを指定する
Dim titleText As String = "ライセンス契約"
'Solid Brusheを作成する
Dim titleBrush As PdfSolidBrush = New PdfSolidBrush(New PdfRGBColor(Color.Blue))
Dim paraBrush As PdfSolidBrush = New PdfSolidBrush(New PdfRGBColor(Color.Black))
'True Typeフォントを作成する
Dim titleFont As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("Yu Mincho ",18f,FontStyle.Bold),True)
Dim paraFont As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("Yu Mincho ",12f,FontStyle.Regular),True)
'PdfStringFormatクラスによるテキストの配置を設定する
Dim format As PdfStringFormat = New PdfStringFormat()
format.Alignment = PdfTextAlignment.Center
'ページにタイトルを描画する
page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format)
'.txtファイルから段落テキストを取得する
Dim paraText As String = File.ReadAllText("content.txt")
'段落内容を保存するPdfTextWidgetオブジェクトを作成する
Dim widget As PdfTextWidget = New PdfTextWidget(paraText,paraFont,paraBrush)
'段落の内容を配置する長方形を作成する
Dim rect As RectangleF = New RectangleF(0,50,page.Canvas.ClientSize.Width,page.Canvas.ClientSize.Height)
'PdfLayoutTypeをPaginateに設定して内容を自動的にページング
Dim layout As PdfTextLayout = New PdfTextLayout()
lay.Layout = PdfLayoutType.Paginate
'ページに段落テキストを描画する
widget.Draw(page, rect, layout)
'ファイルに保存する
doc.SaveToFile("CreatePdfDocument.pdf")
doc.Dispose()
End Sub
End Class
End Namespace
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。