Foxit PDF SDK

Public 类型 | Public 成员函数 | 所有成员列表
foxit::pdf::actions::AdditionalAction类 参考
类 foxit::pdf::actions::AdditionalAction 继承关系图:

## Public 类型
enum | TriggerEvent { e_TriggerPageOpened = 0, e_TriggerPageClosed = 1, e_TriggerDocWillClose = 2, e_TriggerDocWillSave = 3, e_TriggerDocSaved = 4, e_TriggerDocWillPrint = 5, e_TriggerDocPrinted = 6, e_TriggerFieldKeyStroke = 7, e_TriggerFieldWillFormat = 8, e_TriggerFieldValueChanged = 9, e_TriggerFieldRecalculateValue = 10, e_TriggerAnnotCursorEnter = 11, e_TriggerAnnotCursorExit = 12, e_TriggerAnnotMouseButtonPressed = 13, e_TriggerAnnotMouseButtonReleased = 14, e_TriggerAnnotReceiveInputFocus = 15, e_TriggerAnnotLoseInputFocus = 16, e_TriggerAnnotPageOpened = 17, e_TriggerAnnotPageClosed = 18, e_TriggerAnnotPageVisible = 19, e_TriggerAnnotPageInvisible = 20 }
| 触发器事件的枚举。 更多...

## Public 成员函数
| AdditionalAction (const PDFDoc &doc, objects::PDFDictionary *pdf_dict=0)
| 构造函数，从PDF文档或PDF字典（如果有）。 更多...
| AdditionalAction (const foxit::pdf::PDFPage &page)
| 构造函数，从PDF页面。 更多...
| AdditionalAction (const foxit::pdf::interform::Field &field)
| 构造函数，从PDF表单字段。 更多...
| AdditionalAction (const foxit::pdf::annots::Annot &annot)
| 构造函数，从PDF注释。 更多...
| AdditionalAction (const AdditionalAction &other)
| 构造函数，使用另一个附加动作对象。 更多...
| ~AdditionalAction ()
| 析构函数。
bool | DoJSAction (TriggerEvent trigger)
| 执行由触发器事件类型指定的JavaScript动作。 更多...
Action | GetAction (TriggerEvent trigger)
| 获取具有指定触发器事件类型的动作。 更多...
objects::PDFDictionary * | GetDict () const
| 获取当前对象的PDF字典。 更多...
bool | IsEmpty () const
| 检查当前对象是否为空。 更多...
bool | operator != (const AdditionalAction &other) const
| 不等于运算符。 更多...
AdditionalAction & | operator= (const AdditionalAction &other)
| 赋值运算符。 更多...
bool | operator== (const AdditionalAction &other) const
| 等于运算符。 更多...
bool | RemoveAction (TriggerEvent trigger)
| 移除具有指定触发器事件类型的动作。 更多...
bool | RemoveAllActions ()
| 移除所有动作。 更多...
void | SetAction (TriggerEvent trigger, const Action &action)
| 为指定的触发器事件类型设置附加动作。 更多...
Public 成员函数 继承自 foxit::Base
FS_HANDLE | Handle () const
| 获取当前对象的句柄。 更多...

## 详细描述

注释、页面对象或（从PDF 1.3开始）交互式表单字段可能包含名为"AA"的条目， 该条目指定附加动作字典（PDF 1.2），扩展了可以触发动作执行的事件集。 在PDF 1.4中，文档目录字典也可能包含影响整个文档的触发事件的"AA"条目。
此类可以从PDF文档、PDF页面、PDF表单字段、PDF注释（仅某些类型）或 现有的附加动作字典构造，可用于从PDF文档、PDF页面、PDF表单字段或PDF注释的 附加动作字典获取/设置数据。

## 成员枚举类型说明

## ◆ TriggerEvent

enum foxit::pdf::actions::AdditionalAction::TriggerEvent

触发器事件的枚举。

此枚举的值应单独使用。

枚举值
e_TriggerPageOpened | 触发在页面打开时执行的动作。 这表示页面对象的附加动作字典中的"O"条目。 仅适用于从PDF页面构造的附加动作对象。
e_TriggerPageClosed | 触发在页面关闭时执行的动作。 这表示页面对象的附加动作字典中的"C"条目。 仅适用于从PDF页面构造的附加动作对象。
e_TriggerDocWillClose | 触发在关闭文档前执行的JavaScript动作。 这表示文档目录的附加动作字典中的"WC"条目。 仅适用于从PDF文档构造的附加动作对象。
e_TriggerDocWillSave | 触发在保存文档前执行的JavaScript动作。 这表示文档目录的附加动作字典中的"WS"条目。 仅适用于从PDF文档构造的附加动作对象。
e_TriggerDocSaved | 触发在保存文档后执行的JavaScript动作。 这表示文档目录的附加动作字典中的"DS"条目。 仅适用于从PDF文档构造的附加动作对象。
e_TriggerDocWillPrint | 触发在打印文档前执行的JavaScript动作。 这表示文档目录的附加动作字典中的"WP"条目。 仅适用于从PDF文档构造的附加动作对象。
e_TriggerDocPrinted | 触发在打印文档后执行的JavaScript动作。 这表示文档目录的附加动作字典中的"DP"条目。 仅适用于从PDF文档构造的附加动作对象。
e_TriggerFieldKeyStroke | 触发当用户在文本字段或组合框中输入按键或修改可滚动列表框中的选择时执行的JavaScript动作。 这表示表单字段的附加动作字典中的"K"条目。 仅适用于从PDF表单字段构造的附加动作对象。 触发的动作可以检查按键的有效性并拒绝或修改它。
e_TriggerFieldWillFormat | 触发在字段被格式化以显示其当前值之前执行的JavaScript动作。 这表示表单字段的附加动作字典中的"F"条目。 仅适用于从PDF表单字段构造的附加动作对象。 触发的动作可以在格式化前修改字段的值。
e_TriggerFieldValueChanged | 触发当字段的值改变时执行的JavaScript动作。 这表示表单字段的附加动作字典中的"V"条目。 仅适用于从PDF表单字段构造的附加动作对象。 触发的动作可以检查新值的有效性。
e_TriggerFieldRecalculateValue | 触发当另一个字段改变时重新计算此字段值的JavaScript动作。 这表示表单字段的附加动作字典中的"C"条目。 仅适用于从PDF表单字段构造的附加动作对象。 文档字段重新计算的顺序可以通过函数 interform::Form::GetFieldsInCalculationOrder获得。
e_TriggerAnnotCursorEnter | 触发当光标进入注释的活动区域时执行的动作。 这表示注释的附加动作字典中的"E"条目。 仅适用于从PDF注释构造的附加动作对象。
e_TriggerAnnotCursorExit | 触发当光标离开注释的活动区域时执行的动作。 这表示注释的附加动作字典中的"X"条目。 仅适用于从PDF注释构造的附加动作对象。
e_TriggerAnnotMouseButtonPressed | 触发当鼠标按钮在注释的活动区域内按下时执行的动作。 这表示注释的附加动作字典中的"D"（代表"Down"）条目。 仅适用于从PDF注释构造的附加动作对象。
e_TriggerAnnotMouseButtonReleased | 触发当鼠标按钮在注释的活动区域内释放时执行的动作。 这表示注释的附加动作字典中的"U"（代表"Up"）条目。 仅适用于从PDF注释构造的附加动作对象。
e_TriggerAnnotReceiveInputFocus | （仅适用于小部件注释）触发当注释接收输入焦点时执行的动作。 这表示注释的附加动作字典中的"Fo"条目。 仅适用于从小部件注释构造的附加动作对象。
e_TriggerAnnotLoseInputFocus | （仅适用于小部件注释）触发当注释失去输入焦点时执行的动作。 这表示注释的附加动作字典中的"Bl"（大写B和小写L，代表"blurred"）条目。 仅适用于从小部件注释构造的附加动作对象。
e_TriggerAnnotPageOpened | 触发当包含注释的页面打开时执行的动作。 这表示注释的附加动作字典中的"PO"条目。 仅适用于从PDF注释构造的附加动作对象。 触发的动作在AdditionalAction::e_TriggerPageOpened的动作被触发后 以及PDF文档的打开动作（如果存在此类动作）之后执行。
e_TriggerAnnotPageClosed | 触发当包含注释的页面关闭时执行的动作。 这表示注释的附加动作字典中的"PC"条目。 仅适用于从PDF注释构造的附加动作对象。 触发的动作在AdditionalAction::e_TriggerPageClosed的动作被触发后执行， 如果存在此类动作。
e_TriggerAnnotPageVisible | 触发当包含注释的页面在查看器应用程序的用户界面中变为可见时执行的动作。 这表示注释的附加动作字典中的"PV"条目。 仅适用于从PDF注释构造的附加动作对象。
e_TriggerAnnotPageInvisible | 触发当包含注释的页面在查看器应用程序的用户界面中不再可见时执行的动作。 这表示注释的附加动作字典中的"PI"条目。 仅适用于从PDF注释构造的附加动作对象。

## 构造及析构函数说明

## ◆ AdditionalAction() [1/5]

foxit::pdf::actions::AdditionalAction::AdditionalAction | ( | const PDFDoc & | doc,
|  | objects::PDFDictionary * | pdf_dict = `0`
| ) |  |
| explicit

构造函数，从PDF文档或PDF字典（如果有）。

参数

  [in] | doc | 有效的PDF文档对象。
  [in] | pdf_dict | 表示附加动作字典的PDF字典。 如果此参数为NULL，那意味着仅使用PDF文档构造附加动作对象。 如果此参数不为NULL，那意味着从此PDF字典构造附加动作对象， 该字典应已存在于指定的PDF文档中并表示附加动作字典。 默认值：NULL。

## ◆ AdditionalAction() [2/5]

foxit::pdf::actions::AdditionalAction::AdditionalAction | ( | const foxit::pdf::PDFPage & | page | ) |
| explicit

构造函数，从PDF页面。

参数

  [in] | page | 有效的PDF页面对象。

## ◆ AdditionalAction() [3/5]

foxit::pdf::actions::AdditionalAction::AdditionalAction | ( | const foxit::pdf::interform::Field & | field | ) |
| explicit

构造函数，从PDF表单字段。

参数

  [in] | field | 有效的PDF表单字段。

## ◆ AdditionalAction() [4/5]

foxit::pdf::actions::AdditionalAction::AdditionalAction | ( | const foxit::pdf::annots::Annot & | annot | ) |
| explicit

构造函数，从PDF注释。

参数

  [in] | annot | 有效的PDF注释。目前，仅支持小部件和屏幕注释。 对于其他类型的注释，此函数将抛出异常 foxit::e_ErrUnsupported。

## ◆ AdditionalAction() [5/5]

foxit::pdf::actions::AdditionalAction::AdditionalAction | ( | const AdditionalAction & | other | ) |

构造函数，使用另一个附加动作对象。

参数

  [in] | other | 另一个附加动作对象。

## 成员函数说明

## ◆ DoJSAction()

bool foxit::pdf::actions::AdditionalAction::DoJSAction | ( | TriggerEvent | trigger | ) |

执行由触发器事件类型指定的JavaScript动作。

如果当前对象是用有效的PDF字典构造的，此函数将直接返回false 因为福昕PDF SDK无法知道附加动作字典与哪种对象关联。

参数

  [in] | trigger | 输入的触发器事件类型。它应该是： 如果当前附加动作是从PDF页面构造的，触发器值必须是 从AdditionalAction::e_TriggerPageOpened开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF文档构造的，触发器值必须是 从AdditionalAction::e_TriggerDocWillClose开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF表单字段构造的，触发器值必须是 从AdditionalAction::e_TriggerFieldKeyStroke开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF注释构造的，触发器值必须是 从AdditionalAction::e_TriggerAnnotCursorEnter开始的值之一 （具有相同的前缀名称）。

返回
  true表示成功，而false表示失败或当前对象是从PDF字典构造的。

## ◆ GetAction()

Action foxit::pdf::actions::AdditionalAction::GetAction | ( | TriggerEvent | trigger | ) |

获取具有指定触发器事件类型的动作。

参数

  [in] | trigger | 输入的触发器事件类型。它应该是： 如果当前附加动作是从PDF字典构造的，触发器值可以是 枚举类TriggerEvent中定义的值之一。 如果当前附加动作是从PDF页面构造的，触发器值必须是 从AdditionalAction::e_TriggerPageOpened开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF文档构造的，触发器值必须是 从AdditionalAction::e_TriggerDocWillClose开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF表单字段构造的，触发器值必须是 从AdditionalAction::e_TriggerFieldKeyStroke开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF注释构造的，触发器值必须是 从AdditionalAction::e_TriggerAnnotCursorEnter开始的值之一 （具有相同的前缀名称）。

返回
  动作对象。

## ◆ GetDict()

objects::PDFDictionary* foxit::pdf::actions::AdditionalAction::GetDict | ( |  | ) | const

获取当前对象的PDF字典。

返回
  PDF字典。如果有任何错误，此函数将返回NULL。

## ◆ IsEmpty()

bool foxit::pdf::actions::AdditionalAction::IsEmpty | ( |  | ) | const

检查当前对象是否为空。

当当前对象为空时，那意味着当前对象是无用的。

返回
  true表示当前对象为空，而false表示不为空。

## ◆ operator !=()

bool foxit::pdf::actions::AdditionalAction::operator != | ( | const AdditionalAction & | other | ) | const

不等于运算符。

参数

  [in] | other | 另一个附加动作对象。此函数将检查当前对象是否不等于此对象。

返回
  true表示不相等，而false表示相等。

## ◆ operator=()

AdditionalAction& foxit::pdf::actions::AdditionalAction::operator= | ( | const AdditionalAction & | other | ) |

赋值运算符。

参数

  [in] | other | 另一个附加动作对象，其值将分配给当前对象。

返回
  当前对象本身的引用。

## ◆ operator==()

bool foxit::pdf::actions::AdditionalAction::operator== | ( | const AdditionalAction & | other | ) | const

等于运算符。

参数

  [in] | other | 另一个附加动作对象。此函数将检查当前对象是否等于此对象。

返回
  true表示相等，而false表示不相等。

## ◆ RemoveAction()

bool foxit::pdf::actions::AdditionalAction::RemoveAction | ( | TriggerEvent | trigger | ) |

移除具有指定触发器事件类型的动作。

如果输入的触发器事件类型有效但没有动作时，此函数将直接返回true。

参数

  [in] | trigger | 输入的触发器事件类型。它应该是： 如果当前附加动作是从PDF字典构造的，触发器值可以是 枚举类TriggerEvent中定义的值之一。 如果当前附加动作是从PDF页面构造的，触发器值必须是 从AdditionalAction::e_TriggerPageOpened开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF文档构造的，触发器值必须是 从AdditionalAction::e_TriggerDocWillClose开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF表单字段构造的，触发器值必须是 从AdditionalAction::e_TriggerFieldKeyStroke开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF注释构造的，触发器值必须是 从AdditionalAction::e_TriggerAnnotCursorEnter开始的值之一 （具有相同的前缀名称）。

返回
  true表示成功，而false表示失败。

## ◆ RemoveAllActions()

bool foxit::pdf::actions::AdditionalAction::RemoveAllActions | ( |  | ) |

移除所有动作。

返回
  true表示成功，而false表示失败。

## ◆ SetAction()

void foxit::pdf::actions::AdditionalAction::SetAction | ( | TriggerEvent | trigger,
|  | const Action & | action
| ) |  |

为指定的触发器事件类型设置附加动作。

参数

  [in] | trigger | 输入的触发器事件类型。它应该是： 如果当前附加动作是从PDF字典构造的，触发器值可以是 枚举类TriggerEvent中定义的值之一。 如果当前附加动作是从PDF页面构造的，触发器值必须是 从AdditionalAction::e_TriggerPageOpened开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF文档构造的，触发器值必须是 从AdditionalAction::e_TriggerDocWillClose开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF表单字段构造的，触发器值必须是 从AdditionalAction::e_TriggerFieldKeyStroke开始的值之一 （具有相同的前缀名称）。 如果当前附加动作是从PDF注释构造的，触发器值必须是 从AdditionalAction::e_TriggerAnnotCursorEnter开始的值之一 （具有相同的前缀名称）。
  [in] | action | 要设置的动作对象。 如果当前附加动作是从PDF文档或PDF表单字段构造的，此动作的类型应该 是Action::e_TypeJavaScript。 如果当前附加动作是从PDF页面、PDF注释或PDF字典构造的， 请参考触发器事件的注释来检查是否只能使用指定类型的动作。 通常，支持以下类型作为新动作： Action::e_TypeGoto, Action::e_TypeURI, Action::e_TypeJavaScript, Action::e_TypeNamed, Action::e_TypeGoToR, Action::e_TypeGoToE, Action::e_TypeSubmitForm, Action::e_TypeResetForm, Action::e_TypeHide, Action::e_TypeLaunch, Action::e_TypeImportData, Action::e_TypeRendition。

返回
  无。