导航和操作

导航和操作

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");

转到操作

GoToAction 在同一文档中导航到特定页面并设置适配类型。

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

命名操作

NamedAction 触发预定义的 PDF 查看器命令,如 NextPage、PrevPage、FirstPage 和 LastPage。

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)。
  • 对于跨文档链接,请使用 GoToRemoteAction 而不是指向 PDF 文件的 URI 动作。
  • 页面上的动作集合允许您添加多个在页面打开时触发的动作。

常见问题

IssueCauseFix
书签无法导航大纲项未设置操作GoToAction 分配给 OutlineItemCollection.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

另见

 中文