|
Foxit PDF SDK
|
Public 成员函数 | |
| Form (const pdf::PDFDoc &document) | |
| 构造函数,使用PDF文档。 更多... | |
| Form (const Form &other) | |
| 构造函数,使用另一个表单对象。 更多... | |
| ~Form () | |
| 析构函数。 | |
| Control | AddControl (const PDFPage &page, const wchar_t *field_name, Field::Type field_type, const RectF &rect) |
| 向指定表单字段添加新的表单控件。如果表单字段不存在,此函数也将 添加表单字段。(不支持签名字段) 更多... | |
| bool | ExportToCSV (const wchar_t *csv_file_path, const wchar_t *pdf_file_name, bool is_append) |
| 将表单数据导出到CSV文件。 更多... | |
| bool | ExportToCSV (foxit::common::file::StreamCallback *csv_file, const wchar_t *pdf_file_name, bool is_append) |
| 将表单数据导出到CSV文件。 更多... | |
| bool | ExportToHTML (const wchar_t *html_file_path, const FieldArray &field_array, bool is_include) |
| 将指定表单字段的数据导出到HTML文件。 更多... | |
| bool | ExportToHTML (foxit::common::file::WriterCallback *html_file, const FieldArray &field_array, bool is_include) |
| 将指定表单字段的数据导出到HTML文件。 更多... | |
| bool | ExportToTXT (const wchar_t *txt_file_path, const FieldArray &field_array, bool is_include) |
| 将指定表单字段的数据导出到TXT文件。 更多... | |
| bool | ExportToTXT (foxit::common::file::WriterCallback *txt_file, const FieldArray &field_array, bool is_include) |
| 将指定表单字段的数据导出到TXT文件。 更多... | |
| bool | ExportToXML (const char *file_path) |
| 将表单数据导出到XML文件。 更多... | |
| bool | ExportToXML (const wchar_t *file_path, const FieldArray &field_array, bool is_include) |
| 将指定表单字段的数据导出到XML文件。 更多... | |
| bool | ExportToXML (foxit::common::file::WriterCallback *xml_file, const FieldArray &field_array, bool is_include) |
| 将指定表单字段的数据导出到XML文件。 更多... | |
| void | FixPageFields (int page_index) |
| 修复在PDF页面中但无法被当前表单对象计数的字段。 更多... | |
| common::Alignment | GetAlignment () const |
| 获取用作文档范围默认值的对齐值。 更多... | |
| Control | GetControl (const PDFPage &page, int index) |
| 在指定PDF页面中通过索引获取表单控件。 更多... | |
| Control | GetControlAtDevicePoint (const PDFPage &page, const PointF &point, float tolerance, Field::Type type, const Matrix *matrix=0) |
| 在设备坐标系统中的指定位置获取表单控件。 更多... | |
| Control | GetControlAtPoint (const PDFPage &page, const PointF &point, float tolerance, Field::Type type) |
| 在PDF坐标系统中的指定位置获取表单控件。 更多... | |
| int | GetControlCount (const PDFPage &page) const |
| 获取指定PDF页面中的表单控件数量。 更多... | |
| DefaultAppearance | GetDefaultAppearance () const |
| 获取默认外观数据。 更多... | |
| objects::PDFDictionary * | GetDict () const |
| 获取当前对象的字典。 更多... | |
| PDFDoc | GetDocument () const |
| 获取与当前表单对象关联的PDF文档。 更多... | |
| Field | GetField (int index, const wchar_t *filter=0) |
| 通过索引获取名称满足指定名称过滤器的表单字段。 更多... | |
| int | GetFieldCount (const wchar_t *filter=0) const |
| 获取名称满足指定名称过滤器的表单字段数量。 更多... | |
| FieldArray | GetFieldsInCalculationOrder () |
| 获取按计算顺序排列的表单字段数组。 更多... | |
| Filler | GetFormFiller () const |
| 获取表单填写器。 更多... | |
| bool | ImportFromXML (const char *file_path) |
| 从XML文件导入表单数据。 更多... | |
| bool | IsEmpty () const |
| 检查当前对象是否为空。 更多... | |
| bool | MoveControl (Control &control, const wchar_t *field_name) |
| 将控件移动到由字段名称指定的字段。 更多... | |
| bool | NeedConstructAppearances () const |
| 检查加载表单控件时是否构造外观。 更多... | |
| bool | operator != (const Form &other) const |
| 不等于操作符。 更多... | |
| Form & | operator= (const Form &other) |
| 赋值操作符。 更多... | |
| bool | operator== (const Form &other) const |
| 等于操作符。 更多... | |
| void | RemoveControl (Control &control) |
| 删除表单控件。(不支持从签名字段删除表单控件) 更多... | |
| void | RemoveField (Field &field) |
| 删除表单字段。(不支持签名字段) 更多... | |
| bool | RenameField (Field &field, const wchar_t *new_field_name) |
| 用新名称重命名字段。 更多... | |
| bool | Reset () |
| 将所有字段(签名字段除外)的数据重置为其默认值。 更多... | |
| void | SetAlignment (common::Alignment alignment) |
| 设置用作文档范围默认值的对齐值。 更多... | |
| void | SetConstructAppearances (bool need_construct) |
| 设置指定加载表单控件时是否构造外观的标志。 更多... | |
| void | SetDefaultAppearance (const DefaultAppearance &default_ap) |
| 设置默认外观数据。 更多... | |
| void | SetFieldsInCalculationOrder (const FieldArray &field_array) |
| 设置按计算顺序排列的表单字段数组。 更多... | |
| bool | ValidateFieldName (Field::Type type, const WString &field_name) |
| 验证字段名称是否可用于指定字段类型的新字段。 更多... | |
Public 成员函数 继承自 foxit::Base | |
| FS_HANDLE | Handle () const |
| 获取当前对象的句柄。 更多... | |
交互式表单——有时称为AcroForm——是一个用于从用户交互式收集信息的字段集合。 PDF文档可能包含出现在页面任意组合上的任意数量的字段,所有这些字段构成跨越整个文档的 单一全局交互式表单。这些字段的任意子集可以从文档导入或导出。
函数pdf::PDFDoc::HasForm可用于判断PDF文档是否有交互式表单。
表单对象可以从指定的PDF文档构造。此类提供检索表单字段 或表单控件、导入/导出表单数据和其他功能的函数。例如:
要从FDF/XFDF文件导入表单数据或将此类数据导出到FDF/XFDF文件,请参考函数 pdf::PDFDoc::ImportFromFDF和pdf::PDFDoc::ExportToFDF。
要填写表单,请通过当前表单对象构造表单填写器对象,或者如果此类对象已经构造, 请通过函数Form::GetFormFiller检索填写器对象。(一个交互式表单只应有一个表单填写器对象)。
|
explicit |
构造函数,使用PDF文档。
如果PDF文档没有AcroForm,此构造函数将向PDF文档添加一个空的AcroForm, 以便稍后可以向PDF文档添加新字段。
| [in] | document | 有效的PDF文档。 |
| foxit::pdf::interform::Form::Form | ( | const Form & | other | ) |
构造函数,使用另一个表单对象。
| [in] | other | 另一个表单对象。 |
| Control foxit::pdf::interform::Form::AddControl | ( | const PDFPage & | page, |
| const wchar_t * | field_name, | ||
| Field::Type | field_type, | ||
| const RectF & | rect | ||
| ) |
向指定表单字段添加新的表单控件。如果表单字段不存在,此函数也将 添加表单字段。(不支持签名字段)
应用程序可以使用此函数添加新的表单控件:
表单字段是否存在,将通过输入参数field_name和field_type来判断。
如果用户想要添加新的签名字段,请使用函数pdf::PDFPage::AddSignature 而不是当前函数。
新添加的表单控件没有外观,因此用户应该使用Control类中的设置方法 或相关PDF字段或控件注释中的设置方法来设置会影响外观的属性。 类interform::Control和Field的一些设置方法可能 直接更新外观,但仍建议调用相关控件注释的函数 annots::Annot::ResetAppearanceStream以确保外观确实会被更新。
对于按钮、复选框、单选按钮,如果用户在不设置任何属性的情况下直接调用函数 annots::Annot::ResetAppearanceStream,将使用默认外观样式:
| [in] | page | 有效的PDF页面,将在其中添加新的表单控件。它应该属于 与当前表单相同的PDF文档。 |
| [in] | field_name | 字段名称。它不应该是空字符串。 |
| [in] | field_type | 字段类型。请参考从Field::e_TypePushButton开始的值, 这应该是其中一个值,除了Field::e_TypeSignature。 如果这是Field::e_TypeSignature,此函数将抛出异常 foxit::e_ErrUnsupported。 |
| [in] | rect | 新表单控件的矩形,指定在PDF页面中的位置。 它应该在PDF坐标系统中。 |
| bool foxit::pdf::interform::Form::ExportToCSV | ( | const wchar_t * | csv_file_path, |
| const wchar_t * | pdf_file_name, | ||
| bool | is_append | ||
| ) |
将表单数据导出到CSV文件。
| [in] | csv_file_path | CSV文件的完整文件路径。这指定了表单数据将导出到的CSV文件。 这不应该是空字符串。 |
| [in] | pdf_file_name | 当前PDF文档的文件名。此文件名将写入CSV文件。 这可以是空字符串。 |
| [in] | is_append | 布尔值,用于决定如果CSV文件存在,表单数据是否追加到CSV文件: true 表示将表单数据追加到现有CSV文件,false 表示不追加。 |
| bool foxit::pdf::interform::Form::ExportToCSV | ( | foxit::common::file::StreamCallback * | csv_file, |
| const wchar_t * | pdf_file_name, | ||
| bool | is_append | ||
| ) |
将表单数据导出到CSV文件。
| [in] | csv_file | 用户实现的common::file::StreamCallback对象,用于将表单数据保存到CSV文件。 它不应该是NULL。请不要在写入回调函数中使用追加模式。 |
| [in] | pdf_file_name | 当前PDF文档的文件名。此文件名将写入CSV文件。 可以是空字符串。 |
| [in] | is_append | 用于决定如果CSV文件存在时是否将表单数据追加到CSV文件的布尔值: true 表示将表单数据追加到现有CSV文件,false 表示不追加。 |
| bool foxit::pdf::interform::Form::ExportToHTML | ( | const wchar_t * | html_file_path, |
| const FieldArray & | field_array, | ||
| bool | is_include | ||
| ) |
将指定表单字段的数据导出到HTML文件。
| [in] | html_file_path | HTML文件的完整文件路径,指定表单字段的数据将导出到该文件。 它不应该是空字符串。 |
| [in] | field_array | 表单字段数组。参数is_include将决定是否导出这些表单字段的数据。 如果这是一个空数组,表示将导出所有表单字段的数据。 |
| [in] | is_include | 用于决定是否导出指定表单字段数据的布尔值: true 表示将导出指定表单字段的数据,false 表示不导出指定表单字段的数据。 |
| bool foxit::pdf::interform::Form::ExportToHTML | ( | foxit::common::file::WriterCallback * | html_file, |
| const FieldArray & | field_array, | ||
| bool | is_include | ||
| ) |
将指定表单字段的数据导出到HTML文件。
| [in] | html_file | 用户实现的common::file::WriterCallback对象, 用于将指定表单字段的数据保存到HTML文件。它不应该是NULL。 |
| [in] | field_array | 表单字段数组。参数is_include将决定是否导出这些表单字段的数据。 如果这是一个空数组,表示将导出所有表单字段的数据。 |
| [in] | is_include | 用于决定是否导出指定表单字段数据的布尔值: true 表示将导出指定表单字段的数据,false 表示不导出指定表单字段的数据。 |
| bool foxit::pdf::interform::Form::ExportToTXT | ( | const wchar_t * | txt_file_path, |
| const FieldArray & | field_array, | ||
| bool | is_include | ||
| ) |
将指定表单字段的数据导出到TXT文件。
| [in] | txt_file_path | TXT文件的完整文件路径,指定表单字段的数据将导出到该文件。 它不应该是空字符串。 |
| [in] | field_array | 表单字段数组。参数is_include将决定是否导出这些表单字段的数据。 如果这是一个空数组,表示将导出所有表单字段的数据。 |
| [in] | is_include | 用于决定是否导出指定表单字段数据的布尔值: true 表示将导出指定表单字段的数据,false 表示不导出指定表单字段的数据。 |
| bool foxit::pdf::interform::Form::ExportToTXT | ( | foxit::common::file::WriterCallback * | txt_file, |
| const FieldArray & | field_array, | ||
| bool | is_include | ||
| ) |
将指定表单字段的数据导出到TXT文件。
| [in] | txt_file | 用户实现的common::file::WriterCallback对象, 用于将指定表单字段的数据保存到TXT文件。它不应该是NULL。 |
| [in] | field_array | 表单字段数组。参数is_include将决定是否导出这些表单字段的数据。 如果这是一个空数组,表示将导出所有表单字段的数据。 |
| [in] | is_include | 用于决定是否导出指定表单字段数据的布尔值: true 表示将导出指定表单字段的数据,false 表示不导出指定表单字段的数据。 |
| bool foxit::pdf::interform::Form::ExportToXML | ( | const char * | file_path | ) |
将表单数据导出到XML文件。
| [in] | file_path | XML文件的完整文件路径。 这指定了表单数据将导出到的XML文件。 |
| bool foxit::pdf::interform::Form::ExportToXML | ( | const wchar_t * | file_path, |
| const FieldArray & | field_array, | ||
| bool | is_include | ||
| ) |
将指定表单字段的数据导出到XML文件。
| [in] | file_path | XML文件的完整文件路径,指定表单字段的数据将导出到此文件。 |
| [in] | field_array | 表单字段数组。参数is_include将决定是否 导出这些表单字段的数据。如果这是空数组,意味着将导出所有表单字段的数据。 |
| [in] | is_include | 布尔值,用于决定是否导出指定表单字段的数据: true 表示导出指定表单字段的数据,false 表示 不导出指定表单字段的数据。 |
| bool foxit::pdf::interform::Form::ExportToXML | ( | foxit::common::file::WriterCallback * | xml_file, |
| const FieldArray & | field_array, | ||
| bool | is_include | ||
| ) |
将指定表单字段的数据导出到XML文件。
| [in] | xml_file | 用户实现的common::file::WriterCallback对象, 用于将指定表单字段的数据保存到XML文件。这不应该是NULL。 |
| [in] | field_array | 表单字段数组。参数is_include将决定是否 导出这些表单字段的数据。如果这是空数组,意味着将导出所有表单字段的数据。 |
| [in] | is_include | 布尔值,用于决定是否导出指定表单字段的数据: true 表示导出指定表单字段的数据,false 表示 不导出指定表单字段的数据。 |
| void foxit::pdf::interform::Form::FixPageFields | ( | int | page_index | ) |
修复在PDF页面中但无法被当前表单对象计数的字段。
如果指定页面中有许多字段,可能会花费很长时间。
| [in] | page_index | 页面索引。有效范围:从0到(count-1)。 count由函数PDFDoc::GetPageCount返回。 |
| common::Alignment foxit::pdf::interform::Form::GetAlignment | ( | ) | const |
获取用作文档范围默认值的对齐值。
对齐是可变文本的属性。仅适用于文本字段、列表框和组合框, 这些字段可能包含可变文本作为其内容。
如果文本字段或列表框有自己的对齐值,则将忽略文档范围的默认对齐值; 否则,将为文本字段或列表框使用文档范围的默认值。
在指定PDF页面中通过索引获取表单控件。
| [in] | page | 有效的PDF页面对象。它应该属于与当前表单相同的PDF文档。 |
| [in] | index | 要检索的表单控件索引。有效范围:从0到(count-1)。 count由函数Field::GetControlCount使用 相同参数page返回。 |
| Control foxit::pdf::interform::Form::GetControlAtDevicePoint | ( | const PDFPage & | page, |
| const PointF & | point, | ||
| float | tolerance, | ||
| Field::Type | type, | ||
| const Matrix * | matrix = 0 |
||
| ) |
在设备坐标系统中的指定位置获取表单控件。
| [in] | page | 有效的PDF页面对象。它应该与当前表单在同一文档中。 |
| [in] | point | 设备坐标系统中的位置。 |
| [in] | tolerance | 容差值。有效范围:0.0f到30.0f。 |
| [in] | type | 将检索其表单控件的字段类型。请参考从 Field::e_TypeUnknown开始的值,这应该是其中一个值。 Field::e_TypeUnknown表示不关心字段类型, 只检索指定位置的第一个表单控件。 |
| [in] | matrix | 变换矩阵。通常这由函数 pdf::PDFPage::GetDisplayMatrix返回。如果这是NULL, 当前函数将具有与函数Form::GetControlAtPoint相同的功能。 默认值:NULL。 |
| Control foxit::pdf::interform::Form::GetControlAtPoint | ( | const PDFPage & | page, |
| const PointF & | point, | ||
| float | tolerance, | ||
| Field::Type | type | ||
| ) |
在PDF坐标系统中的指定位置获取表单控件。
| [in] | page | 有效的PDF页面对象。它应该与当前表单在同一文档中。 |
| [in] | point | PDF坐标系统中的位置。 |
| [in] | tolerance | 容差值。有效范围:0.0f到30.0f。 |
| [in] | type | 将检索其表单控件的字段类型。请参考从 Field::e_TypeUnknown开始的值,这应该是其中一个值。 Field::e_TypeUnknown表示不关心字段类型, 只检索指定位置的第一个表单控件。 |
| int foxit::pdf::interform::Form::GetControlCount | ( | const PDFPage & | page | ) | const |
获取指定PDF页面中的表单控件数量。
| [in] | page | 有效的PDF页面对象。它应该属于与当前表单相同的PDF文档。 |
| DefaultAppearance foxit::pdf::interform::Form::GetDefaultAppearance | ( | ) | const |
获取默认外观数据。
| objects::PDFDictionary* foxit::pdf::interform::Form::GetDict | ( | ) | const |
获取当前对象的字典。
| PDFDoc foxit::pdf::interform::Form::GetDocument | ( | ) | const |
获取与当前表单对象关联的PDF文档。
| Field foxit::pdf::interform::Form::GetField | ( | int | index, |
| const wchar_t * | filter = 0 |
||
| ) |
通过索引获取名称满足指定名称过滤器的表单字段。
| [in] | index | 要检索的表单字段索引。有效范围:从0到(count-1)。 count由函数Form::GetFieldCount使用 相同参数filter返回。 |
| [in] | filter | 过滤器字符串。如果这是空字符串,意味着 计算所有表单字段;如果这是有效的,意味着计算那些名称 部分匹配参数filter的表单字段。例如, 如果参数filter是"text1",过滤器将匹配text1.0、text1.2.0等; 但不匹配test10或test11.1。 默认值:空字符串。 |
| int foxit::pdf::interform::Form::GetFieldCount | ( | const wchar_t * | filter = 0 | ) | const |
获取名称满足指定名称过滤器的表单字段数量。
| [in] | filter | 过滤器字符串。如果这是空字符串,意味着 计算所有表单字段;如果这是有效的,意味着计算那些名称 部分匹配参数filter的表单字段。例如, 如果参数filter是"text1",过滤器将匹配text1.0、text1.2.0等; 但不匹配test10或test11.1。 默认值:空字符串。 |
| FieldArray foxit::pdf::interform::Form::GetFieldsInCalculationOrder | ( | ) |
获取按计算顺序排列的表单字段数组。
计算顺序定义当任何字段的值更改时,字段值将重新计算的顺序。 通常,这些字段具有计算操作。
| Filler foxit::pdf::interform::Form::GetFormFiller | ( | ) | const |
获取表单填写器。
| bool foxit::pdf::interform::Form::ImportFromXML | ( | const char * | file_path | ) |
从XML文件导入表单数据。
| [in] | file_path | 现有XML文件的完整文件路径。 这指定了将从中导入表单数据的XML文件。 |
| bool foxit::pdf::interform::Form::IsEmpty | ( | ) | const |
检查当前对象是否为空。
当当前对象为空时,意味着当前对象无用。
| bool foxit::pdf::interform::Form::MoveControl | ( | Control & | control, |
| const wchar_t * | field_name | ||
| ) |
将控件移动到由字段名称指定的字段。
当前函数对不同情况的操作:
| [in] | control | 有效的表单控件对象。 |
| [in] | field_name | 字段名称。它不应该是空字符串。 |
| bool foxit::pdf::interform::Form::NeedConstructAppearances | ( | ) | const |
检查加载表单控件时是否构造外观。
| bool foxit::pdf::interform::Form::operator != | ( | const Form & | other | ) | const |
不等于操作符。
| [in] | other | 另一个对象。此函数将检查当前对象是否不等于此对象。 |
赋值操作符。
| [in] | other | 另一个表单对象,其值将被赋给当前对象。 |
| bool foxit::pdf::interform::Form::operator== | ( | const Form & | other | ) | const |
等于操作符。
| [in] | other | 另一个对象。此函数将检查当前对象是否等于此对象。 |
| void foxit::pdf::interform::Form::RemoveControl | ( | Control & | control | ) |
删除表单控件。(不支持从签名字段删除表单控件)
如果指定的表单控件是相关表单字段的唯一表单控件,相关表单字段也将被删除。
| [in] | control | 要删除的表单控件。如果相关表单字段的字段类型是 Field::e_TypeSignature,此函数将抛出异常foxit::e_ErrUnsupported。 |
| void foxit::pdf::interform::Form::RemoveField | ( | Field & | field | ) |
删除表单字段。(不支持签名字段)
如果表单字段出现在多个PDF页面上,所有表示都将被删除。
如果用户想要删除签名字段,请使用函数pdf::PDFDoc::RemoveSignature 而不是当前函数。
| [in] | field | 要删除的表单字段。如果字段类型是Field::e_TypeSignature, 此函数将抛出异常foxit::e_ErrUnsupported。 |
| bool foxit::pdf::interform::Form::RenameField | ( | Field & | field, |
| const wchar_t * | new_field_name | ||
| ) |
用新名称重命名字段。
| [in] | field | 有效的表单字段对象。 |
| [in] | new_field_name | 新的字段名称。它不应该是空字符串。 |
| bool foxit::pdf::interform::Form::Reset | ( | ) |
将所有字段(签名字段除外)的数据重置为其默认值。
| void foxit::pdf::interform::Form::SetAlignment | ( | common::Alignment | alignment | ) |
设置用作文档范围默认值的对齐值。
对齐是可变文本的属性。仅适用于文本字段、列表框和组合框, 这些字段可能包含可变文本作为其内容。
如果文本字段或列表框有自己的对齐值,则将忽略文档范围的默认对齐值; 否则,将为文本字段或列表框使用文档范围的默认值。
| [in] | alignment | 可变文本的新默认对齐类型。请参考从 common::e_AlignmentLeft开始的值,这应该是其中一个值。 如果使用其他值设置,默认将使用common::e_AlignmentLeft。 |
| void foxit::pdf::interform::Form::SetConstructAppearances | ( | bool | need_construct | ) |
设置指定加载表单控件时是否构造外观的标志。
| [in] | need_construct | true 表示加载表单控件时构造外观, false 表示不构造。 |
| void foxit::pdf::interform::Form::SetDefaultAppearance | ( | const DefaultAppearance & | default_ap | ) |
设置默认外观数据。
| [in] | default_ap | 新的默认外观。输入数据的flags可用于决定 哪些信息要用新数据更新;对于那些没有更新的数据, 它们将继续使用旧数据。 如果输入默认外观数据的text_size为0,意味着文本大小 应该自动计算。 |
| void foxit::pdf::interform::Form::SetFieldsInCalculationOrder | ( | const FieldArray & | field_array | ) |
设置按计算顺序排列的表单字段数组。
计算顺序定义当任何字段的值更改时,字段值将重新计算的顺序。 通常,这些字段具有计算操作。
| [in] | field_array | 表单字段数组,用于指定新的计算顺序。 |
| bool foxit::pdf::interform::Form::ValidateFieldName | ( | Field::Type | type, |
| const WString & | field_name | ||
| ) |
验证字段名称是否可用于指定字段类型的新字段。
此方法可用于检查字段名称是否可用于指定字段类型的新字段。 建议用户在使用函数Form::AddControl添加带有新控件的新字段之前 调用此函数。
| [in] | type | 字段类型,将为其验证输入的字段名称。 |
| [in] | field_name | 字符串值。它不应该是空字符串。 |