PDFでのアクションの操作
次のコードスニペットは、Aspose.PDF.Drawing ライブラリでも動作します。
PDFファイルにハイパーリンクを追加する
PDFファイルにハイパーリンクを追加することが可能で、読者がPDFの別の部分や外部コンテンツに移動できるようにします。
PDFドキュメントにウェブハイパーリンクを追加するには:
Document クラスのオブジェクトを作成します。
リンクを追加したいPage クラスを取得します。
PageおよびRectangle オブジェクトを使用してLinkAnnotation オブジェクトを作成します。矩形オブジェクトは、リンクを追加するページ上の位置を指定するために使用されます。
Actionプロパティを、リモートURIの位置を指定するGoToURIAction オブジェクトに設定します。
ハイパーリンクテキストを表示するには、LinkAnnotation オブジェクトが配置されている位置に類似した位置にテキスト文字列を追加します。
フリーテキストを追加するには:
次のコードスニペットは、PDFファイルにハイパーリンクを追加する方法を示しています。
.NET Core 3.1
Copy
private static void AddHyperlink ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_LinksActions ();
using ( var document = new Aspose . Pdf . Document ( dataDir + "AddHyperlink.pdf" ))
{
var page = document . Pages [ 1 ];
var link = new Aspose . Pdf . Annotations . LinkAnnotation ( page , new Aspose . Pdf . Rectangle ( 100 , 100 , 300 , 300 ));
var border = new Aspose . Pdf . Annotations . Border ( link );
border . Width = 0 ;
link . Border = border ;
link . Action = new Aspose . Pdf . Annotations . GoToURIAction ( "www.aspose.com" );
page . Annotations . Add ( link );
var textAnnotation = new Aspose . Pdf . Annotations . FreeTextAnnotation ( document . Pages [ 1 ], new Aspose . Pdf . Rectangle ( 100 , 100 , 300 , 300 ), new Aspose . Pdf . Annotations . DefaultAppearance ( Aspose . Pdf . Text . FontRepository . FindFont ( "TimesNewRoman" ), 10 , System . Drawing . Color . Blue ));
textAnnotation . Contents = "Link to Aspose website" ;
textAnnotation . Border = border ;
document . Pages [ 1 ]. Annotations . Add ( textAnnotation );
document . Save ( dataDir + "AddHyperlink_out.pdf" );
}
}
.NET 8
Copy
private static void AddHyperlink ( )
{
var dataDir = RunExamples . GetDataDir_AsposePdf_LinksActions ();
using var document = new Aspose . Pdf . Document ( dataDir + "AddHyperlink.pdf" );
var page = document . Pages [ 1 ];
var link = new Aspose . Pdf . Annotations . LinkAnnotation ( page , new Aspose . Pdf . Rectangle ( 100 , 100 , 300 , 300 ));
var border = new Aspose . Pdf . Annotations . Border ( link );
border . Width = 0 ;
link . Border = border ;
link . Action = new Aspose . Pdf . Annotations . GoToURIAction ( "www.aspose.com" );
page . Annotations . Add ( link );
var textAnnotation = new Aspose . Pdf . Annotations . FreeTextAnnotation ( document . Pages [ 1 ], new Aspose . Pdf . Rectangle ( 100 , 100 , 300 , 300 ), new Aspose . Pdf . Annotations . DefaultAppearance ( Aspose . Pdf . Text . FontRepository . FindFont ( "TimesNewRoman" ), 10 , System . Drawing . Color . Blue ));
textAnnotation . Contents = "Link to Aspose website" ;
textAnnotation . Border = border ;
document . Pages [ 1 ]. Annotations . Add ( textAnnotation );
document . Save ( dataDir + "AddHyperlink_out.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を取得するには:
Document オブジェクトを作成します。
リンクを抽出したいPage を取得します。
AnnotationSelector クラスを使用して、指定されたページからすべてのLinkAnnotation オブジェクトを抽出します。
AnnotationSelector オブジェクトをPage オブジェクトのAcceptメソッドに渡します。
AnnotationSelector オブジェクトのSelectedプロパティを使用して、すべての選択されたリンク注釈をIListオブジェクトに取得します。
最後に、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ページ目で開きます。この動作を避けるために、オープンアクションコマンドを削除します。
オープンアクションを削除するには:
Document オブジェクトのOpenAction プロパティをnullに設定します。
DocumentオブジェクトのSave メソッドを使用して、更新されたPDFを保存します。
次のコードスニペットは、PDFファイルからドキュメントオープンアクションを削除する方法を示しています。
ドキュメントを表示する際にPDFページを指定する方法
Adobe ReaderなどのPDFビューアでPDFファイルを表示する際、ファイルは通常最初のページで開きます。ただし、ファイルを異なるページで開くように設定することも可能です。
XYZExplicitDestination クラスを使用すると、開きたいPDFファイル内のページを指定できます。GoToActionオブジェクトの値をDocument クラスのOpenActionプロパティに渡すと、ドキュメントはXYZExplicitDestinationオブジェクトに対して指定されたページで開きます。次のコードスニペットは、ドキュメントオープンアクションとしてページを指定する方法を示しています。