PDF ファイルのインタラクティブ性を高めることは、文書管理やユーザーエンゲージメントの重要な要素です。C# を使用して .NET フレームワーク内で PDF にアクションを追加することで、ファイルリンク、ウェブリンク、音声などの動的要素を組み込むことができます。これにより、ページ間の移動、外部アプリケーションの起動、背景音楽の再生などのさまざまな機能が実行可能になり、PDF の実用性や魅力が向上します。本記事では、Spire.PDF for .NET ライブラリを使用して C# で PDF ドキュメントにアクションを作成する方法を紹介します。
- C# で PDF にアクションを追加する基本手順
- C# で PDF にナビゲーション アクションを作成
- C# で PDF にファイル開くアクションを作成
- C# で PDF にサウンド アクションを作成
- C# で PDF にウェブリンク アクションを作成
- C# で PDF に JavaScript アクションを作成
Spire.PDF for .NET をインストールします
まず、Spire.PDF for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。
PM> Install-Package Spire.PDF
C# で PDF にアクションを追加する基本手順
C# を用いて PDF にアクションを追加するには、ナビゲーション ボタン、ファイル リンク、または音声トリガーなど、ユーザー体験を向上させるインタラクティブ要素を統合します。Spire.PDF for .NET ライブラリを使用すると、主要なクラスやメソッドを活用してさまざまなアクションを作成できます。以下は、Spire.PDF for .NET を使って PDF にアクションを追加する一般的な手順です:
- PdfDocument クラスのインスタンスを作成し、PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
- PdfDocument.Pages[] プロパティを使用して対象のページを取得します。
- アクションを表すクラスのインスタンスを作成し、そのプロパティを設定します。
- アクションを使用してページ上の矩形領域に PdfActionAnnotation クラスのインスタンスを作成します。
- 必要に応じて、アクションのキューとなるテキストをページに追加します(オプション)。
- PdfPageBase.Annotations.Add() メソッドを使用してアクション注釈をページに追加します。
- PdfDocument.SaveToFile() メソッドを使用して結果のドキュメントを保存します。
C# で PDF にナビゲーション アクションを作成
PdfGoToAction クラスを使用すると、ドキュメント内の指定した目的地へのナビゲーションを定義できます。このアクションを実現するには、PdfDestination オブジェクトを作成し、それを PdfGoToAction インスタンスに渡します。以下は、PDF にナビゲーションアクションを追加するコード例です:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Annotations;
using Spire.Pdf.General;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddNavigationButtonPDF
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentのインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// PdfDestinationインスタンスを作成し、遷移先を設定
PdfDestination destination = new PdfDestination(pdf.Pages[1]);
destination.Location = new PointF(0, 0);
destination.Mode = PdfDestinationMode.Location;
destination.Zoom = 0.8f;
// 遷移先に基づいてPdfGoToActionを作成
PdfGoToAction action = new PdfGoToAction(destination);
// 四角形を作成し、最初のページに描画
RectangleF rect = new RectangleF(70, pdf.PageSettings.Size.Height - 120, 140, 20);
pdf.Pages[0].Canvas.DrawRectangle(PdfBrushes.LightGray, rect);
// 四角形にテキストを描画
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", 14f, FontStyle.Bold), true);
PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center);
pdf.Pages[0].Canvas.DrawString("2ページに移動", font, PdfBrushes.Green, rect, stringFormat);
// 四角形とアクションに基づいてPdfActionAnnotationインスタンスを作成
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, action);
// 最初のページにアクション注釈を追加
pdf.Pages[0].Annotations.Add(actionAnnotation);
// ドキュメントを保存
pdf.SaveToFile("output/ナビゲーション・アクション.pdf");
pdf.Close();
}
}
}
C# で PDF にファイル開くアクションを作成
PdfLaunchAction クラスを使用すると、PDF 内に埋め込まれたボタンをクリックして特定のファイルを開くアクションを定義できます。このアクションを実装する際、ファイルのパス(絶対または相対)を設定し、新しいウィンドウで開くかどうかを指定できます。以下は、PDF ドキュメントにファイル開くアクションを追加するコード例です:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddFileLaunchActionPDF
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentのインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// 最初のページを取得
PdfPageBase page = pdf.Pages[0];
// ページ上に四角形を描画
RectangleF rect = new RectangleF(50, 50, 180, 20);
page.Canvas.DrawRectangle(PdfBrushes.LightGray, rect);
// 四角形内にテキストを描画
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", 14f, FontStyle.Bold), true);
PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center);
pdf.Pages[0].Canvas.DrawString("クリックしてSample2を開く", font, PdfBrushes.Green, rect, stringFormat);
// PdfLaunchActionインスタンスを作成
PdfLaunchAction action = new PdfLaunchAction("C:/Sample2.pdf", PdfFilePathType.Absolute);
// 新しいウィンドウで開くように起動モードを設定
action.IsNewWindow = true;
// 四角形と起動アクションに基づいてPdfActionAnnotationインスタンスを作成
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, action);
// 最初のページにアクション注釈を追加
page.Annotations.Add(actionAnnotation);
// ドキュメントを保存
pdf.SaveToFile("output/ファイル開くアクション.pdf");
pdf.Close();
}
}
}
C# で PDF にサウンド アクションを作成
PdfSoundAction クラスを使用すると、PDF ドキュメント内にオーディオをアクションとして埋め込むことができ、ファイルを開いたときやボタンをクリックしたときなど、特定のトリガーに応じて音声を再生できます。以下は、PDF ドキュメントにサウンド アクションを作成するコード例です:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using Spire.Pdf.General;
using System.Drawing;
namespace AddSoundActionPDF
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentのインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// 最初のページを取得
PdfPageBase page = pdf.Pages[0];
// ページにキュー画像を描画
PdfImage image = PdfImage.FromFile("Sound.png");
page.Canvas.DrawImage(image, new PointF(30, 30));
// PdfSoundActionインスタンスを作成し、そのプロパティを設定
PdfSoundAction action = new PdfSoundAction("Wave.wav");
// サウンドのパラメータを設定
action.Sound.Bits = 16;
action.Sound.Channels = PdfSoundChannels.Stereo;
action.Sound.Encoding = PdfSoundEncoding.Signed;
action.Sound.Rate = 44100;
// 再生オプションを設定
action.Volume = 0;
action.Repeat = true;
action.Mix = true;
action.Synchronous = true;
// キュー画像の位置に基づいてサウンドアクションのPdfActionAnnotationインスタンスを作成
RectangleF rect = new RectangleF(30, 30, image.Width, image.Height);
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, action);
// 最初のページにアクション注釈を追加
page.Annotations.Add(actionAnnotation);
// ドキュメントが開かれた後にサウンドアクションを再生するよう設定
pdf.AfterOpenAction = action;
// ドキュメントを保存
pdf.SaveToFile("output/サウンドアクション.pdf");
pdf.Close();
}
}
}
C# で PDF にウェブリンク アクションを作成
PdfUriAction クラスを使用すると、PDF ドキュメントにウェブリンクアクションを作成できます。これにより、ボタンをクリックした際などにウェブリンクを開くことが可能になります。以下は、ウェブリンクアクションを作成するコード例です:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Annotations;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddSoundActionPDF
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentのインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// 最初のページを取得
PdfPageBase page = pdf.Pages[0];
// ページ上に四角形を描画
RectangleF rect = new RectangleF(30, 30, 120, 20);
page.Canvas.DrawRectangle(PdfBrushes.LightGray, rect);
// 四角形内にテキストを描画
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", 14f, FontStyle.Bold), true);
PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center);
page.Canvas.DrawString("クリックしてGoogle検索へ", font, PdfBrushes.LightSkyBlue, rect);
// PdfUriActionインスタンスを作成し、そのプロパティを設定
PdfUriAction action = new PdfUriAction();
action.Uri = "https://www.google.com/";
// Webリンクアクションと四角形を使用してPdfActionAnnotationインスタンスを作成
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, action);
// 最初のページにアクション注釈を追加
page.Annotations.Add(actionAnnotation);
// ドキュメントを保存
pdf.SaveToFile("output/ウェブリンク・アクション.pdf");
pdf.Close();
}
}
}
C# で PDF に JavaScript アクションを作成
PdfJavaScriptAction は PDF 内で JavaScript アクションを表し、フォームのバリデーション、データ計算、カスタムユーザーインターフェースなどの複雑なインタラクションを実現することができます。以下は、C# を使用して PDF ドキュメントに簡単な JavaScript アクションを追加するコード例です:
- C#
using Spire.Pdf;
using Spire.Pdf.Actions;
namespace AddJavaScriptActionPDF
{
class Program
{
static void Main(string[] args)
{
// PdfDocumentインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.LoadFromFile("Sample.pdf");
// JavaScriptコードを定義
var jsCode =
"app.alert({" +
" cMsg: 'グレートバリアリーフについての記事を読む準備ができましたか?\\n\\nこの記事では、オーストラリアのグレートバリアリーフの概要、その生態系、観光情報、および環境保護の取り組みについて詳しく説明します。ぜひお楽しみください!', " +
" nIcon: 3, " +
" cTitle: '文档介绍'" +
"});";
// JavaScriptコードを使用し、PdfJavaScriptActionインスタンスを作成
PdfJavaScriptAction action = new PdfJavaScriptAction(jsCode);
// 作成したJavaScriptアクションをドキュメントのオープン時に実行されるように設定
pdf.AfterOpenAction = action;
// ドキュメントを保存
pdf.SaveToFile("output/PDFJavaScriptアクション.pdf");
pdf.Close();
}
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。