Foxit PDF SDK

构造函数 | 所有成员列表
FSXFADoc类 参考
类 FSXFADoc 继承关系图:

## 构造函数
(BOOL) | - exportData:export_type:
| 将数据导出到文件。 更多...
(BOOL) | - exportDataWithStreamCallback:export_type:
| 将数据导出到 FSFileWriterCallback 对象。 更多...
(void) | - flattenTo:
| 将当前 XFA 文档扁平化到文件。 更多...
(void) | - flattenToWithStreamCallback:
| 将当前 XFA 文档扁平化到文件流。 更多...
(FSXFAPage *) | - getPage:
| 按索引获取 XFA 页面。 更多...
(int) | - getPageCount
| 获取 XFA 页面数量。 更多...
(FSXFADocType) | - getType
| 获取 XFA 文档类型。 更多...
(FSXFAWidget *) | - getWidgetByFullName:
| 获取与指定全名匹配的 XFA 控件。 更多...
(BOOL) | - importData:
| 从 XML 或 XDP 文件导入数据。 更多...
(BOOL) | - importDataWithReaderCallback:
| 从 FSFileReaderCallback 对象导入数据。 更多...
(id) | - initWithDocument:
| 构造函数。 更多...
(id) | - initWithDocument:xfa_doc_provider_handler:
| 构造函数。 更多...
(id) | - initWithOther:
| 构造函数，使用另一个 XFA 文档对象。 更多...
(BOOL) | - isEmpty
| 检查当前对象是否为空。 更多...
(void) | - killFocus
| 取消 XFA 控件的焦点。 更多...
(void) | - processEvent:
| 为当前 XFA 文档中的所有 XFA 控件处理某种事件。 更多...
(void) | - resetForm
| 重置表单。 更多...
(void) | - setDocProviderCallback:
| 设置 XFA 文档提供程序回调。 更多...
(void) | - setFocus:
| 设置 XFA 控件的焦点。 更多...
(void) | - setPDFPath:
| 设置相关 PDF 文档的路径。 更多...
(FSProgressive *) | - startLoad:
| 开始为当前 XFA 文档加载内容。 更多...

## 详细描述

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

参见
  FSTextSearch

## 函数文档

## ◆ exportData:export_type:()

- (bool) exportData: |  | (NSString *) | output_file_path
export_type: |  | (FSXFADocExportDataType) | export_type

将数据导出到文件。

参数

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

返回
  YES 表示成功，NO 表示失败。

## ◆ exportDataWithStreamCallback:export_type:()

- (BOOL) exportDataWithStreamCallback: |  | (id<FSFileWriterCallback>) | stream
export_type: |  | (FSXFADocExportDataType) | export_type

将数据导出到 FSFileWriterCallback 对象。

参数

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

返回
  YES 表示成功，NO 表示失败。

## ◆ flattenTo:()

- (void) flattenTo: |  | (NSString *) | output_file_path |

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

参数

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

返回
  无。

## ◆ flattenToWithStreamCallback:()

- (void) flattenToWithStreamCallback: |  | (id<FSFileStreamCallback>) | stream |

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

参数

  [in] | stream | 用户实现的 FSFileStreamCallback 对象，用于保存扁平化结果。

返回
  无。

## ◆ getPage:()

- (FSXFAPage *) getPage: |  | (int) | page_index |

按索引获取 XFA 页面。

参数

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

返回
  XFA 页面。

## ◆ getPageCount()

- (int) getPageCount |  |  |

获取 XFA 页面数量。

返回
  页面数量。

## ◆ getType()

- (FSXFADocType) getType |  |  |

获取 XFA 文档类型。

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

## ◆ getWidgetByFullName:()

- (FSXFAWidget *) getWidgetByFullName: |  | (NSString *) | full_name |

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

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

参数

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

返回
  XFA 控件对象。

## ◆ importData:()

- (BOOL) importData: |  | (NSString *) | file_path |

从 XML 或 XDP 文件导入数据。

参数

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

返回
  YES 表示成功，NO 表示失败。

## ◆ importDataWithReaderCallback:()

- (BOOL) importDataWithReaderCallback: |  | (id<FSFileReaderCallback>) | file_reader |

从 FSFileReaderCallback 对象导入数据。

参数

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

返回
  YES 表示成功，NO 表示失败。

## ◆ initWithDocument:()

- (id) initWithDocument: |  | (FSPDFDoc*) | document |

构造函数。

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

参数

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

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

## ◆ initWithDocument:xfa_doc_provider_handler:()

- (id) initWithDocument: |  | (FSPDFDoc*) | document
xfa_doc_provider_handler: |  | (id<FSDocProviderCallback>) | xfa_doc_provider_handler

构造函数。

参数

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

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

## ◆ initWithOther:()

- (id) initWithOther: |  | (FSXFADoc*) | other |

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

参数

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

## ◆ isEmpty()

- (BOOL) isEmpty |  |  |

检查当前对象是否为空。

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

返回
  YES 表示当前对象为空，NO 表示不为空。

## ◆ killFocus()

- (void) killFocus |  |  |

取消 XFA 控件的焦点。

返回
  无。

## ◆ processEvent:()

- (void) processEvent: |  | (FSXFADocEventType) | event_type |

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

参数

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

返回
  无。

## ◆ resetForm()

- (void) resetForm |  |  |

重置表单。

返回
  无。

## ◆ setDocProviderCallback:()

- (void) setDocProviderCallback: |  | (id<FSDocProviderCallback>) | doc_provider_callback |

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

参数

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

返回
  无。

## ◆ setFocus:()

- (void) setFocus: |  | (FSXFAWidget*) | xfa_widget |

设置 XFA 控件的焦点。

参数

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

返回
  无。

## ◆ setPDFPath:()

- (void) setPDFPath: |  | (NSString *) | pdf_file_path |

设置相关 PDF 文档的路径。

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

参数

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

返回
  无。

## ◆ startLoad:()

- (FSProgressive *) startLoad: |  | (id<FSPauseCallback>) | pause |

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

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

参数

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

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