PDF ドキュメントをインタラクティブな要素で強化することは、ユーザーエンゲージメントや機能性向上のためにますます重要になっています。ドキュメントページへのリンク、JavaScript の実行、またはファイルオープンをトリガーするようなアクションを PDF に追加することで、さまざまなプロフェッショナルおよび個人用途でのドキュメントの利便性を大幅に向上させることができます。Java で Spire.PDF for Java ライブラリを使用して、こうした動的な機能を組み込むことで、開発者は PDF ドキュメントに新たな可能性をもたらし、より多機能でユーザーフレンドリーなドキュメントを作成できます。
本記事では、Spire.PDF for Java を使用して PDF ドキュメントにアクションを追加する方法を紹介します。
- Spire.PDF for Java で PDF にアクションを追加する方法
- Java で PDF にナビゲーション アクションを追加
- Java で PDF にファイル開くアクションを追加
- Java で PDF にサウンド アクションを追加
- Java で PDF に JavaScript アクションを追加
Spire.PDF for Java をインストールします
まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf</artifactId>
<version>10.10.7</version>
</dependency>
</dependencies>
Spire.PDF for Java で PDF にアクションを追加する方法
Spire.PDF for Java は、PDF ドキュメントにナビゲーション アクション、ファイル開くアクション、音声アクション、JavaScript アクションなど、さまざまなアクションを追加できる機能を提供します。以下は、よく使用されるアクションに対応するクラスとその説明を示す一覧です。
クラス名 | 説明 |
PdfGoToAction | 現在のドキュメント内の特定の位置に移動するアクションを表します。 |
PdfLaunchAction | ファイルを起動して開くアクションを表します。 |
PdfJavaScriptAction | JavaScript コードを実行するアクションを表します。 |
PdfSoundAction | 音声を再生するアクションを表します。 |
その他のアクションクラスとその詳細については、Spire.PDF for Java アクション API リファレンスをご参照ください。
PDF ドキュメントにアクションを追加する方法は主に次の 2 つです。
1. アクション注釈を使用する方法
この方法では、アクションを作成し、ページ上の注釈にリンクさせます。注釈がクリックされるとアクションが表示および実行されます。
手順:
- PdfDocument インスタンスを作成し、PdfDocument.LoadFromFile() メソッドを使用してPDFドキュメントを読み込みます。
- アクションインスタンスを作成し、そのプロパティを設定します。
- 必要に応じて、アクションを示すテキストや画像を描画します。
- 作成したアクションインスタンスを使用して PdfActionAnnotation インスタンスを作成し、ページ上の位置を指定します。
- PdfPageBase.getAnnotations.add() メソッドを使用して、アクション注釈をページに追加します。
- PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
2. ドキュメントイベントにアクションを割り当てる方法
アクションは、ドキュメントの開閉や印刷などのイベントに割り当てることもできます。これらのアクションは、指定されたイベントが発生したときに自動的に実行されます。
手順:
- PdfDocument インスタンスを作成し、PdfDocument.LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
- アクションインスタンスを作成し、そのプロパティを設定します。
- 以下のメソッドを使用して、アクションをドキュメントイベントに割り当てます。
- PdfDocument.setAfterOpenAction()
- PdfDocument.setAfterPrintAction()
- PdfDocument.setAfterSaveAction()
- PdfDocument.setBeforeCloseAction()
- PdfDocument.setBeforePrintAction()
- PdfDocument.setBeforeSaveAction()
- PdfDocument.SaveToFile() メソッドを使用してドキュメントを保存します。
Java で PDF にナビゲーション アクションを追加
PdfGoToAction クラスを使用して、PDF ドキュメント内の特定の位置にジャンプするナビゲーションアクションを作成できます。以下は、PDF ドキュメントにナビゲーションボタンを作成する Java コードの例です。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.actions.PdfGoToAction;
import com.spire.pdf.annotations.PdfActionAnnotation;
import com.spire.pdf.general.PdfDestination;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfStringFormat;
import com.spire.pdf.graphics.PdfTextAlignment;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
public class AddNavigationActionPDF {
public static void main(String[] args) {
// PdfDocumentインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.loadFromFile("Sample.pdf");
// PdfDestinationオブジェクトを作成
PdfDestination destination = new PdfDestination(2, new Point2D.Float(0, 0), 0.8f);
// PdfDestinationオブジェクトを使用してPdfGoToActionオブジェクトを作成
PdfGoToAction goToAction = new PdfGoToAction(destination);
// 最初のページに矩形と案内文を描画
Rectangle2D rect = new Rectangle2D.Float(20, 30, 150, 20);
pdf.getPages().get(0).getCanvas().drawRectangle(PdfBrushes.getLightGray(), rect);
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", Font.BOLD, 12), true);
PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Center);
pdf.getPages().get(0).getCanvas().drawString("ページ2へ移動するにはクリック", font, PdfBrushes.getBlack(), rect, format);
// PdfGoToActionオブジェクトを使用してPdfActionAnnotationオブジェクトを作成
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, goToAction);
// 最初のページに注釈を追加
pdf.getPages().get(0).getAnnotations().add(actionAnnotation);
// ドキュメントを保存
pdf.saveToFile("output/PDFナビゲーション・アクション.pdf");
pdf.close();
}
}
Java で PDF にファイル開くアクションを追加
開発者は、PdfLaunchAction クラスを使用して、PDF ドキュメントにファイル開くアクションを作成できます。以下に、PDF ドキュメントにファイルオープンアクションを追加する Java コードの例を示します。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.actions.PdfFilePathType;
import com.spire.pdf.actions.PdfLaunchAction;
import com.spire.pdf.annotations.PdfActionAnnotation;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfStringFormat;
import com.spire.pdf.graphics.PdfTextAlignment;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class AddFileOpenActionPDF {
public static void main(String[] args) {
// PdfDocumentインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.loadFromFile("Sample.pdf");
// PdfLaunchActionオブジェクトを作成し、ファイルパスを設定
PdfLaunchAction launchAction = new PdfLaunchAction("C:/Example.pdf", PdfFilePathType.Absolute);
// 最初のページに矩形と案内文を描画
Rectangle2D rect = new Rectangle2D.Float(20, 30, 130, 20);
pdf.getPages().get(0).getCanvas().drawRectangle(PdfBrushes.getLightGray(), rect);
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", Font.BOLD, 12), true);
PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Center);
pdf.getPages().get(0).getCanvas().drawString("ファイルを開くにはクリック", font, PdfBrushes.getBlack(), rect, format);
// PdfLaunchActionオブジェクトを使用してPdfActionAnnotationオブジェクトを作成
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, launchAction);
// 最初のページに注釈を追加
pdf.getPages().get(0).getAnnotations().add(actionAnnotation);
// ドキュメントを保存
pdf.saveToFile("output/PDFファイル開くアクション.pdf");
pdf.close();
}
}
Java で PDF にサウンド アクションを追加
PdfSoundAction クラスを使用して、PDF ドキュメント内で音声再生を処理できます。これにより、バックグラウンドミュージックや音声リマインダーなどの機能を実現できます。以下は、PDF ドキュメントに音声アクションを作成する Java コードの例です。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.actions.PdfSoundAction;
import com.spire.pdf.annotations.PdfActionAnnotation;
import com.spire.pdf.general.PdfSoundChannels;
import com.spire.pdf.general.PdfSoundEncoding;
import com.spire.pdf.graphics.PdfImage;
import java.awt.geom.Rectangle2D;
public class AddSoundActionPDF {
public static void main(String[] args) {
// PdfDocumentインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.loadFromFile("Sample.pdf");
// PdfSoundActionオブジェクトを作成し、音声プロパティを設定
PdfSoundAction soundAction = new PdfSoundAction("Wave.wav");
soundAction.setRepeat(false); // 繰り返し再生を無効化
soundAction.getSound().setBits(16); // サウンドビット数を設定
soundAction.getSound().setChannels(PdfSoundChannels.Stereo); // ステレオチャンネルを設定
soundAction.getSound().setEncoding(PdfSoundEncoding.Signed); // サウンドエンコーディングを設定
soundAction.getSound().setRate(44100); // サンプルレートを設定
// 最初のページにサウンドロゴを描画
PdfImage image = PdfImage.fromFile("Sound.jpg");
pdf.getPages().get(0).getCanvas().drawImage(image, new Rectangle2D.Float(40, 40, image.getWidth(), image.getHeight()));
// サウンドロゴの位置にPdfSoundActionオブジェクトを使用してPdfActionAnnotationオブジェクトを作成
Rectangle2D rect = new Rectangle2D.Float(40, 40, image.getWidth(), image.getHeight());
PdfActionAnnotation actionAnnotation = new PdfActionAnnotation(rect, soundAction);
// 最初のページに注釈を追加
pdf.getPages().get(0).getAnnotations().add(actionAnnotation);
// ドキュメントを保存
pdf.saveToFile("output/PDFサウンド・アクション.pdf");
pdf.close();
}
}
Java で PDF に JavaScript アクションを追加
PdfJavaScriptAction クラスを使用して、PDF ドキュメント内に JavaScript アクションを作成できます。この機能により、動的なフォームの作成、ユーザー入力の検証、タスクの自動化などのカスタムインタラクティブ機能が可能になります。以下は、PDF ドキュメントに JavaScript アクションを追加する Java コードの例です。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.actions.PdfJavaScriptAction;
public class AddJavaScriptActionPDF {
public static void main(String[] args) {
// PdfDocumentインスタンスを作成
PdfDocument pdf = new PdfDocument();
// PDFファイルを読み込む
pdf.loadFromFile("Sample.pdf");
// JavaScriptコードを定義し、それを使用してPdfJavaScriptActionインスタンスを作成
String jsCode = """
app.alert({
cMsg: '富士山に関する記事を読む準備ができましたか?\\n\\nこの記事では、富士山の概要、登山情報、周辺の観光スポット、そして日本の文化との深い関わりについて詳しく説明します。ぜひお楽しみください!',
nIcon: 3,
cTitle: 'ドキュメント紹介'
})
""";
PdfJavaScriptAction javaScriptAction = new PdfJavaScriptAction(jsCode);
// PDFファイルを開いた後に実行されるアクションとしてJavaScriptアクションを設定
pdf.setAfterOpenAction(javaScriptAction);
// ドキュメントを保存
pdf.saveToFile("output/PDF JavaScriptアクション.pdf");
pdf.close();
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。