PDFでのアクションの操作

次のコードスニペットは、Aspose.PDF.Drawingライブラリでも動作します。

PDFファイルにハイパーリンクを追加する

PDFファイルにハイパーリンクを追加することが可能で、読者がPDFの別の部分や外部コンテンツに移動できるようにします。

PDFドキュメントにウェブハイパーリンクを追加するには:

  1. Documentクラスのオブジェクトを作成します。
  2. リンクを追加したいPageクラスを取得します。
  3. PageおよびRectangleオブジェクトを使用してLinkAnnotationオブジェクトを作成します。矩形オブジェクトは、リンクを追加するページ上の位置を指定するために使用されます。
  4. Actionプロパティを、リモートURIの位置を指定するGoToURIActionオブジェクトに設定します。
  5. ハイパーリンクテキストを表示するには、LinkAnnotationオブジェクトが配置されている位置に類似した位置にテキスト文字列を追加します。
  6. フリーテキストを追加するには:
  • FreeTextAnnotationオブジェクトをインスタンス化します。このオブジェクトもPageおよびRectangleオブジェクトを引数として受け入れるため、LinkAnnotationコンストラクタに対して指定された値を提供することが可能です。
  • FreeTextAnnotationオブジェクトのContentsプロパティを使用して、出力PDFに表示される文字列を指定します。
  • オプションで、LinkAnnotationおよびFreeTextAnnotationオブジェクトの両方の境界幅を0に設定して、PDFドキュメントに表示されないようにします。
  • LinkAnnotationおよびFreeTextAnnotationオブジェクトが定義されたら、これらのリンクをPageオブジェクトのAnnotationsコレクションに追加します。
  • 最後に、DocumentオブジェクトのSaveメソッドを使用して、更新されたPDFを保存します。

次のコードスニペットは、PDFファイルにハイパーリンクを追加する方法を示しています。

同じPDF内のページへのハイパーリンクを作成する

Aspose.PDF for .NETは、PDFの作成と操作に優れた機能を提供します。また、PDFページへのリンクを追加する機能も提供しており、リンクは別のPDFファイルのページ、ウェブURL、アプリケーションを起動するリンク、または同じPDFファイルのページにリンクすることができます。ローカルハイパーリンク(同じPDFファイル内のページへのリンク)を追加するには、LocalHyperlinkというクラスがAspose.PDF名前空間に追加され、このクラスにはハイパーリンクのターゲット/宛先ページを指定するために使用されるTargetPageNumberというプロパティがあります。

ローカルハイパーリンクを追加するには、リンクをTextFragmentに関連付けるためにTextFragmentを作成する必要があります。TextFragmentクラスには、LocalHyperlinkインスタンスを関連付けるために使用されるHyperlinkというプロパティがあります。次のコードスニペットは、この要件を達成する手順を示しています。

PDFハイパーリンクの宛先(URL)を取得する

リンクはPDFファイル内の注釈として表され、追加、更新、または削除できます。Aspose.PDF for .NETは、PDFファイル内のハイパーリンクの宛先(URL)を取得することもサポートしています。

リンクのURLを取得するには:

  1. Documentオブジェクトを作成します。
  2. リンクを抽出したいPageを取得します。
  3. AnnotationSelectorクラスを使用して、指定されたページからすべてのLinkAnnotationオブジェクトを抽出します。
  4. AnnotationSelectorオブジェクトをPageオブジェクトのAcceptメソッドに渡します。
  5. AnnotationSelectorオブジェクトのSelectedプロパティを使用して、すべての選択されたリンク注釈をIListオブジェクトに取得します。
  6. 最後に、LinkAnnotation ActionをGoToURIActionとして抽出します。

次のコードスニペットは、PDFファイルからハイパーリンクの宛先(URL)を取得する方法を示しています。

ハイパーリンクテキストを取得する

ハイパーリンクには2つの部分があります:ドキュメントに表示されるテキストと宛先URLです。場合によっては、URLではなくテキストが必要です。

PDFファイル内のテキストと注釈/アクションは異なるエンティティで表されます。ページ上のテキストは単なる単語と文字のセットですが、注釈はハイパーリンクに固有のインタラクティビティをもたらします。

URLコンテンツを見つけるには、注釈とテキストの両方を操作する必要があります。Annotationオブジェクト自体にはテキストがなく、ページ上のテキストの下に位置しています。したがって、テキストを取得するには、AnnotationがURLの境界を提供し、TextオブジェクトがURLの内容を提供します。次のコードスニペットを参照してください。

PDFファイルからドキュメントオープンアクションを削除する

ドキュメントを表示する際にPDFページを指定する方法では、ドキュメントを最初のページとは異なるページで開くように指示する方法を説明しました。複数のドキュメントを連結する際に、1つ以上にGoToアクションが設定されている場合、それらを削除したい場合があります。たとえば、2つのドキュメントを結合し、2番目のドキュメントに2ページ目に移動するGoToアクションがある場合、出力ドキュメントは結合されたドキュメントの最初のページではなく、2番目のドキュメントの2ページ目で開きます。この動作を避けるために、オープンアクションコマンドを削除します。

オープンアクションを削除するには:

  1. DocumentオブジェクトのOpenActionプロパティをnullに設定します。
  2. DocumentオブジェクトのSaveメソッドを使用して、更新されたPDFを保存します。

次のコードスニペットは、PDFファイルからドキュメントオープンアクションを削除する方法を示しています。

ドキュメントを表示する際にPDFページを指定する方法

Adobe ReaderなどのPDFビューアでPDFファイルを表示する際、ファイルは通常最初のページで開きます。ただし、ファイルを異なるページで開くように設定することも可能です。

XYZExplicitDestinationクラスを使用すると、開きたいPDFファイル内のページを指定できます。GoToActionオブジェクトの値をDocumentクラスのOpenActionプロパティに渡すと、ドキュメントはXYZExplicitDestinationオブジェクトに対して指定されたページで開きます。次のコードスニペットは、ドキュメントオープンアクションとしてページを指定する方法を示しています。