Javaを使用してPDFでハイパーリンクを追加または更新する

PDFは、リッチドキュメントを作成するためのさまざまな機能を備えたクロスプラットフォームサポートを提供する人気のあるドキュメント形式です。さらに、メディア、フォーム、注釈、アーティファクトなどのさまざまな要素をサポートします。これらの要素の中で、ハイパーリンクは、PDF内を移動したり、PDF間を移動したり、URLを開いたりするために頻繁に使用されます。この記事では、JavaでプログラムによってPDFファイルのハイパーリンクを追加および更新する方法を学習します。

Aspose.PDF for Javaは、PDFの生成と操作のためのすばらしいAPIです。 APIを使用すると、単純なレイアウトと複雑なレイアウトのPDFファイルをシームレスに作成、処理、および変換できます。このAPIを使用して、PDFファイルのハイパーリンクを追加および更新します。 APIのJARをダウンロードするか、次のMaven構成を使用してインストールできます。

リポジトリ:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

依存:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>22.4</version>
</dependency>

以下は、JavaでPDFファイルにハイパーリンクを追加する手順です。

次のコードサンプルは、JavaでPDFにハイパーリンクを追加する方法を示しています。

// ドキュメントを開く
Document document = new Document("input.pdf");

// ページの参照を取得する
Page page = document.getPages().get_Item(1);

// リンク注釈オブジェクトを作成する
LinkAnnotation link = new LinkAnnotation(page, new com.aspose.pdf.Rectangle(100, 100, 300, 300));

// LinkAnnotationの境界オブジェクトを作成します
Border border = new Border(link);

// 境界線の幅の値を0に設定します
border.setWidth ( 0);

// LinkAnnotationの境界線を設定します
link.setBorder(border);

// リンクタイプをリモートURIとして指定します
link.setAction( new GoToURIAction("www.aspose.com"));

// PDFファイルの最初のページの注釈コレクションにリンク注釈を追加します
page.getAnnotations().add(link);

// 更新されたドキュメントを保存する
document.save("output.pdf");

ハイパーリンクを使用して、PDFから外部PDFファイルに移動することもできます。次の手順は、Javaで外部PDFファイルのハイパーリンクを追加する方法を示しています。

  • Documentクラスを使用して、新しいPDFを作成するか、既存のPDFをロードします。
  • Document.getPages()コレクションからハイパーリンクを追加するページの参照を取得します。
  • LinkAnnotationクラスのオブジェクトを作成し、そのプロパティを設定します。
  • LinkAnnotation.setAction()メソッドを使用して、外部PDFへのパスを含むGoToRemoteActionオブジェクトにアクションを設定します。
  • Page.getAnnotations().add()メソッドを使用してページにハイパーリンクを追加します。
  • Document.save(String)メソッドを使用してPDFを保存します。

次のコードサンプルは、Javaで外部PDFのハイパーリンクを追加する方法を示しています。

// ドキュメントを開く
Document document = new Document("input.pdf");

// ページの参照を取得する
Page page = document.getPages().get_Item(1);

// ハイパーリンクを作成する
LinkAnnotation link = new LinkAnnotation(page, new com.aspose.pdf.Rectangle(100, 100, 300, 300));
link.setColor(Color.getGreen());

// アクションを設定する
link.setAction( new GoToRemoteAction("external.pdf", 1));

// PDFファイルの最初のページの注釈コレクションにリンク注釈を追加します
page.getAnnotations().add(link);

// 更新されたドキュメントを保存する
document.save("output.pdf");

場合によっては、PDFドキュメント内のあるページから別のページに移動する必要があります。 LocalHyperlinkクラスは、PDFの特定のページに移動するために使用されます。これを実現するための手順は次のとおりです。

次のコードサンプルは、PDFの特定のページに移動するためのハイパーリンクを追加する方法を示しています。

// ドキュメントを開く
Document document = new Document("input.pdf");

// ページの参照を取得する
Page page = document.getPages().get_Item(1);

// TextFragmentインスタンスを作成します
TextFragment text = new TextFragment("link page number test to page 7");

// ローカルハイパーリンクインスタンスを作成する
LocalHyperlink link = new LocalHyperlink();

// リンクインスタンスのターゲットページを設定する
link.setTargetPageNumber( 7);

// TextFragmentハイパーリンクを設定する
text.setHyperlink(link);

// ページの段落コレクションにテキストを追加する
page.getParagraphs().add(text);

// 更新されたドキュメントを保存する
document.save("output.pdf");

PDFファイルからハイパーリンクを取得してそのプロパティを更新することもできます。この操作を実行する手順は次のとおりです。

  • Documentクラスを使用して、新しいPDFを作成するか、既存のPDFをロードします。
  • Document.getPages()コレクションから、ハイパーリンクが配置されているページの参照を取得します。
  • Page.getAnnotations().getitem()メソッドを使用して、インデックスによって目的のLinkAnnotationオブジェクトを抽出します。
  • ハイパーリンクの必要なプロパティを更新し、Document.save(String)メソッドを使用してPDFを保存します。

次のコードサンプルは、Javaを使用してPDFのハイパーリンクを更新する方法を示しています。

// ドキュメントを開く
Document document = new Document("input.pdf");

// ドキュメントの最初のページから最初のリンク注釈を取得します
LinkAnnotation linkAnnot = (LinkAnnotation)document.getPages().get_Item(1).getAnnotations().get_Item(1);

// リンクアクションを変更し、ターゲットをWebアドレスとして設定します
linkAnnot.setAction(new GoToURIAction("www.aspose.com"));

// 必要に応じて他のプロパティを変更します

// 更新されたドキュメントを保存する
document.save("output.pdf");

PDFにハイパーリンクを追加するJavaAPI-無料ライセンスを取得

評価の制限なしにAspose.PDFforJavaを使用するには、無料の一時ライセンスを取得できます。

結論

この記事では、Javaを使用してPDFファイルにさまざまなタイプのハイパーリンクを追加する方法を学習しました。さらに、既存のPDFファイルからハイパーリンクを取得し、それらのプロパティをプログラムで更新する方法を見てきました。さらに、ドキュメントを使用して、JavaPDFAPIの詳細を調べることができます。ご不明な点やご質問がございましたら、フォーラムからお問い合わせください。

関連項目