チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»pdfjavaaction

Displaying items by tag: pdfjavaaction

PDF ドキュメントをインタラクティブな要素で強化することは、ユーザーエンゲージメントや機能性向上のためにますます重要になっています。ドキュメントページへのリンク、JavaScript の実行、またはファイルオープンをトリガーするようなアクションを PDF に追加することで、さまざまなプロフェッショナルおよび個人用途でのドキュメントの利便性を大幅に向上させることができます。Java で Spire.PDF for Java ライブラリを使用して、こうした動的な機能を組み込むことで、開発者は 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>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 にナビゲーション アクションを追加

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 にファイル開くアクションを追加

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 にサウンド アクションを追加

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();
    }
}

Java で PDF に JavaScript アクションを追加

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in アクション
Tagged under

長い 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);
    }
}

Java:PDF にナビゲーションボタンを追加する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Published in アクション
Tagged under