Foxit PDF SDK
FSDK::Form类 参考

Public 成员函数

 AddControl (page, field_name, field_type, rect)
 将新表单控件添加到指定的表单字段。如果表单字段不存在,此函数也将 添加表单字段。(不支持签名字段) 更多...
 
 constructor (document)
 带有PDF文档的构造函数。 更多...
 
 ExportToCSV (csv_file, pdf_file_name, is_append)
 将表单数据导出到 CSV 文件。 更多...
 
 ExportToCSV (csv_file_path, pdf_file_name, is_append)
 将表单数据导出到 CSV 文件。 更多...
 
 ExportToHTML (html_file, field_array, is_include)
 将指定表单字段的数据导出到 HTML 文件。 更多...
 
 ExportToHTML (html_file_path, field_array, is_include)
 将指定表单字段的数据导出到 HTML 文件。 更多...
 
 ExportToTXT (txt_file, field_array, is_include)
 将指定表单字段的数据导出到 TXT 文件。 更多...
 
 ExportToTXT (txt_file_path, field_array, is_include)
 将指定表单字段的数据导出到 TXT 文件。 更多...
 
 ExportToXML (file_path)
 将表单数据导出到 XML 文件。 更多...
 
 ExportToXML (file_path, field_array, is_include)
 将指定表单字段的数据导出到 XML 文件。 更多...
 
 ExportToXML (xml_file, field_array, is_include)
 将指定表单字段的数据导出到 XML 文件。 更多...
 
 FixPageFields (page_index)
 修复 PDF 页面中存在但无法被当前表单对象计数的字段。 更多...
 
 GetAlignment ()
 获取用作文档范围默认值的对齐值。 更多...
 
 GetControl (page, index)
 在指定的 PDF 页面中,通过索引获取表单控件。 更多...
 
 GetControlAtDevicePoint (page, point, tolerance, type, matrix)
 在设备坐标系中,获取指定位置的表单控件。 更多...
 
 GetControlAtPoint (page, point, tolerance, type)
 PDF坐标系 中,获取指定位置的表单控件。 更多...
 
 GetControlCount (page)
 获取指定 PDF 页面中的表单控件数量。 更多...
 
 GetDefaultAppearance ()
 获取默认外观数据。 更多...
 
 GetDict ()
 获取当前对象的字典。 更多...
 
 GetDocument ()
 获取与当前表单对象关联的PDF文档。 更多...
 
 GetField (index, filter)
 通过索引获取表单字段,其名称满足指定的名称过滤器。 更多...
 
 GetFieldCount (filter)
 获取名称满足指定名称过滤器的表单字段数量。 更多...
 
 GetFieldsInCalculationOrder ()
 获取计算顺序中的表单字段数组。 更多...
 
 GetFormFiller ()
 获取表单填写器。 更多...
 
 ImportFromXML (file_path)
 从 XML 文件导入表单数据。 更多...
 
 IsEmpty ()
 检查当前对象是否为空。 更多...
 
 MoveControl (control, field_name)
 将控件移动到由字段名称指定的字段。 更多...
 
 NeedConstructAppearances ()
 检查加载表单控件时是否构建外观。 更多...
 
 RemoveControl (control)
 移除表单控件。(不支持从签名字段移除表单控件) 更多...
 
 RemoveField (field)
 移除表单字段。(不支持签名字段) 更多...
 
 RenameField (field, new_field_name)
 用新名称重命名字段。 更多...
 
 Reset ()
 Reset data of all fields (except signature fields) to their default value. 更多...
 
 SetAlignment (alignment)
 设置用作文档范围默认值的对齐值。 更多...
 
 SetConstructAppearances (need_construct)
 设置一个标志,指定在加载表单控件时是否构建外观。 更多...
 
 SetDefaultAppearance (default_ap)
 设置默认外观数据。 更多...
 
 SetFieldsInCalculationOrder (field_array)
 设置计算顺序中的表单字段数组。 更多...
 
 ValidateFieldName (type, field_name)
 验证字段名是否可用于指定字段类型的新字段。 更多...
 

详细描述

交互式表单(有时称为 AcroForm)是用于以交互方式从用户收集信息的字段集合。 PDF 文档可以包含出现在任何页面组合上的任意数量的字段, 所有这些字段构成跨越整个文档的单个全局交互式表单。这些字段的任意子集 可以从文档导入或导出。
函数 FSDK.PDFDoc.HasForm 可用于判断 PDF 文档是否具有交互式表单。
可以从指定的 PDF 文档构造表单对象。此类提供检索表单字段 或表单控件、导入/导出表单数据和其他功能。例如:

要从FDF/XFDF文件导入表单数据或将此类数据导出到FDF/XFDF文件,请参阅函数 FSDK.PDFDoc.ImportFromFDFFSDK.PDFDoc.ExportToFDF
要填写表单,请通过当前表单对象构造一个表单填写器对象,或如果此类对象已被构造, 则通过函数 FSDK.Form.GetFormFiller 检索填写器对象。(一个交互式表单应该只有一个表单填写器对象)。

参见
FSDK.PDFDoc
FSDK.Filler

成员函数说明

◆ AddControl()

FSDK::Form::AddControl ( page  ,
field_name  ,
field_type  ,
rect   
)

将新表单控件添加到指定的表单字段。如果表单字段不存在,此函数也将 添加表单字段。(不支持签名字段)

应用程序可以使用此函数添加新的表单控件:

  • 如果指定的表单字段存在,将创建一个新的表单控件并设置到该字段。
  • 如果指定的表单字段不存在,将根据 参数 field_namefield_type 创建新的表单字段并添加到表单, 同时创建新的表单控件。

表单字段是否存在,将根据输入参数 field_namefield_type 判断。
如果用户想要添加新的签名字段,请使用函数 FSDK.PDFPage.AddSignature 而不是当前函数。
新添加的表单控件没有外观,因此用户应使用 Control 类中的设置方法 或相关 pdf 字段或微件注释中的方法来设置将影响外观的属性。 类 FSDK.ControlFSDK.Field 的某些设置方法可能 直接更新外观,但仍建议调用相关微件注释的函数 FSDK.Annot.ResetAppearanceStream 以确保外观确实 被更新。
对于按钮、复选框、单选按钮,如果用户直接调用函数 FSDK.Annot.ResetAppearanceStream 而不设置任何属性, 将使用默认外观样式:

  • 按钮:在相关微件注释中,背景颜色(在 MK 字典中)= 0xC0C0C0, 高亮模式 = FSDK.Annot.e_HighlightingPush
  • 复选框/单选按钮:在相关微件注释中,边框宽度 = 1.0, 边框样式 = FSDK.BorderInfo.e_Solid, 背景颜色(在 MK 字典中)= 0xFFFFFF,边框颜色(在 MK 字典中)= 0xFFFFFF。
参数
[in]page有效的 PDF 页面,新表单控件将添加到该页面。它应属于 与当前表单相同的 PDF 文档。
[in]field_name字段名称。它不应该是空字符串。
[in]field_type字段类型。请参考从 FSDK.Field.e_TypePushButton 开始的值,并且 这应该是这些值中的一个(除了 FSDK.Field.e_TypeSignature)。 如果这是 FSDK.Field.e_TypeSignature,此函数将抛出异常 FSDK.e_ErrUnsupported
[in]rect新表单控件的矩形,指定在 PDF 页面中的位置。 它应该在 PDF 坐标系 中。
返回
新添加的表单控件对象。

◆ constructor()

FSDK::Form::constructor ( document  )

带有PDF文档的构造函数。

如果PDF文档没有AcroForm,此构造函数将向PDF文档添加一个空的AcroForm, 以便稍后可以将新字段添加到PDF文档。

参数
[in]document有效的PDF文档。

◆ ExportToCSV() [1/2]

FSDK::Form::ExportToCSV ( csv_file  ,
pdf_file_name  ,
is_append   
)

将表单数据导出到 CSV 文件。

参数
[in]csv_file由用户实现的 FSDK.StreamCallback 对象,用于将表单数据保存到 CSV 文件。 这不应该是 null。请不要在写入回调函数中使用追加模式。
[in]pdf_file_name当前 PDF 文档的文件名。此文件名将写入 CSV 文件。 这可以是空字符串。
[in]is_append布尔值,用于决定如果 CSV 文件存在,表单数据是否附加到 CSV 文件: true 表示将表单数据附加到现有的 CSV 文件,而 false 表示不附加。
返回
true 表示成功,而 false 表示失败。

◆ ExportToCSV() [2/2]

FSDK::Form::ExportToCSV ( csv_file_path  ,
pdf_file_name  ,
is_append   
)

将表单数据导出到 CSV 文件。

参数
[in]csv_file_pathCSV 文件的完整文件路径。这指定表单数据将导出到的 CSV 文件。 这不应该是空字符串。
[in]pdf_file_name当前 PDF 文档的文件名。此文件名将写入 CSV 文件。 这可以是空字符串。
[in]is_append布尔值,用于决定如果 CSV 文件存在,表单数据是否附加到 CSV 文件: true 表示将表单数据附加到现有的 CSV 文件,而 false 表示不附加。
返回
true 表示成功,而 false 表示失败。

◆ ExportToHTML() [1/2]

FSDK::Form::ExportToHTML ( html_file  ,
field_array  ,
is_include   
)

将指定表单字段的数据导出到 HTML 文件。

参数
[in]html_file由用户实现的 FSDK.FileWriterCallback 对象,用于 将指定表单字段的数据保存到 HTML 文件。这不应该是 null
[in]field_array表单字段数组。参数 is_include 将决定这些表单字段的数据是否 要导出。如果这是空数组,则意味着将导出所有表单字段的数据。
[in]is_include布尔值,用于决定是否导出指定表单字段的数据: true 表示要导出指定表单字段的数据,而 false 表示 不导出指定表单字段的数据。
返回
true 表示成功,而 false 表示失败。

◆ ExportToHTML() [2/2]

FSDK::Form::ExportToHTML ( html_file_path  ,
field_array  ,
is_include   
)

将指定表单字段的数据导出到 HTML 文件。

参数
[in]html_file_pathHTML 文件的完整文件路径,指定表单字段的数据将导出到该文件。 这不应该是空字符串。
[in]field_array表单字段数组。参数 is_include 将决定这些表单字段的数据是否 要导出。如果这是空数组,则意味着将导出所有表单字段的数据。
[in]is_include布尔值,用于决定是否导出指定表单字段的数据: true 表示要导出指定表单字段的数据,而 false 表示 不导出指定表单字段的数据。
返回
true 表示成功,而 false 表示失败。

◆ ExportToTXT() [1/2]

FSDK::Form::ExportToTXT ( txt_file  ,
field_array  ,
is_include   
)

将指定表单字段的数据导出到 TXT 文件。

参数
[in]txt_file由用户实现的 FSDK.FileWriterCallback 对象,用于 将指定表单字段的数据保存到 TXT 文件。这不应该是 null
[in]field_array表单字段数组。参数 is_include 将决定这些表单字段的数据是否 要导出。如果这是空数组,则意味着将导出所有表单字段的数据。
[in]is_include布尔值,用于决定是否导出指定表单字段的数据: true 表示要导出指定表单字段的数据,而 false 表示 不导出指定表单字段的数据。
返回
true 表示成功,而 false 表示失败。

◆ ExportToTXT() [2/2]

FSDK::Form::ExportToTXT ( txt_file_path  ,
field_array  ,
is_include   
)

将指定表单字段的数据导出到 TXT 文件。

参数
[in]txt_file_pathTXT 文件的完整文件路径,指定表单字段的数据将导出到该文件。 这不应该是空字符串。
[in]field_array表单字段数组。参数 is_include 将决定这些表单字段的数据是否 要导出。如果这是空数组,则意味着将导出所有表单字段的数据。
[in]is_include布尔值,用于决定是否导出指定表单字段的数据: true 表示要导出指定表单字段的数据,而 false 表示 不导出指定表单字段的数据。
返回
true 表示成功,而 false 表示失败。

◆ ExportToXML() [1/3]

FSDK::Form::ExportToXML ( file_path  )

将表单数据导出到 XML 文件。

参数
[in]file_pathXML 文件的完整文件路径。 这指定表单数据将导出到的 XML 文件。
返回
true 表示成功,而 false 表示失败。

◆ ExportToXML() [2/3]

FSDK::Form::ExportToXML ( file_path  ,
field_array  ,
is_include   
)

将指定表单字段的数据导出到 XML 文件。

参数
[in]file_pathXML 文件的完整文件路径,指定表单字段的数据将导出到该文件。
[in]field_array表单字段数组。参数 is_include 将决定这些表单字段的数据是否 要导出。如果这是空数组,则意味着将导出所有表单字段的数据。
[in]is_include布尔值,用于决定是否导出指定表单字段的数据: true 表示要导出指定表单字段的数据,而 false 表示 不导出指定表单字段的数据。
返回
true 表示成功,而 false 表示失败。

◆ ExportToXML() [3/3]

FSDK::Form::ExportToXML ( xml_file  ,
field_array  ,
is_include   
)

将指定表单字段的数据导出到 XML 文件。

参数
[in]xml_file由用户实现的 FSDK.FileWriterCallback 对象,用于 将指定表单字段的数据保存到 XML 文件。这不应该是 null
[in]field_array表单字段数组。参数 is_include 将决定这些表单字段的数据是否 要导出。如果这是空数组,则意味着将导出所有表单字段的数据。
[in]is_include布尔值,用于决定是否导出指定表单字段的数据: true 表示要导出指定表单字段的数据,而 false 表示 不导出指定表单字段的数据。
返回
true 表示成功,而 false 表示失败。

◆ FixPageFields()

FSDK::Form::FixPageFields ( page_index  )

修复 PDF 页面中存在但无法被当前表单对象计数的字段。

如果指定页面中有许多字段,可能会花费很多时间。

参数
[in]page_index页面索引。有效范围:从 0 到 (count-1)。 count 由函数 FSDK.PDFDoc.GetPageCount 返回。
返回
无。

◆ GetAlignment()

FSDK::Form::GetAlignment ( )

获取用作文档范围默认值的对齐值。

对齐是可变文本的属性。它仅适用于文本字段、列表框和组合框, 它们可能包含可变文本作为其内容。
如果文本字段或列表框有自己的对齐值,则将忽略文档范围的默认对齐值; 否则,将对文本字段或列表框使用文档范围的默认值。

返回
对齐值。请参阅从 FSDK.e_AlignmentLeft 开始的值,并且 这将是这些值中的一个。

◆ GetControl()

FSDK::Form::GetControl ( page  ,
index   
)

在指定的 PDF 页面中,通过索引获取表单控件。

参数
[in]page有效的 PDF 页面对象。它应属于与当前表单相同的 PDF 文档。
[in]index要检索的表单控件的索引。有效范围:从 0 到 (count-1)。 count 由函数 FSDK.Field.GetControlCount 使用 相同参数 page 返回。
返回
表单控件对象。

◆ GetControlAtDevicePoint()

FSDK::Form::GetControlAtDevicePoint ( page  ,
point  ,
tolerance  ,
type  ,
matrix   
)

在设备坐标系中,获取指定位置的表单控件。

参数
[in]page有效的PDF页面对象。它应与当前表单在同一文档中。
[in]point设备坐标系中的位置。
[in]tolerance容差值。有效范围:0.0f 到 30.0f。
[in]type将检索其表单控件的字段类型。请参阅从 FSDK.Field.e_TypeUnknown 开始的值,这应该是这些值中的一个。 FSDK.Field.e_TypeUnknown 表示不关心字段类型, 只检索指定位置的第一个表单控件。
[in]matrix变换矩阵。通常由函数 FSDK.PDFPage.GetDisplayMatrix 返回。如果这是 null, 当前函数将具有与函数 FSDK.Form.GetControlAtPoint 相同的功能。 默认值:null
返回
表单控件对象。如果返回的表单控件对象的函数 FSDK.Control.IsEmpty 的返回值为 true,则意味着在指定位置附近没有合适的表单控件。

◆ GetControlAtPoint()

FSDK::Form::GetControlAtPoint ( page  ,
point  ,
tolerance  ,
type   
)

PDF坐标系 中,获取指定位置的表单控件。

参数
[in]page有效的PDF页面对象。它应与当前表单在同一文档中。
[in]pointPDF坐标系 中的位置。
[in]tolerance容差值。有效范围:0.0f 到 30.0f。
[in]type将检索其表单控件的字段类型。请参阅从 FSDK.Field.e_TypeUnknown 开始的值,这应该是这些值中的一个。 FSDK.Field.e_TypeUnknown 表示不关心字段类型, 只检索指定位置的第一个表单控件。
返回
表单控件对象。如果返回的表单控件对象的函数 FSDK.Control.IsEmpty 的返回值为 true,则意味着在指定位置附近没有合适的表单控件。

◆ GetControlCount()

FSDK::Form::GetControlCount ( page  )

获取指定 PDF 页面中的表单控件数量。

参数
[in]page有效的 PDF 页面对象。它应属于与当前表单相同的 PDF 文档。
返回
指定 PDF 页面中的表单控件数量。

◆ GetDefaultAppearance()

FSDK::Form::GetDefaultAppearance ( )

获取默认外观数据。

返回
默认外观数据。

◆ GetDict()

FSDK::Form::GetDict ( )

获取当前对象的字典。

返回
当前对象的字典。如果有任何错误,此函数将返回 null

◆ GetDocument()

FSDK::Form::GetDocument ( )

获取与当前表单对象关联的PDF文档。

返回
PDF文档对象。

◆ GetField()

FSDK::Form::GetField ( index  ,
filter   
)

通过索引获取表单字段,其名称满足指定的名称过滤器。

参数
[in]index要检索的表单字段的索引。有效范围:从 0 到 (count-1)。 count 由函数 FSDK.Form.GetFieldCount 使用 相同参数 filter 返回。
[in]filter过滤字符串。如果这是空字符串,则意味着 计算所有表单字段;如果这是有效值,则意味着计算那些 名称与参数 filter 部分匹配的表单字段。例如, 如果参数 filter 是 "text1",过滤器将匹配 text1.0、text1.2.0 等; 但不匹配 test10 或 test11.1。
默认值:空字符串。
返回
表单字段对象。

◆ GetFieldCount()

FSDK::Form::GetFieldCount ( filter  )

获取名称满足指定名称过滤器的表单字段数量。

参数
[in]filter过滤字符串。如果这是空字符串,则意味着 计算所有表单字段;如果这是有效值,则意味着计算那些 名称与参数 filter 部分匹配的表单字段。例如, 如果参数 filter 是 "text1",过滤器将匹配 text1.0、text1.2.0 等; 但不匹配 test10 或 test11.1。
默认值:空字符串。
返回
具有指定名称过滤器的表单字段数量。

◆ GetFieldsInCalculationOrder()

FSDK::Form::GetFieldsInCalculationOrder ( )

获取计算顺序中的表单字段数组。

计算顺序定义了当任何字段的值更改时, 字段值将被重新计算的顺序。通常,这些字段具有计算操作。

返回
计算顺序中的表单字段数组。

◆ GetFormFiller()

FSDK::Form::GetFormFiller ( )

获取表单填写器。

返回
填写器对象。如果返回的填写器对象的函数 FSDK.Filler.IsEmpty 的返回值为 true,则意味着表单填写器尚未构造。 对于这种情况,请使用当前表单构造一个填写器。

◆ ImportFromXML()

FSDK::Form::ImportFromXML ( file_path  )

从 XML 文件导入表单数据。

参数
[in]file_path现有 XML 文件的完整文件路径。 这指定将从中导入表单数据的 XML 文件。
返回
true 表示成功,而 false 表示失败。

◆ IsEmpty()

FSDK::Form::IsEmpty ( )

检查当前对象是否为空。

当当前对象为空时,这意味着当前对象是无用的。

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

◆ MoveControl()

FSDK::Form::MoveControl ( control  ,
field_name   
)

将控件移动到由字段名称指定的字段。

当前函数针对不同情况的操作:

  • 如果字段名称指定的字段不存在,将使用该字段名称创建新字段, 并将控件移动到此新字段。
  • 如果字段名称指定的字段存在,并且字段类型与 控件当前所属的字段相同,则控件将合并到此字段。
  • 如果字段名称指定的字段存在,但字段类型与 控件当前所属的字段不同,此函数将抛出异常 FSDK.e_ErrConflict
参数
[in]control有效的表单控件对象。
[in]field_name字段名称。它不应该是空字符串。
返回
true 表示成功,而 false 表示失败。

◆ NeedConstructAppearances()

FSDK::Form::NeedConstructAppearances ( )

检查加载表单控件时是否构建外观。

返回
true 表示在加载表单控件时构建外观,而 false 表示不构建。

◆ RemoveControl()

FSDK::Form::RemoveControl ( control  )

移除表单控件。(不支持从签名字段移除表单控件)

如果指定的表单控件是相关表单字段的唯一表单控件,则相关表单字段也将 被移除。

参数
[in]control要移除的表单控件。如果相关表单字段的字段类型是 FSDK.Field.e_TypeSignature,此函数将抛出异常 FSDK.e_ErrUnsupported
返回
无。

◆ RemoveField()

FSDK::Form::RemoveField ( field  )

移除表单字段。(不支持签名字段)

如果表单字段出现在多个 PDF 页面上,所有表示形式都将被移除。
如果用户想要移除签名字段,请使用函数 FSDK.PDFDoc.RemoveSignature 而不是当前函数。

参数
[in]field要移除的表单字段。如果字段类型是 FSDK.Field.e_TypeSignature, 此函数将抛出异常 FSDK.e_ErrUnsupported
返回
无。

◆ RenameField()

FSDK::Form::RenameField ( field  ,
new_field_name   
)

用新名称重命名字段。

参数
[in]field有效的表单字段对象。
[in]new_field_name新的字段名称。它不应该是空字符串。
返回
true 表示成功,而 false 表示失败。

◆ Reset()

FSDK::Form::Reset ( )

Reset data of all fields (except signature fields) to their default value.

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

◆ SetAlignment()

FSDK::Form::SetAlignment ( alignment  )

设置用作文档范围默认值的对齐值。

对齐是可变文本的属性。它仅适用于文本字段、列表框和组合框, 它们可能包含可变文本作为其内容。
如果文本字段或列表框有自己的对齐值,则将忽略文档范围的默认对齐值; 否则,将对文本字段或列表框使用文档范围的默认值。

参数
[in]alignment可变文本的新默认对齐类型。请参阅从 FSDK.e_AlignmentLeft 开始的值,这应该是这些值中的一个。
如果使用其他值来设置,默认情况下将使用 FSDK.e_AlignmentLeft
返回
无。

◆ SetConstructAppearances()

FSDK::Form::SetConstructAppearances ( need_construct  )

设置一个标志,指定在加载表单控件时是否构建外观。

参数
[in]need_constructtrue 表示在加载表单控件时构建外观, false 表示不构建。
返回
无。

◆ SetDefaultAppearance()

FSDK::Form::SetDefaultAppearance ( default_ap  )

设置默认外观数据。

参数
[in]default_ap新的默认外观。输入数据的 flags 可用于决定 哪些信息将使用新数据更新;对于那些不更新的数据, 它们将继续使用旧数据。
如果输入的默认外观数据的 text_size 为0,则意味着应自动计算文本大小。
返回
无。

◆ SetFieldsInCalculationOrder()

FSDK::Form::SetFieldsInCalculationOrder ( field_array  )

设置计算顺序中的表单字段数组。

计算顺序定义了当任何字段的值更改时, 字段值将被重新计算的顺序。通常,这些字段具有计算操作。

参数
[in]field_array用于指定新计算顺序的表单字段数组。
返回
无。

◆ ValidateFieldName()

FSDK::Form::ValidateFieldName ( type  ,
field_name   
)

验证字段名是否可用于指定字段类型的新字段。

此方法可用于检查字段名是否可用于指定字段类型的新字段。 建议用户在使用函数 FSDK.Form.AddControl 添加带有新控件的新字段之前调用此函数。

参数
[in]type字段类型,将为其验证输入的字段名。
[in]field_name字符串值。它不应该是空字符串。
返回
true 表示输入的字段名对指定的字段类型有效,false 表示无效。