Documentation
¶
Overview ¶
Package navigation 将 OFD 链接动作、跳转目标、书签和大纲转换为输出契约。
本包只读取模型并通过 PageResolver 将页面 ID 映射为输出页序,不持有解析文档、 页面租约或绘制状态。主渲染包负责页面遍历与复合对象热区的坐标和裁剪映射。 没有目标页映射时仅保留 URI,目标不在输出中时丢弃相应的内部跳转。
Index ¶
- func ActionLink(actions models.Actions, resolve PageResolver) (drawing.PageLink, bool)
- func AnnotationLinks(annot *models.PageAnnot, resolve PageResolver) []drawing.PageLink
- func BoundaryUsable(boundary models.StBox) bool
- func GraphicUnit(item models.PageItem) *models.CTGraphicUnit
- func Links(items []models.PageItem, resolve PageResolver) []drawing.PageLink
- func Outlines(source *models.OutlineList, bookmarkList *models.BookmarkList, ...) []drawing.PageOutline
- type PageRef
- type PageResolver
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ActionLink ¶
ActionLink 按动作顺序返回首个可解析的 CLICK 链接,同一动作中 URI 优先于 内部跳转。目标页无法解析时跳过该动作,继续检查后续动作。
func AnnotationLinks ¶
func AnnotationLinks(annot *models.PageAnnot, resolve PageResolver) []drawing.PageLink
AnnotationLinks 按 Appearance 自身的页面边界收集批注链接。
func BoundaryUsable ¶
BoundaryUsable 判断热区能否成为点击区域。
真实文档里存在负宽高(internal/models 的 Boundary 注释对此有说明),负宽高 同样表示一个矩形,需在归一化时取绝对值;但宽高为零、非有限值则没有可点区域。
func GraphicUnit ¶
func GraphicUnit(item models.PageItem) *models.CTGraphicUnit
GraphicUnit 返回图元携带的只读图形单元(含 Actions 与 Boundary)。
func Links ¶
func Links(items []models.PageItem, resolve PageResolver) []drawing.PageLink
Links 收集对象块内的链接,使用图元自身的局部 Boundary,不展开复合资源。 页面级提取方通过 content 遍历取得映射,再调用 ActionLink 解析动作。
func Outlines ¶
func Outlines(source *models.OutlineList, bookmarkList *models.BookmarkList, resolve PageResolver) []drawing.PageOutline
Outlines 返回文档大纲的扁平条目序列,按文档顺序排列。
resolve 与 ActionLink 共用页面映射:目标页必须在输出里才能建立跳转。 源树最多访问 64 层,超出部分跳过,不影响后续兄弟节点。