ナビゲーションとアクション
ナビゲーションとアクション
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");ヒントとベストプラクティス
- 直感的なナビゲーションのために、ドキュメントのセクション階層を反映したブックマークツリーを作成します。
GoToActionとFitTypeを使用して、対象ページの表示方法(幅に合わせる、ページ全体に合わせるなど)を制御します。- 名前付きアクションはビューア依存です — 標準名(NextPage、PrevPage、FirstPage、LastPage)を使用してください。
- ドキュメント間リンクには、PDF ファイルを指す URI アクションの代わりに
GoToRemoteActionを使用します。 - ページ上のアクションコレクションを使用すると、ページが開かれたときに実行される複数のアクションを追加できます。
一般的な問題
| Issue | Cause | Fix |
|---|---|---|
| ブックマークがナビゲートしない | アウトライン項目にアクションが設定されていない | GoToAction を OutlineItemCollection.Action に割り当てる |
| GoTo アクションが誤ったページを対象にする | ページインデックスは内部で0ベースだが、ページは1ベースである | GoToAction コンストラクタで doc.Pages[n] を直接使用する |
| 名前付きアクションが効果を持たない | ビューアが名前付きアクションをサポートしていない | 標準名のみを使用する |
よくある質問
目次はどうやって作成しますか?
各セクションに対してOutlineItemCollectionエントリを作成し、各エントリはGoToActionでセクションの最初のページを対象とします。
ブックマークを入れ子にできますか?
はい。子OutlineItemCollectionエントリを親ブックマークに追加して、階層型アウトラインを作成します。
GoTo アクションで利用できるフィットタイプは何ですか?
Fit、FitH(幅に合わせる)、FitV(高さに合わせる)、FitR(矩形に合わせる)、およびFitB(バウンディングボックスに合わせる)。
API リファレンス概要
| Class / Method | Description |
|---|---|
OutlineCollection | ドキュメント上のトップレベルブックマークコレクション |
OutlineItemCollection | タイトルとアクションを持つ単一ブックマークエントリ |
GoToAction | 同一ドキュメント内のページへ移動 |
GoToRemoteAction | 外部PDFのページへ移動 |
LaunchAction | 外部ファイルを開く |
NamedAction | 事前定義されたビューアコマンドをトリガー |
PdfAction.CreateGoTo | GoTo アクションのファクトリ |
PdfAction.CreateNamed | 名前付きアクションのファクトリ |
ActionCollection | ページまたはアノテーション上のアクションコレクション |
DestinationCollection | 名前付きデスティネーションレジストリ |
ActionType | 列挙: GoTo, URI, JavaScript, Named, Launch |