ナビゲーションとアクション

ナビゲーションとアクション

ナビゲーションとアクション

Aspose.PDF FOSS for .NET は PDF ナビゲーション構造 — ブックマーク(アウトライン)、ページ デスティネーション、ドキュメント アクション をサポートします。これらにより、目次ナビゲーション、ページ間リンク、JavaScript トリガー を備えたインタラクティブなドキュメントを作成できます。


ドキュメントアウトライン(ブックマーク)

OutlineCollection はドキュメントのブックマークツリーを保持します。各 OutlineItemCollection はタイトルと宛先を持つブックマークエントリです。

using var doc = Document.Open(pdfBytes);

foreach (var item in doc.Outlines)
{
    Console.WriteLine($"Bookmark: {item.Title}");
}

ブックマークの作成

using var doc = Document.Open(pdfBytes);

var bookmark = new OutlineItemCollection(doc.Outlines);
bookmark.Title = "Chapter 1";
bookmark.Action = new GoToAction(doc.Pages[1]);
doc.Outlines.Add(bookmark);

doc.Save("with-bookmarks.pdf");

GoTo アクション

GoToAction は同じドキュメント内の特定のページとフィットタイプに移動します。

var goTo = new GoToAction(doc.Pages[3]);

名前付きアクション

NamedAction は、NextPage、PrevPage、FirstPage、LastPage のような事前定義された PDF ビューア コマンドをトリガーします。

var nextPage = PdfAction.CreateNamed("NextPage");

GoToRemote アクション

GoToRemoteAction は外部の PDF ファイルを開き、特定のページへ移動します。

var remote = new GoToRemoteAction("other.pdf", 1);

アクションの起動

LaunchAction は PDF リンクから外部ファイル(任意の形式)を開きます。

var launch = new LaunchAction("readme.txt");

宛先コレクション

DestinationCollection 名前付きデスティネーションをページにマッピングし、大規模文書での相互参照ナビゲーションをサポートします。

var dest = doc.Destinations;
int pageNum = dest.GetPageNumber("section2");

ヒントとベストプラクティス

  • 直感的なナビゲーションのために、ドキュメントのセクション階層を反映したブックマークツリーを作成します。
  • GoToActionFitType を使用して、対象ページの表示方法(幅に合わせる、ページ全体に合わせるなど)を制御します。
  • 名前付きアクションはビューア依存です — 標準名(NextPage、PrevPage、FirstPage、LastPage)を使用してください。
  • ドキュメント間リンクには、PDF ファイルを指す URI アクションの代わりに GoToRemoteAction を使用します。
  • ページ上のアクションコレクションを使用すると、ページが開かれたときに実行される複数のアクションを追加できます。

一般的な問題

IssueCauseFix
ブックマークがナビゲートしないアウトライン項目にアクションが設定されていないGoToActionOutlineItemCollection.Action に割り当てる
GoTo アクションが誤ったページを対象にするページインデックスは内部で0ベースだが、ページは1ベースであるGoToAction コンストラクタで doc.Pages[n] を直接使用する
名前付きアクションが効果を持たないビューアが名前付きアクションをサポートしていない標準名のみを使用する

よくある質問

目次はどうやって作成しますか?

各セクションに対してOutlineItemCollectionエントリを作成し、各エントリは
GoToActionでセクションの最初のページを対象とします。

ブックマークを入れ子にできますか?

はい。子OutlineItemCollectionエントリを親ブックマークに追加して、階層型アウトラインを作成します。

GoTo アクションで利用できるフィットタイプは何ですか?

Fit、FitH(幅に合わせる)、FitV(高さに合わせる)、FitR(矩形に合わせる)、およびFitB(バウンディングボックスに合わせる)。


API リファレンス概要

Class / MethodDescription
OutlineCollectionドキュメント上のトップレベルブックマークコレクション
OutlineItemCollectionタイトルとアクションを持つ単一ブックマークエントリ
GoToAction同一ドキュメント内のページへ移動
GoToRemoteAction外部PDFのページへ移動
LaunchAction外部ファイルを開く
NamedAction事前定義されたビューアコマンドをトリガー
PdfAction.CreateGoToGoTo アクションのファクトリ
PdfAction.CreateNamed名前付きアクションのファクトリ
ActionCollectionページまたはアノテーション上のアクションコレクション
DestinationCollection名前付きデスティネーションレジストリ
ActionType列挙: GoTo, URI, JavaScript, Named, Launch

参照

 日本語