Foxit PDF SDK

Public 类型 | Public 成员函数 | 所有成员列表
foxit::addon::xfa::XFADoc类 参考
类 foxit::addon::xfa::XFADoc 继承关系图:

## Public 类型
enum | EventType { e_EventTypeUnknown = 0, e_EventTypePostPrint = 1, e_EventTypePrePrint = 2, e_EventTypeClick = 3, e_EventTypeChange = 4, e_EventTypeDocClose = 5, e_EventTypeDocReady = 6, e_EventTypeEnter = 7, e_EventTypeExit = 8, e_EventTypeFull = 9, e_EventTypeIndexChange = 10, e_EventTypeInitialize = 11, e_EventTypeMouseDown = 12, e_EventTypeMouseEnter = 13, e_EventTypeMouseExit = 14, e_EventTypeMouseUp = 15, e_EventTypePostExecute = 16, e_EventTypePostOpen = 17, e_EventTypePostSave = 18, e_EventTypePostSign = 19, e_EventTypePostSubmit = 20, e_EventTypePreExecute = 21, e_EventTypePreOpen = 22, e_EventTypePreSave = 23, e_EventTypePreSign = 24, e_EventTypePreSubmit = 25, e_EventTypeReady = 26, e_EventTypeValidationState = 27, e_EventTypeInitCalculate = 28, e_EventTypeInitVariables = 29, e_EventTypeCalculate = 30, e_EventTypeValidate = 31 }
| XFA 事件类型的枚举。 更多...
enum | ExportDataType { e_ExportDataTypeXML = 0, e_ExportDataTypeStaticXDP = 1, e_ExportDataTypeXDP = 2 }
| 导出数据类型的枚举。 更多...
enum | Type { e_Dynamic = 0, e_Static = 1, e_XDP = 2 }
| XFA 文档类型的枚举。 更多...

## Public 成员函数
| XFADoc (const foxit::pdf::PDFDoc &document)
| 构造函数。 更多...
| XFADoc (const pdf::PDFDoc &document, DocProviderCallback *xfa_doc_provider_handler)
| 构造函数。 更多...
| XFADoc (const XFADoc &other)
| 构造函数，使用另一个 XFA 文档对象。 更多...
| ~XFADoc ()
| 析构函数。
bool | ExportData (const char *output_file_path, ExportDataType export_type)
| 将数据导出到文件。 更多...
bool | ExportData (const wchar_t *output_file_path, ExportDataType export_type)
| 将数据导出到文件。 更多...
bool | ExportData (foxit::common::file::WriterCallback *stream, ExportDataType export_type)
| 将数据导出到 common::file::WriterCallback 对象。 更多...
void | FlattenTo (const char *output_file_path)
| 将当前 XFA 文档扁平化到文件。 更多...
void | FlattenTo (const wchar_t *output_file_path)
| 将当前 XFA 文档扁平化到文件。 更多...
void | FlattenTo (foxit::common::file::StreamCallback *stream)
| 将当前 XFA 文档扁平化到文件流。 更多...
XFAPage | GetPage (int page_index)
| 按索引获取 XFA 页面。 更多...
int | GetPageCount () const
| 获取 XFA 页面数量。 更多...
Type | GetType () const
| 获取 XFA 文档类型。 更多...
XFAWidget | GetWidgetByFullName (const WString &full_name)
| 获取与指定全名匹配的 XFA 控件。 更多...
bool | ImportData (const char *file_path)
| 从 XML 或 XDP 文件导入数据。 更多...
bool | ImportData (const wchar_t *file_path)
| 从 XML 或 XDP 文件导入数据。 更多...
bool | ImportData (foxit::common::file::ReaderCallback *file_reader)
| 从 common::file::ReaderCallback 对象导入数据。 更多...
bool | IsEmpty () const
| 检查当前对象是否为空。 更多...
void | KillFocus ()
| 取消 XFA 控件的焦点。 更多...
bool | operator!= (const XFADoc &other) const
| 不相等操作符。 更多...
XFADoc & | operator= (const XFADoc &other)
| 赋值操作符。 更多...
bool | operator== (const XFADoc &other) const
| 相等操作符。 更多...
void | ProcessEvent (EventType event_type)
| 为当前 XFA 文档中的所有 XFA 控件处理某种事件。 更多...
void | ResetForm ()
| 重置表单。 更多...
void | SetDocProviderCallback (foxit::addon::xfa::DocProviderCallback *doc_provider_callback)
| 设置 XFA 文档提供程序回调。 更多...
void | SetFocus (XFAWidget xfa_widget)
| 设置 XFA 控件的焦点。 更多...
void | SetPDFPath (const char *pdf_file_path)
| 设置相关 PDF 文档的路径。 更多...
void | SetPDFPath (const wchar_t *pdf_file_path)
| 设置相关 PDF 文档的路径。 更多...
common::Progressive | StartLoad (common::PauseCallback *pause=0)
| 开始为当前 XFA 文档加载内容。 更多...
Public 成员函数 继承自 foxit::Base
FS_HANDLE | Handle () const
| 获取当前对象的句柄。 更多...

## 详细描述

类 XFADoc 从已加载的 PDF 文档对象构造，以便更清晰地访问 XFA 内容。 用户必须在使用 XFA 模块之前调用 common::Library::RegisterXFAAppProviderCallback。 对于新构造的 XFA 对象，请记住在使用 XFA 类中的其他函数之前调用函数 XFADoc::StartLoad。
要在 XFA 文档中搜索，请使用 XFADoc 对象构造 pdf::TextSearch 对象。

参见
  pdf::TextSearch

## 成员枚举类型说明

## ◆ EventType

enum foxit::addon::xfa::XFADoc::EventType

XFA 事件类型的枚举。

此枚举的值应单独使用。

枚举值
e_EventTypeUnknown | 事件类型：未知。
e_EventTypePostPrint | 此类事件在渲染的表单已发送到打印机、后台打印程序 或输出目标后触发。
e_EventTypePrePrint | 此类事件在打印渲染开始前触发。
e_EventTypeClick | 此类事件在域中点击时触发。
e_EventTypeChange | 此类事件在改变表单域值时触发。
e_EventTypeDocClose | 此类事件仅当所有验证成功时，在处理过程的最后阶段触发。
e_EventTypeDocReady | 此类事件在文档渲染之前、数据绑定之后触发。
e_EventTypeEnter | 此类事件在字段获得键盘焦点时触发，无论是由用户操作（通过 Tab 键跳入字段或鼠标点击） 还是通过脚本以编程方式设置焦点所引起。preSubmit 事件仅适用于表单 DOM($form)。
e_EventTypeExit | 此类事件在键盘焦点从子表单内直接或间接地转移到子表单外的字段或其他对象时触发。
e_EventTypeFull | 此类事件在用户已向字段输入允许的最大内容量并试图输入更多内容时触发。
e_EventTypeIndexChange | 此类事件用于通知对象它刚刚被添加到数组中，或其数组中的位置（下标）已发生变化。
e_EventTypeInitialize | 此类事件在数据绑定完成后触发。
e_EventTypeMouseDown | 此类事件在鼠标按钮被按下且鼠标指针位于区域内的时刻触发。
e_EventTypeMouseEnter | 此类事件在用户将鼠标指针移入字段区域时触发，无需按下鼠标按钮。
e_EventTypeMouseExit | 此类事件在用户将鼠标指针移出字段时触发，无论鼠标按钮是否被按下。
e_EventTypeMouseUp | 此类事件在鼠标按钮被释放且鼠标指针位于区域内的时刻触发。
e_EventTypePostExecute | 此类事件在成功的 WSDL 事务后触发，即在收到请求的回复且接收的数据已编组到连接数据 DOM 之后。
e_EventTypePostOpen | 此类事件与下拉选择列表的打开前事件相关。
e_EventTypePostSave | 此类事件在表单以 PDF 或 XDP 格式写出后立即触发。
e_EventTypePostSign | 此类事件在成功应用签名后触发。
e_EventTypePostSubmit | 此类事件在返回数据已编组到连接数据 DOM 后立即触发。
e_EventTypePreExecute | 此类事件在通过 WSDL 向 Web 服务发送请求时触发，即在数据已编组到连接数据 DOM 之后，但请求发送之前。
e_EventTypePreOpen | 此类事件仅适用于 open="userControl" 或 open="onEntry" 的下拉选择列表。 该事件旨在触发用于向选择列表添加选项或从中移除选项的脚本。
e_EventTypePreSave | 此类事件在表单数据以 PDF 或 XDP 格式写出之前触发。
e_EventTypePreSign | 此类事件在即将应用签名时触发。
e_EventTypePreSubmit | 此类事件在数据已编组到连接数据 DOM 之后，但在验证之前以及数据提交到主机之前触发。
e_EventTypeReady | 此类事件在 XFA DOM 完成加载后触发。
e_EventTypeValidationState | 此类事件在目标的验证状态发生变化时触发。
e_EventTypeInitCalculate | 此类事件代表首次运行计算。
e_EventTypeInitVariables | 此类事件并非实际的事件活动，仅表示变量中的脚本签名。
e_EventTypeCalculate | 此类事件代表计算操作。
e_EventTypeValidate | 此类事件代表验证操作。

## ◆ ExportDataType

enum foxit::addon::xfa::XFADoc::ExportDataType

导出数据类型的枚举。

此枚举的值应单独使用。

枚举值
e_ExportDataTypeXML | 导出数据类型：XML。
e_ExportDataTypeStaticXDP | 导出数据类型：静态 XDP。
e_ExportDataTypeXDP | 导出数据类型：XDP。

## ◆ Type

enum foxit::addon::xfa::XFADoc::Type

XFA 文档类型的枚举。

此枚举的值应单独使用。

枚举值
e_Dynamic | XFA 文档类型：动态。
e_Static | XFA 文档类型：静态。
e_XDP | XFA 文档类型：XDP，作为原始 XML 数据。

## 构造及析构函数说明

## ◆ XFADoc() [1/3]

foxit::addon::xfa::XFADoc::XFADoc | ( | const pdf::PDFDoc & | document,
|  | DocProviderCallback * | xfa_doc_provider_handler
| ) |  |

构造函数。

参数

  [in] | document | 有效的 PDF 文档。它应该已经成功加载。
  [in] | xfa_doc_provider_handler | 由用户实现的 XFA 文档提供程序回调对象， 基于回调类 DocProviderCallback。它不应该为 NULL。用户应确保此回调对象在 相关 PDF 文档释放之前保持有效。

注解
  如果在函数 common::Library::Initialize 中使用的许可信息中未定义模块"XFA"， 这意味着用户无权使用 XFA 相关函数，此构造函数将抛出异常 foxit::e_ErrNoXFAModuleRight。

## ◆ XFADoc() [2/3]

foxit::addon::xfa::XFADoc::XFADoc | ( | const foxit::pdf::PDFDoc & | document | ) |

构造函数。

当通过此构造函数成功构造 XFADoc 时，用户必须通过函数 XFADoc::SetDocProviderCallback 设置 XFA 文档提供程序回调。

参数

  [in] | document | A valid PDF document. It should has been loaded successfully.

注解
  如果在函数 common::Library::Initialize 中使用的许可信息中未定义模块"XFA"， 这意味着用户无权使用 XFA 相关函数，此构造函数将抛出异常 foxit::e_ErrNoXFAModuleRight。

## ◆ XFADoc() [3/3]

foxit::addon::xfa::XFADoc::XFADoc | ( | const XFADoc & | other | ) |

构造函数，使用另一个 XFA 文档对象。

参数

  [in] | other | 另一个 XFA 文档对象。

## 成员函数说明

## ◆ ExportData() [1/3]

bool foxit::addon::xfa::XFADoc::ExportData | ( | const char * | output_file_path,
|  | ExportDataType | export_type
| ) |  |

将数据导出到文件。

参数

  [in] | output_file_path | 数据将导出到的文件路径。
  [in] | export_type | 导出类型。请参考从 XFADoc::e_ExportDataTypeXML 开始的值，这应该是这些值之一。

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

## ◆ ExportData() [2/3]

bool foxit::addon::xfa::XFADoc::ExportData | ( | const wchar_t * | output_file_path,
|  | ExportDataType | export_type
| ) |  |

将数据导出到文件。

参数

  [in] | output_file_path | 数据将导出到的文件路径。
  [in] | export_type | 导出类型。请参考从 XFADoc::e_ExportDataTypeXML 开始的值，这应该是这些值之一。

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

## ◆ ExportData() [3/3]

bool foxit::addon::xfa::XFADoc::ExportData | ( | foxit::common::file::WriterCallback * | stream,
|  | ExportDataType | export_type
| ) |  |

将数据导出到 common::file::WriterCallback 对象。

参数

  [in] | stream | 由用户实现的 foxit::common::file::WriterCallback 对象，用于保存导出的数据。
  [in] | export_type | 导出类型。请参考从 XFADoc::e_ExportDataTypeXML 开始的值，这应该是这些值之一。

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

## ◆ FlattenTo() [1/3]

void foxit::addon::xfa::XFADoc::FlattenTo | ( | const char * | output_file_path | ) |

将当前 XFA 文档扁平化到文件。

参数

  [in] | output_file_path | 扁平化结果将保存到的文件路径。

返回
  无。

## ◆ FlattenTo() [2/3]

void foxit::addon::xfa::XFADoc::FlattenTo | ( | const wchar_t * | output_file_path | ) |

将当前 XFA 文档扁平化到文件。

参数

  [in] | output_file_path | 扁平化结果将保存到的文件路径。

返回
  无。

## ◆ FlattenTo() [3/3]

void foxit::addon::xfa::XFADoc::FlattenTo | ( | foxit::common::file::StreamCallback * | stream | ) |

将当前 XFA 文档扁平化到文件流。

参数

  [in] | stream | 用户实现的 foxit::common::file::StreamCallback 对象，用于保存扁平化结果。

返回
  无。

## ◆ GetPage()

XFAPage foxit::addon::xfa::XFADoc::GetPage | ( | int | page_index | ) |

按索引获取 XFA 页面。

参数

  [in] | page_index | 页面索引。有效范围：从 0 到 (count-1)。 count 由函数 XFADoc::GetPageCount 返回。

返回
  XFA 页面。

## ◆ GetPageCount()

int foxit::addon::xfa::XFADoc::GetPageCount | ( |  | ) | const

获取 XFA 页面数量。

返回
  页面数量。

## ◆ GetType()

Type foxit::addon::xfa::XFADoc::GetType | ( |  | ) | const

获取 XFA 文档类型。

返回
  XFA 文档的类型。请参考从 XFADoc::e_Dynamic 开始的值， 这将是这些值之一。

## ◆ GetWidgetByFullName()

XFAWidget foxit::addon::xfa::XFADoc::GetWidgetByFullName | ( | const WString & | full_name | ) |

获取与指定全名匹配的 XFA 控件。

某些 XFA 控件可能跨越多个 XFA 页面。在这种情况下，此函数只能用于 获取 XFA 文档中第一个匹配的 XFA 控件。用户也可以使用函数 XFAPage::GetWidgetByFullName 来获取 XFA 页面中匹配的 XFA 控件。

参数

  [in] | full_name | XFA 控件的全名。它不应该是空字符串。 XFA 控件的全名可以通过函数 XFAWidget::GetName 使用类型 XFAWidget::e_WidgetNameTypeFullName 在之前的过程中检索。

返回
  XFA 控件对象。

## ◆ ImportData() [1/3]

bool foxit::addon::xfa::XFADoc::ImportData | ( | const char * | file_path | ) |

从 XML 或 XDP 文件导入数据。

参数

  [in] | file_path | 源文件的路径，其数据将导入到当前 XFA 文档。 它应该是 XML 或 XDP 文件，文件扩展名应该是".xml"或".xdp"。

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

## ◆ ImportData() [2/3]

bool foxit::addon::xfa::XFADoc::ImportData | ( | const wchar_t * | file_path | ) |

从 XML 或 XDP 文件导入数据。

参数

  [in] | file_path | 源文件的路径，其数据将导入到当前 XFA 文档。 它应该是 XML 或 XDP 文件，文件扩展名应该是".xml"或".xdp"。

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

## ◆ ImportData() [3/3]

bool foxit::addon::xfa::XFADoc::ImportData | ( | foxit::common::file::ReaderCallback * | file_reader | ) |

从 common::file::ReaderCallback 对象导入数据。

参数

  [in] | file_reader | common::file::ReaderCallback 对象，其数据将导入到当前 XFA 文档。 它应该是 XML 或 XDP 文件。

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

## ◆ IsEmpty()

bool foxit::addon::xfa::XFADoc::IsEmpty | ( |  | ) | const

检查当前对象是否为空。

当前对象为空时，表示当前对象无用。

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

## ◆ KillFocus()

void foxit::addon::xfa::XFADoc::KillFocus | ( |  | ) |

取消 XFA 控件的焦点。

返回
  无。

## ◆ operator!=()

bool foxit::addon::xfa::XFADoc::operator!= | ( | const XFADoc & | other | ) | const

不相等操作符。

参数

  [in] | other | 另一个 XFA 文档对象。此函数将检查当前对象是否与此对象不相等。

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

## ◆ operator=()

XFADoc& foxit::addon::xfa::XFADoc::operator= | ( | const XFADoc & | other | ) |

赋值操作符。

参数

  [in] | other | 另一个 XFA 文档对象，其值将被赋给当前对象。

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

## ◆ operator==()

bool foxit::addon::xfa::XFADoc::operator== | ( | const XFADoc & | other | ) | const

相等操作符。

参数

  [in] | other | 另一个 XFA 文档对象。此函数将检查当前对象是否与此对象相等。

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

## ◆ ProcessEvent()

void foxit::addon::xfa::XFADoc::ProcessEvent | ( | EventType | event_type | ) |

为当前 XFA 文档中的所有 XFA 控件处理某种事件。

参数

  [in] | event_type | 事件类型。请参考从 XFADoc::e_EventTypePostPrint 开始的值，这应该是这些值之一，除了 XFADoc::e_EventTypeUnknown。

返回
  无。

## ◆ ResetForm()

void foxit::addon::xfa::XFADoc::ResetForm | ( |  | ) |

重置表单。

返回
  无。

## ◆ SetDocProviderCallback()

void foxit::addon::xfa::XFADoc::SetDocProviderCallback | ( | foxit::addon::xfa::DocProviderCallback * | doc_provider_callback | ) |

设置 XFA 文档提供程序回调。

参数

  [in] | doc_provider_callback | 由用户实现并基于回调类 DocProviderCallback 的 XFA 文档提供程序回调对象。 它不应该为 NULL。用户应确保此回调对象在相关 PDF 文档释放之前保持有效。

返回
  无。

## ◆ SetFocus()

void foxit::addon::xfa::XFADoc::SetFocus | ( | XFAWidget | xfa_widget | ) |

设置 XFA 控件的焦点。

参数

  [in] | xfa_widget | 将获得焦点的 XFA 控件。

返回
  无。

## ◆ SetPDFPath() [1/2]

void foxit::addon::xfa::XFADoc::SetPDFPath | ( | const char * | pdf_file_path | ) |

设置相关 PDF 文档的路径。

PDF 路径将在函数 XFADoc::ExportData 中使用，作为导出数据的一部分。

参数

  [in] | pdf_file_path | 相关 PDF 文档的文件路径。它可以是绝对路径或 相对路径。它不应该是空字符串。

返回
  无。

## ◆ SetPDFPath() [2/2]

void foxit::addon::xfa::XFADoc::SetPDFPath | ( | const wchar_t * | pdf_file_path | ) |

设置相关 PDF 文档的路径。

PDF 路径将在函数 XFADoc::ExportData 中使用，作为导出数据的一部分。

参数

  [in] | pdf_file_path | 相关 PDF 文档的文件路径。它可以是绝对路径或 相对路径。不应该是空字符串。

返回
  无。

## ◆ StartLoad()

common::Progressive foxit::addon::xfa::XFADoc::StartLoad | ( | common::PauseCallback * | pause = `0` | ) |

开始为当前 XFA 文档加载内容。

加载 XFA 内容可能需要很长时间，因此此函数使用渐进过程来 执行此操作。
相关的 PDF 文档对象已加载，但只加载了 PDF 相关内容。 因此，为了访问 XFA 内容，应调用此函数来加载 XFA 内容。

参数

  [in] | pause | 暂停对象，决定导入过程是否需要暂停。 这可以是 NULL，表示在解析过程中不暂停。 如果不是 NULL，它应该是用户实现的有效暂停对象。 默认值：NULL。

返回
  渐进对象。请通过函数 common::Progressive::GetRateOfProgress 检查当前进度的比率。 如果比率还不是 100，请调用函数 common::Progressive::Continue 继续进度，直到进度完成。