長い PDF 文書を読むとき、読者は欲しい情報を見つけるために上下にスクロールすることに疲れるかもしれません。 そこで、文書の読みやすさを向上させるために、文書の作成者は、文書内にナビゲーションツールを追加することができます。 ナビゲーションボタンは、特に関連するコンテンツの場所に移動するための非常に便利なナビゲーションツールです。PDF のナビゲーションボタンは、プロンプトテキストとボタンとしてページに表示され、文書の読者が簡単にボタンをクリックして、ドキュメント内の適切な場所にジャンプすることができます。 この記事では、Spire.PDF for Java を使用して、プログラムを通じて PDF 文書にナビゲーションボタンを追加する方法を紹介します。
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>9.1.4</version>
</dependency>
</dependencies>
PDF 文書にナビゲーションボタンを挿入する
Spire.PDF for Java は、PDF 文書内のボタンを表すために PdfButtonField クラスを提供しています。 このクラスのメソッドは、ボタンの書式とボタンがクリックされたときに実行されるアクションを設定するために使用することができます。ナビゲーションボタンを挿入するには、まずカスタム addNavigationButton() メソッドを作成し、次にボタン、アクション、矩形領域、テキストをパラメータとしてこのメソッドに渡されることができます。 詳しい手順は以下の通りです。
- PdfDocument クラスのオブジェクトを作成します。
- PdfDocument.loadFromFile() メソッドを使用して、PDF ドキュメントを読み込みます。
- PdfDocument.getPages().get() メソッドを使用して、ドキュメントの最後のページを取得します。
- PdfDocument.setAllowCreateForm() メソッドを使用して、PDF フォームコマンドの作成を許可します。
- PdfButtonField のオブジェクトを作成します。
- PdfNamedAction のオブジェクトを作成し、最初のページにジャンプするようにアクションを設定します。
- ボタンの位置とサイズ、そしてボタンに表示されるテキストを定義します。
- カスタムの addNavigationButton() メソッドを使用して、最初のページにジャンプするナビゲーションボタンを追加します。
- PdfButtonField の別のオブジェクトを作成します。
- PdfGoToAction オブジェクトを作成し、3ページ目にジャンプするようにアクションを設定します。
- ボタンの位置とサイズ、そしてボタンに表示されるテキストを定義します。
- カスタムの addNavigationButton() メソッドを使用して、3ページ目にジャンプするナビゲーションボタンを追加します。
- PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
- Java
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 日間有効な一時ライセンスを取得してください。