Foxit PDF SDK
fsdk.Form类 参考

Public 成员函数

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

详细描述

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

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

参见
fsdk.PDFDoc
Filler

成员函数说明

◆ AddControl()

def fsdk.Form.AddControl (   page,
  field_name,
  field_type,
  rect 
)

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

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

  • 如果指定的表单字段存在,将创建新的表单控件并设置到字段。

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

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

  • 按钮:在相关控件注释中,背景色(在MK字典中)= 0xC0C0C0, 高亮模式 = fsdk.AnnotE_HighlightingPush

  • 复选框/单选按钮:在相关控件注释中,边框宽度 = 1.0, 边框样式 = fsdk.BorderInfoE_Solid , 背景色(在MK字典中)= 0xFFFFFF,边框色(在MK字典中)= 0xFFFFFF。

参数
[in]page有效的PDF页面,将在其中添加新的表单控件。它应该属于 与当前表单相同的PDF文档。
[in]field_name字段名称。它不应该是空字符串。
[in]field_type字段类型。请参考从fsdk.FieldE_TypePushButton 开始的值, 这应该是其中一个值,除了fsdk.FieldE_TypeSignature 。 如果这是fsdk.FieldE_TypeSignature ,此函数将抛出异常 fsdk.E_ErrUnsupported
[in]rect新表单控件的矩形,指定在PDF页面中的位置。 它应该在PDF坐标系统中。
返回
新添加的表单控件对象。

◆ ExportToCSV() [1/2]

def 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 表示失败。

◆ ExportToCSV() [2/2]

def 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 means success, while false means failure.

◆ ExportToHTML() [1/2]

def 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 表示失败。

◆ ExportToHTML() [2/2]

def 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 表示失败。

◆ ExportToTXT() [1/2]

def 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 表示失败。

◆ ExportToTXT() [2/2]

def 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 表示失败。

◆ ExportToXML() [1/3]

def fsdk.Form.ExportToXML (   file_path)

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

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

◆ ExportToXML() [2/3]

def 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]

def 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()

def fsdk.Form.FixPageFields (   page_index)

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

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

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

◆ GetAlignment()

def fsdk.Form.GetAlignment ( )

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

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

返回
对齐值。请参考从fsdk.E_AlignmentLeft 开始的值, 这将是其中一个值。

◆ GetControl()

def fsdk.Form.GetControl (   page,
  index 
)

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

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

◆ GetControlAtDevicePoint()

def fsdk.Form.GetControlAtDevicePoint (   page,
  point,
  tolerance,
  type,
  matrix 
)

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

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

◆ GetControlAtPoint()

def fsdk.Form.GetControlAtPoint (   page,
  point,
  tolerance,
  type 
)

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

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

◆ GetControlCount()

def fsdk.Form.GetControlCount (   page)

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

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

◆ GetDefaultAppearance()

def fsdk.Form.GetDefaultAppearance ( )

获取默认外观数据。

返回
默认外观数据。

◆ GetDict()

def fsdk.Form.GetDict ( )

获取当前对象的字典。

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

◆ GetDocument()

def fsdk.Form.GetDocument ( )

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

返回
PDF文档对象。

◆ GetField()

def 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()

def fsdk.Form.GetFieldCount (   filter)

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

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

◆ GetFieldsInCalculationOrder()

def fsdk.Form.GetFieldsInCalculationOrder ( )

获取按计算顺序排列的表单字段数组。

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

返回
按计算顺序排列的表单字段数组。

◆ GetFormFiller()

def fsdk.Form.GetFormFiller ( )

获取表单填写器。

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

◆ ImportFromXML()

def fsdk.Form.ImportFromXML (   file_path)

从XML文件导入表单数据。

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

◆ IsEmpty()

def fsdk.Form.IsEmpty ( )

检查当前对象是否为空。

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

返回
true 表示当前对象为空,false 表示非空。

◆ MoveControl()

def fsdk.Form.MoveControl (   control,
  field_name 
)

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

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

  • 如果由字段名称指定的字段不存在,将使用字段名称创建新字段, 控件将移动到此新字段。

  • 如果由字段名称指定的字段存在且字段类型与控件当前所属的字段相同, 控件将合并到此字段。

  • 如果由字段名称指定的字段存在但字段类型与控件当前所属的字段不同, 此函数将抛出异常fsdk.E_ErrConflict

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

◆ NeedConstructAppearances()

def fsdk.Form.NeedConstructAppearances ( )

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

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

◆ RemoveControl()

def fsdk.Form.RemoveControl (   control)

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

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

参数
[in]control要删除的表单控件。如果相关表单字段的字段类型是 fsdk.FieldE_TypeSignature ,此函数将抛出异常fsdk.E_ErrUnsupported
返回
无。

◆ RemoveField()

def fsdk.Form.RemoveField (   field)

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

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

参数
[in]field要删除的表单字段。如果字段类型是fsdk.FieldE_TypeSignature , 此函数将抛出异常fsdk.E_ErrUnsupported
返回
无。

◆ RenameField()

def fsdk.Form.RenameField (   field,
  new_field_name 
)

用新名称重命名字段。

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

◆ Reset()

def fsdk.Form.Reset ( )

将所有字段(签名字段除外)的数据重置为其默认值。

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

◆ SetAlignment()

def fsdk.Form.SetAlignment (   alignment)

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

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

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

◆ SetConstructAppearances()

def fsdk.Form.SetConstructAppearances (   need_construct)

设置指定加载表单控件时是否构造外观的标志。

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

◆ SetDefaultAppearance()

def fsdk.Form.SetDefaultAppearance (   default_ap)

设置默认外观数据。

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

◆ SetFieldsInCalculationOrder()

def fsdk.Form.SetFieldsInCalculationOrder (   field_array)

设置按计算顺序排列的表单字段数组。

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

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

◆ ValidateFieldName()

def fsdk.Form.ValidateFieldName (   type,
  field_name 
)

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

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

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