# PDF Action API 迁移指南

本章节主要介绍 PDF Action 相关接口从旧版本迁移到新版本的方式,旨在帮助开发者顺利完成代码升级。

# Action 获取与操作接口变更

# 旧版本

// 获取 Additional Action 对象
Widget#getAdditionalAction(type)
// 获取 Action 对象
Widget#getAction();
// 删除 Link 上的 Additional Action 对象
Link#removeAction(trigger, action);
// 删除 Screen 的 Additional Action 对象
Screen#removeAction(trigger, action);

# 新版本

// 注意, 这里的 Annot 指 Widget, Screen, Link 以及 Sound
// 获取 Action 信息
await Annot#getActionData();
// 获取所有 Action 信息(包括 Additional Action 和普通 Action)
await Annot#getAllActionData();

// 更新指定 Action
await Annot#updateAction(targetActionObjNumber, actionData);
// 移除指定 Action
await Annot#removeAction(targetActionObjNumber);

// 获取 AdditionalAction 对象
const additionalAction = await Annot#getAdditionalAction();

// 根据触发事件类型和 Action 对象序号移除 Additional Action
await additionalAction.removeAction(trigger, targetActionObjNumber);
// 添加新的 Action
await additionalAction.addAction(trigger, actionSpec);
// 更新指定的 Action 信息
await additionalAction.updateActionData(trigger, targetActionObjNumber, actionData);
// 覆盖指定触发事件类型的所有 Action
await additionalAction.setAction(trigger, actionSpec);

# 主要变更说明

  • 旧版本通过 Widget#getActionWidget#getAdditionalAction(type) 方法获取 Action。

  • 新版本统一通过 Annot 对象(包括 Widget、Screen、Link、Sound)的异步方法来获取和操作 Action。

  • 新增了批量获取、更新、移除等更细粒度的 Action 操作能力。

  • 对于 AdditionalAction 的操作,新版本需要先通过 Annot#getAdditionalAction() 方法获取 AdditionalAction 对象,然后再进行增、删、改、查等操作。

# ActionCallbackManager.setEmbeddedGotoCallback 回调参数变更

# 旧版本

旧版本回调参数为 EmbeddedGotoAction (opens new window) 对象:

const actionCallbackManager = actionpdfviewer.getActionCallbackManager();
actionCallbackManager.setEmbeddedGotoCallback(async (action) => {
    console.log(action.getDestination());
});

# 新版本

新版本回调参数为 ExecuteActionOptions (opens new window) 对象:

const actionCallbackManager = actionpdfviewer.getActionCallbackManager();
actionCallbackManager.setEmbeddedGotoCallback(async (options) => {
    console.log(
        options.data,
        options.doc,
        options.ownerQuery,
        options.pdfViewer,
        options.trigger
    );
});

# 主要变更说明

  • 新版本的回调参数更加丰富,包括 action 数据、文档对象以及触发来源等信息,便于开发者实现更复杂的业务逻辑。
  • 具体字段请参考 API 文档 (opens new window)

如需了解更多详细信息,请查阅 API 参考文档 (opens new window)