C#を使用してPDFドキュメントを作成する

PDFは、プラットフォームに依存しないドキュメント形式であり、コンテンツの形式とレイアウトをさまざまなオペレーティングシステムまたはマシン間で一貫性のあるものに保ちます。これが、さまざまな組織が請求書、領収書、レポート、およびその他のビジネスドキュメントを動的に生成するためにPDF形式を使用する理由です。 Aspose.PDF for .NETは、.NETアプリケーションにPDF自動化を実装するのに役立つPDFライブラリです。これにより、C#またはVB.NETを使用して、プログラムでPDFファイルを作成、編集、解析、および変換できます。この記事では、PDF生成機能について説明し、C#を使用してPDFファイルを最初から作成する方法を示します。

簡単なPDFドキュメントを作成することから始め、次にドキュメントに他の要素を追加します。以下は、この記事で説明する機能のリストです。

C#PDFライブラリ-インストール

NuGet PackageManagerを使用してAspose.PDF for .NETをインストールするか、次のコマンドを使用してPackageManagerConsoleをインストールできます。または、ダウンロードセクションからダウンロードすることもできます。

Install-Package Aspose.Pdf

C#を使用してPDFファイルを作成する

まず、テキストフラグメントを含むPDFドキュメントを作成しましょう。簡単なPDFドキュメントを最初から作成する手順は次のとおりです。

  • Documentクラスのインスタンスを作成します。
  • ドキュメントのPagesコレクションに新しいPageを追加します。
  • PDFの段落に新しいTextFragmentを追加します。
  • Document.Save()メソッドを使用してPDFファイルを作成します。

次のコードサンプルは、C#を使用してPDFファイルを作成する方法を示しています。

// PDFドキュメントをロード 
Document document = new Document();

// ページを追加
Aspose.Pdf.Page page = document.Pages.Add();

// 新しいページにテキストを追加する
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World! This is a new PDF generated by Aspose.PDF for .NET."));

// PDFドキュメントを保存します
document.Save("Generated-PDF.pdf");
C#を使用してPDFを作成する

C#を使用してPDFでテキストフォーマットを適用する

ここで、PDFドキュメントにテキストを追加し、さまざまな書式設定オプションを使用する方法を確認しましょう。この操作を実行する手順は次のとおりです。

  • Documentクラスを使用して、新しいPDFドキュメントを作成するか、既存のPDFドキュメントをロードします。
  • テキストを配置するページにアクセスします。
  • TextFragmentのオブジェクトを作成し、テキストと、位置、フォント、色、サイズなどの他のフォーマットオプションを設定します。
  • TextBuilderクラスを使用して、TextFragmentオブジェクトをページに追加します。
  • Document.Save()メソッドを使用して、PDFドキュメントを作成します。

次のコードサンプルは、C#を使用してPDFファイルにフォーマットされたテキストを追加する方法を示しています。

// PDFドキュメントをロード 
Document document = new Document();
// ページを追加
Aspose.Pdf.Page page = document.Pages.Add();

// テキストフラグメントを作成する
TextFragment textFragment = new TextFragment("Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.Position = new Position(100, 700);
TextFragment textFragment1 = new TextFragment("Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.Position = new Position(100, 600);

// テキストプロパティを設定する
textFragment.TextState.FontSize = 12;
textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray);
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);

textFragment1.TextState.DrawTextRectangleBorder = true;
textFragment1.TextState.Underline = true;
textFragment1.TextState.StrikeOut = true;
// パターン色空間で新しい色を作成する
textFragment1.TextState.ForegroundColor = new Aspose.Pdf.Color()
{
	PatternColorSpace = new Aspose.Pdf.Drawing.GradientAxialShading(Color.Red, Color.Blue)
};
// TextBuilderオブジェクトを作成します
TextBuilder textBuilder = new TextBuilder(page);

// テキストフラグメントをPDFページに追加します
textBuilder.AppendText(textFragment);
textBuilder.AppendText(textFragment1);

// PDFドキュメントを保存します
document.Save("Generated-PDF.pdf");
C#を使用してフォーマットされたテキストでPDFを作成する

C#を使用して複数列のPDFを作成する

新聞、研究記事、その他の種類の文書のテキストが2つ以上の列に分割されていることがよくあります。このテキスト分割を実現するために、Aspose.PDF for .NETでは複数列のPDFを作成できます。複数列のPDFを作成する手順は次のとおりです。

次のコードサンプルは、C#を使用して複数列のPDFを作成する方法を示しています。

// PDFドキュメントをロード 
Document document = new Document();
// PDFファイルの左マージン情報を指定します
document.PageInfo.Margin.Left = 40;
// PDFファイルの右マージン情報を指定します
document.PageInfo.Margin.Right = 40;
Aspose.Pdf.Page page = document.Pages.Add();

// 行を追加します
Aspose.Pdf.Drawing.Graph graph1 = new Aspose.Pdf.Drawing.Graph(500, 2);
// セクションオブジェクトのparaphraphsコレクションに行を追加します
page.Paragraphs.Add(graph1);

// 線の座標を指定します
float[] posArr = new float[] { 1, 2, 500, 2 };
Aspose.Pdf.Drawing.Line l1 = new Aspose.Pdf.Drawing.Line(posArr);
graph1.Shapes.Add(l1);

// 見出しを追加する
// HTMLタグを含むテキストで文字列変数を作成する
string s = "<font face=\"Times New Roman\" size=4>" +
"<strong> How to Steer Clear of money scams</<strong> "
+ "</font>";

// HTMLテキストを含むテキスト段落を作成する
HtmlFragment heading_text = new HtmlFragment(s);
page.Paragraphs.Add(heading_text);

Aspose.Pdf.FloatingBox box = new Aspose.Pdf.FloatingBox();
// セクションに4つの列を追加します
box.ColumnInfo.ColumnCount = 2;
// 列間の間隔を設定します
box.ColumnInfo.ColumnSpacing = "5";
// 列幅を設定します
box.ColumnInfo.ColumnWidths = "250 250"; 

// テキストを作成する 
TextFragment text2 = new TextFragment(@"Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.");

// ドキュメントにテキストを追加する
box.Paragraphs.Add(text2);
page.Paragraphs.Add(box);

// PDFドキュメントを保存します
document.Save("Generated-PDF.pdf");
C#を使用して複数列のPDFを作成する

C#を使用してPDFに画像を挿入する

次の手順は、PDFドキュメントに画像を挿入する方法を示しています。

  • Documentクラスを使用して、新しいPDFドキュメントを作成するか、既存のPDFドキュメントを開きます。
  • 画像を挿入するページを取得します。
  • ページの画像に画像を追加します。
  • GSaveConcatenateMatrix、およびDo演算子を使用して、画像をページに配置します。
  • Document.Save()メソッドを使用してPDFドキュメントを保存します。

次のコードサンプルは、C#を使用してPDFに画像を挿入する方法を示しています。

// PDFドキュメントをロード 
Document document = new Document();
// ページを追加
Aspose.Pdf.Page page = document.Pages.Add();

// 座標を設定する
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 250;
int upperRightY = 250; 

// 画像をストリームにロード
FileStream imageStream = new FileStream("aspose_pdf.png", FileMode.Open);
// ページリソースの画像コレクションに画像を追加する
page.Resources.Images.Add(imageStream);
// GSave演算子の使用:この演算子は現在のグラフィックス状態を保存します
page.Contents.Add(new Aspose.Pdf.Operators.GSave());
// RectangleオブジェクトとMatrixオブジェクトを作成します
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
//マトリックスmatrix=new Matrix(new double [] {rectangle.URX-rectangle.LLX、0、0、rectangle.URY-rectangle.LLY、rectangle.LLX、rectangle.LLY});
Matrix matrix = new Matrix(new double[] { 200, 0, 0, 200, 200, 600 });
// ConcatenateMatrix(連結行列)演算子の使用:画像の配置方法を定義します
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];
// Do演算子の使用:この演算子は画像を描画します
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));
// GRestore演算子の使用:この演算子はグラフィックスの状態を復元します
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// PDFドキュメントを保存します
document.Save("Generated-PDF.pdf");
C#を使用してPDFに画像を挿入

C#を使用してPDFファイルにテーブルを作成する

この表は、データを行と列の形式で整理し、情報の概要をすばやく提供するために使用されます。 PDFドキュメントにテーブルを作成するには、次の手順に従います。

  • Documentクラスのオブジェクトを作成して、新しいPDFを作成するか、既存のPDFをロードします。
  • テーブルを作成するページにアクセスします。
  • Tableクラスのインスタンスを作成します。
  • BorderInfoクラスを使用して、テーブルの境界線とセルの境界線を設定します。
  • 新しいRowを作成し、Table.Rowsコレクションに追加します。
  • Row.Cellsコレクションにセルを追加します。
  • Page.Paragraphs.Add()メソッドを使用して、テーブルをページに追加します。
  • Document.Save()メソッドを使用してPDFドキュメントを保存します。

次のコードサンプルは、C#を使用してPDFでテーブルを作成する方法を示しています。

// PDFドキュメントをロード 
Document document = new Document();
// ページを追加
Aspose.Pdf.Page page = document.Pages.Add();

// テーブルの新しいインスタンスを初期化します
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
// テーブルの境界線の色をLightGrayに設定します
table.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));
// テーブルセルの境界線を設定します
table.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));
// 10行を追加するループを作成します
for (int row_count = 1; row_count < 10; row_count++)
{
	// テーブルに行を追加します
	Aspose.Pdf.Row row = table.Rows.Add();
	// テーブルセルを追加する
	row.Cells.Add("Column (" + row_count + ", 1)");
	row.Cells.Add("Column (" + row_count + ", 2)");
	row.Cells.Add("Column (" + row_count + ", 3)");
}

// ページにテーブルを追加
page.Paragraphs.Add(table);

// PDFドキュメントを保存します
document.Save("Generated-PDF.pdf");
C#を使用してPDFでテーブルを作成する

C#を使用してPDFに注釈を追加する

注釈は、PDFドキュメントのコンテンツに関する追加情報を提供するために使用されるグラフィカルオブジェクトです。 PDF形式は、テキスト、ハイライト、行、メモなどのさまざまな注釈をサポートしています。PDFドキュメントに注釈を追加する手順は次のとおりです。

  • 新しいPDFドキュメントを作成するか、既存のPDFドキュメントをロードします。
  • 注釈を追加するページを選択します。
  • TextAnnotationLineAnnotationHighlightAnnotationなどの新しい注釈を作成します。
  • 注釈のプロパティを設定します。
  • Page.Annotationsコレクションに注釈を追加します。
  • Document.Save()メソッドを使用してPDFを生成します。

次のコードサンプルは、C#を使用してPDFに注釈を追加する方法を示しています。

// PDFドキュメントをロード 
Document document = new Document();
// ページを追加
Aspose.Pdf.Page page = document.Pages.Add();

// 注釈を作成する
TextAnnotation textAnnotation = new TextAnnotation(page, new Aspose.Pdf.Rectangle(200, 400, 400, 600));
textAnnotation.Title = "Sample Annotation Title";
textAnnotation.Subject = "Sample Subject";
textAnnotation.State = AnnotationState.Accepted;
textAnnotation.Contents = "Sample contents for the annotation";
textAnnotation.Open = true;
textAnnotation.Icon = TextIcon.Key;

Border border = new Border(textAnnotation);
border.Width = 5;
border.Dash = new Dash(1, 1);
textAnnotation.Border = border;
textAnnotation.Rect = new Aspose.Pdf.Rectangle(200, 400, 400, 600);

// ページの注釈コレクションに注釈を追加します
page.Annotations.Add(textAnnotation);

// PDFドキュメントを保存します
document.Save("Generated-PDF.pdf");
C#を使用してPDFに注釈を追加する

リンク注釈を使用して、PDFドキュメントにハイパーリンクを追加することもできます。この操作を実行する手順は次のとおりです。

  • 新しいDocumentオブジェクトを作成します。
  • ハイパーリンクを追加するページにアクセスします。
  • LinkAnnotationクラスのインスタンスを作成します。
  • アクションURIを含むLinkAnnotationオブジェクトのプロパティを設定します。
  • Page.Annotationsコレクションへのリンクを追加します。
  • FreeTextAnnotationクラスを使用して、ハイパーリンクのテキストを設定します。
  • FreeTextAnnotationオブジェクトをPage.Annotationsコレクションに追加します。
  • Document.Save()メソッドを使用してPDFドキュメントを作成します。

次のコードサンプルは、C#を使用してPDFドキュメントにハイパーリンクを追加する方法を示しています。

// PDFドキュメントをロード 
Document document = new Document();
// ページを追加
Aspose.Pdf.Page page = document.Pages.Add();

// リンク注釈オブジェクトを作成する
LinkAnnotation link = new LinkAnnotation(page, new Aspose.Pdf.Rectangle(100, 800, 250, 750));
// LinkAnnotationの境界オブジェクトを作成します
Border border = new Border(link);
// 境界線の幅の値を0に設定します
border.Width = 1;
// LinkAnnotationの境界線を設定します
link.Border = border; 

// リンクタイプをリモートURIとして指定します
link.Action = new GoToURIAction("www.aspose.com");
// PDFファイルの最初のページの注釈コレクションにリンク注釈を追加します
page.Annotations.Add(link);

// リンクのテキストのフリーテキスト注釈を作成します
FreeTextAnnotation textAnnotation = new FreeTextAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(100, 800, 250, 750), new DefaultAppearance(Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman"), 10, System.Drawing.Color.Blue));
// フリーテキストとして追加される文字列
textAnnotation.Contents = "Link to Aspose website";
// フリーテキスト注釈の境界線を設定します
textAnnotation.Border = border;
// ドキュメントの最初のページの注釈コレクションにFreeText注釈を追加します
page.Annotations.Add(textAnnotation);

// PDFドキュメントを保存します
document.Save("Generated-PDF.pdf");
C#を使用してPDFにハイパーリンクを追加する

C#を使用してPDFでブックマークを作成する

ブックマークは、PDFドキュメントの特定のセクションまたはページに移動するために使用されます。 Aspose.PDF for .NETを使用すると、ブックマークを追加または操作できます。以下は、PDFドキュメントにブックマークを作成して追加する手順です。

  • PDFドキュメントを作成するか、既存のドキュメントを開きます。
  • OutlineItemCollectionクラスを使用して新しいブックマークオブジェクトを作成します。
  • Document.Outlinesコレクションにブックマークを追加します。
  • Document.Save()メソッドを使用してPDFドキュメントを作成します。

次のコードサンプルは、C#を使用してブックマーク付きのPDFドキュメントを作成する方法を示しています。

// PDFドキュメントをロード 
Document document = new Document();
// ページを追加
Aspose.Pdf.Page page = document.Pages.Add();

// 親ブックマークオブジェクトを作成する
OutlineItemCollection pdfOutline = new OutlineItemCollection(document.Outlines);
pdfOutline.Title = "Parent Outline";
pdfOutline.Italic = true;
pdfOutline.Bold = true;

// 子ブックマークオブジェクトを作成します
OutlineItemCollection pdfChildOutline = new OutlineItemCollection(document.Outlines);
pdfChildOutline.Title = "Child Outline";
pdfChildOutline.Italic = true;
pdfChildOutline.Bold = true;

// 親ブックマークのコレクションに子ブックマークを追加する
pdfOutline.Add(pdfChildOutline);
// ドキュメントのアウトラインコレクションに親ブックマークを追加します。
document.Outlines.Add(pdfOutline);

// PDFドキュメントを保存します
document.Save("Generated-PDF.pdf");
C#を使用してPDFでブックマークを作成する

結論

この記事では、C#を使用してPDFファイルを最初から作成する方法を説明しました。ステップバイステップガイドとコードサンプルは、プログラムでPDFファイルにテキスト、画像、表、注釈、ハイパーリンク、およびブックマークを追加する方法を示しています。 ドキュメントを使用して、Asposeの.NETPDFライブラリの他の機能を調べることができます。

関連項目