チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
PDF ドキュメントをインタラクティブな要素で強化することは、ユーザーエンゲージメントや機能性向上のためにますます重要になっています。ドキュメントページへのリンク、JavaScript の実行、またはファイルオープンをトリガーするようなアクションを PDF に追加することで、さまざまなプロフェッショナルおよび個人用途でのドキュメントの利便性を大幅に向上させることができます。Java で Spire.PDF for Java ライブラリを使用して、こうした動的な機能を組み込むことで、開発者は PDF ドキュメントに新たな可能性をもたらし、より多機能でユーザーフレンドリーなドキュメントを作成できます。
本記事では、Spire.PDF for Java を使用して PDF ドキュメントにアクションを追加する方法を紹介します。
まず、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 ドキュメントにナビゲーション アクション、ファイル開くアクション、音声アクション、JavaScript アクションなど、さまざまなアクションを追加できる機能を提供します。以下は、よく使用されるアクションに対応するクラスとその説明を示す一覧です。
クラス名 | 説明 |
PdfGoToAction | 現在のドキュメント内の特定の位置に移動するアクションを表します。 |
PdfLaunchAction | ファイルを起動して開くアクションを表します。 |
PdfJavaScriptAction | JavaScript コードを実行するアクションを表します。 |
PdfSoundAction | 音声を再生するアクションを表します。 |
その他のアクションクラスとその詳細については、Spire.PDF for Java アクション API リファレンスをご参照ください。
PDF ドキュメントにアクションを追加する方法は主に次の 2 つです。
1. アクション注釈を使用する方法
この方法では、アクションを作成し、ページ上の注釈にリンクさせます。注釈がクリックされるとアクションが表示および実行されます。
手順:
2. ドキュメントイベントにアクションを割り当てる方法
アクションは、ドキュメントの開閉や印刷などのイベントに割り当てることもできます。これらのアクションは、指定されたイベントが発生したときに自動的に実行されます。
手順:
PdfGoToAction クラスを使用して、PDF ドキュメント内の特定の位置にジャンプするナビゲーションアクションを作成できます。以下は、PDF ドキュメントにナビゲーションボタンを作成する 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();
}
}
開発者は、PdfLaunchAction クラスを使用して、PDF ドキュメントにファイル開くアクションを作成できます。以下に、PDF ドキュメントにファイルオープンアクションを追加する 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();
}
}
PdfSoundAction クラスを使用して、PDF ドキュメント内で音声再生を処理できます。これにより、バックグラウンドミュージックや音声リマインダーなどの機能を実現できます。以下は、PDF ドキュメントに音声アクションを作成する 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();
}
}
PdfJavaScriptAction クラスを使用して、PDF ドキュメント内に JavaScript アクションを作成できます。この機能により、動的なフォームの作成、ユーザー入力の検証、タスクの自動化などのカスタムインタラクティブ機能が可能になります。以下は、PDF ドキュメントに JavaScript アクションを追加する 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 日間有効な一時ライセンスを取得してください。
長い PDF 文書を読むとき、読者は欲しい情報を見つけるために上下にスクロールすることに疲れるかもしれません。 そこで、文書の読みやすさを向上させるために、文書の作成者は、文書内にナビゲーションツールを追加することができます。 ナビゲーションボタンは、特に関連するコンテンツの場所に移動するための非常に便利なナビゲーションツールです。PDF のナビゲーションボタンは、プロンプトテキストとボタンとしてページに表示され、文書の読者が簡単にボタンをクリックして、ドキュメント内の適切な場所にジャンプすることができます。 この記事では、Spire.PDF for Java を使用して、プログラムを通じて PDF 文書にナビゲーションボタンを追加する方法を紹介します。
まず、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>9.1.4</version>
</dependency>
</dependencies>
Spire.PDF for Java は、PDF 文書内のボタンを表すために PdfButtonField クラスを提供しています。 このクラスのメソッドは、ボタンの書式とボタンがクリックされたときに実行されるアクションを設定するために使用することができます。ナビゲーションボタンを挿入するには、まずカスタム addNavigationButton() メソッドを作成し、次にボタン、アクション、矩形領域、テキストをパラメータとしてこのメソッドに渡されることができます。 詳しい手順は以下の通りです。
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.actions.PdfAction;
import com.spire.pdf.actions.PdfActionDestination;
import com.spire.pdf.actions.PdfGoToAction;
import com.spire.pdf.actions.PdfNamedAction;
import com.spire.pdf.fields.PdfButtonField;
import com.spire.pdf.fields.PdfForm;
import com.spire.pdf.general.PdfDestination;
import com.spire.pdf.graphics.PdfRGBColor;
import com.spire.pdf.graphics.PdfTrueTypeFont;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class addNavigationButton {
public static void main(String[] args) throws Exception {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルを読み込む
pdf.loadFromFile("貸借対照表.pdf");
//最後のページを取得する
PdfPageBase lastPage = pdf.getPages().get(pdf.getPages().getCount() - 1);
//PDF文書にフォームコマンドの作成を許可する
pdf.setAllowCreateForm(true);
//PdfButtonFieldのオブジェクトを作成する
PdfButtonField btn_1 = new PdfButtonField(lastPage, "btn_1");
//PdfNamedActionのオブジェクトを作成し、最初のページにジャンプするようにアクションを設定する
PdfNamedAction namedAction = new PdfNamedAction(PdfActionDestination.FirstPage);
//ボタンの位置とサイズ、ボタンに表示するテキストを定義する
float x = 150;
float y = 345;
float width = 170;
float height = 22;
Rectangle2D.Float rect = new Rectangle2D.Float(x, y, width, height);
String text = "最初のページに移動する";
//カスタムメソッドを使用して、最初のページにジャンプするナビゲーションボタンを追加する
addNavigationButton(btn_1, rect, text, namedAction);
//PdfButtonFieldの別のオブジェクトを作成する
PdfButtonField btn_2 = new PdfButtonField(lastPage, "btn_2");
//PdfGoToActionのオブジェクトを作成し、3ページ目にジャンプするようにアクションを設定する
PdfGoToAction goToAction = new PdfGoToAction(new PdfDestination(pdf.getPages().get(2)));
//ボタンの位置と大きさ、ボタンに表示するテキストを定義する
rect = new Rectangle2D.Float( x, y + height + 5, width, height);
String text1 = "3ページ目に移動する";
//カスタムメソッドを使用して、3ページ目にジャンプするナビゲーションボタンを追加する
addNavigationButton(btn_2, rect, text1, goToAction);
//ドキュメントを保存する
pdf.saveToFile("ナビゲーションボタン.pdf", FileFormat.PDF);
pdf.close();
}
static void addNavigationButton(PdfButtonField btn, Rectangle2D.Float rect, String text, PdfAction action) {
//PdfTrueTypeFontのオブジェクトを作成する
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Mincho", Font.PLAIN, 13), true);
//ボタンの位置とサイズを設定する
btn.setBounds(rect);
//ボタンに表示するテキストのフォントを設定する
btn.setFont(font);
//ボタンに表示するテキストを設定する
btn.setText(text);
//ボタンの色を設定する
btn.setBackColor(new PdfRGBColor(Color.ORANGE));
//ボタンに表示するテキストの色を設定する
btn.setForeColor(new PdfRGBColor(Color.blue));
//ボタンの枠色を設定する
btn.setBorderColor(new PdfRGBColor(Color.green));
//マウスがクリックされたときにボタンが実行するアクションを設定する
btn.getActions().setMouseDown(action);
//ドキュメントにボタンを追加する
PdfForm form = new PdfForm();
form.getFields().add(btn);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。