导航和操作
导航和操作
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");技巧与最佳实践
- 构建一个书签树,使其映射文档的章节层次结构,以实现直观的导航。
- 使用
GoToAction与FitType控制目标页面的显示方式(适合宽度、适合页面等)。 - 命名动作取决于查看器——请坚持使用标准名称(NextPage、PrevPage、FirstPage、LastPage)。
- 对于跨文档链接,请使用
GoToRemoteAction而不是指向 PDF 文件的 URI 动作。 - 页面上的动作集合允许您添加多个在页面打开时触发的动作。
常见问题
| 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 |