Foxit PDF SDK

Public 成员函数 | Public 属性 | 静态 Public 属性 | 所有成员列表
FSDK::Signature类 参考
类 FSDK::Signature 继承关系图:

## Public 成员函数
| ClearSignedData ()
| 如果当前签名已签名并验证有效,则清除数据和外观。 更多...
| constructor (document, sig_field_dict)
| 从签名字段字典构造的构造函数。 更多...
| constructor (field)
| 使用父类对象的构造函数。 更多...
| EnableEmbedFont (enable_embed_font)
| 启用或禁用嵌入字体。 更多...
| EnableIncrementalSaveForFirstSigning (enable_incremental_save)
| 启用或禁用首次签署的增量保存。用户应在调用函数 FSDK.Signature.StartSign之前调用此函数。 默认值：false。 更多...
| GenerateAppearance ()
| 生成未签署签名的外观。 更多...
| GetAppearanceFlags ()
| 获取签名外观标志。 更多...
| GetBitmap ()
| 获取用于签名外观的位图。 更多...
| GetByteRangeArray (out_byte_range_array:[number, number, number, number])
| 获取字节范围数据，包含4个元素。 更多...
| GetCert (index)
| 通过索引从当前签名的证书链中获取证书。 更多...
| GetCertCount ()
| 获取当前签名证书链中的证书数量。 更多...
| GetCertificateInfo (key)
| 获取证书信息。 更多...
| GetDocPermission ()
| 获取当前签名的文档权限。 更多...
| GetDocument ()
| 获取当前签名所属的PDF文档。 更多...
| GetFieldMDPAction ()
| 获取FieldMDP（"MDP"表示修改检测和防止）操作类型。 更多...
| GetFieldMDPActionFields ()
| 获取用于FieldMDP操作的字段名数组。 更多...
| GetFilter ()
| 获取过滤器。 更多...
| GetKeyLabel (label_name)
| 获取指定键标签的字符串。 更多...
| GetKeyValue (key)
| 获取指定键名的字符串值。 更多...
| GetPAdESLevel ()
| 获取PAdES级别。 更多...
| GetPagingSealGroupElements ()
| 获取当前骑缝章签名的组元素。 更多...
| GetPagingSealSignature ()
| 获取骑缝章签名。 更多...
| GetSignatureDict ()
| 获取签名字典。 更多...
| GetSignatureType ()
| 获取签名类型。 更多...
| GetSignedVersionDocument (file_path)
| 获取当前签名被签署时的已签名版本PDF文档。 更多...
| GetSignTime ()
| 获取签署时间。 更多...
| GetState ()
| Get current state. 更多...
| GetSubFilter ()
| 获取子过滤器。 更多...
| IsEmpty ()
| 检查当前对象是否为空。 更多...
| IsSigned ()
| 检查当前签名是否已签署。 更多...
| IsTimeStamp ()
| 检查当前签名是否为时间戳签名。 更多...
| SetAppearanceContent (appearance_content)
| 为已签名签名外观设置自定义外观内容（作为低级绘图操作命令）。 更多...
| SetAppearanceFlags (appearance_flags)
| 设置签名外观标志。 更多...
| SetBitmap (bitmap)
| 为签名外观设置位图。 更多...
| SetCertChain (cert_chain)
| 设置证书链。 更多...
| SetCustomObject (key, pdf_object)
| 为签名字典设置自定义PDF对象。 更多...
| SetDefaultContentsLength (default_length)
| 设置表示签名值（称为已签名数据）的签名内容的默认长度。 更多...
| SetDocPermission (permission)
| 为当前签名设置文档权限。 更多...
| SetFieldMDPActionFields (action, field_array)
| 设置FieldMDP（"MDP"表示修改检测和防止）操作名称数组。 更多...
| SetFilter (filter)
| 设置过滤器。 更多...
| SetImage (file_path, frame_index)
| 为签名外观设置带有指定帧索引的图像。 更多...
| SetImage (image, frame_index)
| 为签名外观设置带有指定帧索引的图像。 更多...
| SetKeyLabel (label_name, label_value)
| 设置指定键标签的字符串。 更多...
| SetKeyValue (key, value)
| 设置指定键名的字符串值。 更多...
| SetSignTime (sign_time)
| 设置签署时间。 更多...
| SetSubFilter (sub_filter)
| 设置子过滤器。 更多...
| StartSign (cert_file_stream, cert_password, digest_algorithm, save_path, client_data, pause)
| 如果当前签名未签署，则开始签署当前签名。 更多...
| StartSign (cert_path, cert_password, digest_algorithm, save_path, client_data, pause)
| 如果当前签名未签署，则开始签署当前签名。 更多...
| StartSign (cert_path, cert_password, digest_algorithm, stream_callback, client_data, pause)
| 如果当前签名未签署，则开始签署当前签名。 更多...
| StartVerify (client_data, pause)
| 如果当前签名已签署，则开始验证当前签名的完整性。 更多...

## Public 属性
| e_StateVerifyNoSupportWay
| 不支持的签名。

## 静态 Public 属性
static | e_APFlagBitmap
| 如果设置，在签名外观上显示位图。
static | e_APFlagDN
| 如果设置，在签名外观上显示可分辨名称。
static | e_APFlagFoxitEditorFlag
| 如果设置，在签名外观上显示Foxit Editor内容。
static | e_APFlagFoxitFlag
| 签名外观标志的枚举。 更多...
static | e_APFlagLabel
| 如果设置，在签名外观上显示标签。
static | e_APFlagLocation
| 如果设置，在签名外观上显示位置。
static | e_APFlagProducer
| 如果设置，在签名外观上显示生产者内容。
static | e_APFlagReason
| 如果设置，在签名外观上显示原因。
static | e_APFlagSigner
| 如果设置，在签名外观上显示签署者。
static | e_APFlagSigningTime
| 如果设置，在签名外观上显示签署时间。
static | e_APFlagText
| 如果设置，在签名外观上显示文本内容。
static | e_DigestSHA1
| 签名摘要算法的枚举。 更多...
static | e_DigestSHA256
| 签名摘要算法：sha256算法。
static | e_DigestSHA384
| 签名摘要算法：sha384算法。
static | e_DigestSHA512
| 签名摘要算法：sha512算法。
static | e_DocPermFillingFormAndSigning
| 允许的更改包括填写表单、实例化页面模板和签名。 其他更改将使签名无效。
static | e_DocPermFillingFormSigningAndAnnotating
| 允许的更改与2相同，以及注释的创建、删除和修改。 其他更改将使签名无效。
static | e_DocPermNoChangesAllowed
| 不允许对PDF文档（由签名签署的文档）进行任何更改。 对这种PDF文档的任何更改都将使签名无效。
static | e_DocPermUnrestricted
| 签名文档权限的枚举。 更多...
static | e_FieldMDPActionAll
| 所有表单字段的标志将被设置为只读。
static | e_FieldMDPActionExclude
| 表单字段（指定表单字段除外）的标志将被设置为只读。 更多...
static | e_FieldMDPActionInclude
| 指定表单字段的标志将被设置为只读。 更多...
static | e_FieldMDPActionNone
| 签名FieldMDP（"MDP"表示修改检测和防止）操作类型的枚举。 更多...
static | e_KeyNameContactInfo
| 签名键名：联系信息。
static | e_KeyNameDN
| 签名键名：可分辨名称。
static | e_KeyNameLocation
| 签名键名：位置。
static | e_KeyNameProducer
| 签名键名：生产者内容。
static | e_KeyNameReason
| 签名键名：原因。
static | e_KeyNameSigner
| 签名键名的枚举。 更多...
static | e_KeyNameText
| 签名键名：文本内容。
static | e_LabelNameDN
| 可分辨名称的签名键名。 更多...
static | e_LabelNameLocation
| 位置的签名标签名。 更多...
static | e_LabelNameProducer
| 生产者名称的签名键名。 更多...
static | e_LabelNameReason
| 原因的签名标签名。 更多...
static | e_LabelNameSigner
| 签名标签名的枚举。 更多...
static | e_LabelNameSignTime
| 签署时间的签名标签名。 更多...
static | e_PAdESLevelBB
| PAdES级别：B-B。
static | e_PAdESLevelBLT
| PAdES级别：B-LT。
static | e_PAdESLevelBLTA
| PAdES级别：B-LTA。
static | e_PAdESLevelBT
| PAdES级别：B-T。
static | e_PAdESLevelNone
| PAdES级别：无。
static | e_PAdESLevelNotPAdES
| PAdES级别的枚举。 更多...
static | e_SignatureTypeOrdinary
| 签名类型的枚举。 更多...
static | e_SignatureTypePagingSeal
| 签名类型：骑缝章签名。
static | e_SignatureTypeTimeStamp
| 签名类型：时间戳签名。
static | e_StateCertCannotGetVRI
| 无法获取验证相关信息。
static | e_StateNoSignData
| 签名没有任何签名数据。这意味着签名字典中没有"V"条目。
static | e_StateSigned
| 已签名的签名。
static | e_StateUnknown
| 签名状态的枚举。 更多...
static | e_StateUnsigned
| 未签名的签名。
static | e_StateVerifyChange
| 文档已在签名范围内被修改。(这表示签名无效。)
static | e_StateVerifyChangeIllegal
| 文档已在签名范围外被修改,且修改使签名无效。
static | e_StateVerifyChangeLegal
| 文档已在签名范围外被修改,但修改是允许的。
static | e_StateVerifyErrorByteRange
| 非期望的字节范围。
static | e_StateVerifyErrorData
| 签名数据已损坏(这意味着签名数据无法正确解析)。
static | e_StateVerifyIncredible
| 签名不可信(包含攻击性)。
static | e_StateVerifyInvalid
| 签名的验证状态无效。
static | e_StateVerifyIssueCurrent
| 验证的发行者是当前发行者。
static | e_StateVerifyIssueExpire
| 用于验证发行者的证书已过期。
static | e_StateVerifyIssueRevoke
| 用于验证发行者的证书已被撤销。
static | e_StateVerifyIssueUncheck
| 未检查发行者。
static | e_StateVerifyIssueUnknown
| 发行者的验证状态未知。
static | e_StateVerifyIssueValid
| 发行者的验证状态有效。
static | e_StateVerifyNoChange
| 文档在签名范围内未被修改。
static | e_StateVerifyTimestampDoc
| 签名是时间戳签名。
static | e_StateVerifyTimestampExpire
| 时间戳的验证状态已过期。
static | e_StateVerifyTimestampInvalid
| 时间戳的验证状态无效。
static | e_StateVerifyTimestampIssueUnknown
| 时间戳发行者的验证状态未知。
static | e_StateVerifyTimestampIssueValid
| 时间戳发行者的验证状态有效。
static | e_StateVerifyTimestampNone
| 没有时间戳或未检查时间戳。
static | e_StateVerifyTimestampTimeBefore
| 时间戳时间的验证状态有效,因为时间在过期日期之前。
static | e_StateVerifyTimestampValid
| 时间戳的验证状态有效。
static | e_StateVerifyValid
| 签名的验证状态有效。

## 详细描述

数字签名（PDF 1.3）可用于验证用户身份和文档内容的真实性。 它存储有关签署者的信息以及签署时文档的状态。签名包含在 签名字段中，作为表单字段的一种类型，因此类 FSDK.Signature 派生自 类 FSDK.Field。 可以通过以下函数检索/添加签名对象：

- 要直接从PDF文档中统计和检索签名对象，请使用函数 FSDK.PDFDoc.GetSignatureCount 和 FSDK.PDFDoc.GetSignature。
- 要统计和检索签名字段，请在字段类型为 FSDK.Field.e_TypeSignature 时使用函数 FSDK.Form.GetFieldCount 和 FSDK.Form.GetField。
- 要添加新签名，请使用函数 FSDK.PDFPage.AddSignature。
- 要删除签名，请使用函数 FSDK.PDFDoc.RemoveSignature。

在签名中，过滤器和子过滤器键用于指定将用于签署和验证签名的 签名回调对象的过滤器和子过滤器。Foxit PDF SDK 为以下过滤器和子过滤器提供了默认 签名回调：

- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.sha1"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.CAdES.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.RFC3161"

对于子过滤器 "ETSI.CAdES.detached" 和子过滤器 "ETSI.RFC3161"，如果要使用它们的默认签名回调进行签署， 请确保已向 FSDK.TimeStampServerMgr 设置了默认时间戳服务器。 对于其他过滤器和子过滤器，或者如果用户想要对上述过滤器和子过滤器使用自定义签名回调， 用户应准备自定义签名回调并通过函数 FSDK.Library.RegisterSignatureCallback 将回调注册到 Foxit PDF SDK。
此类提供函数来获取/设置签名信息/属性、签署或验证签名等。 例如：

- 要签署未签署的签名，请使用函数 FSDK.Signature.StartSign。 成功签署签名后，强烈建议用户关闭当前文档， 然后打开已签署的PDF文档再进行后续操作。
- 要验证已签署签名的完整性，请使用函数 FSDK.Signature.StartVerify。 要检查已签署的签名是否有效，请参考类 FSDK.LTVVerifier。
- 要直接检索签名字典，请使用函数 FSDK.Signature.GetSignatureDict。

在签署未签署的签名之前，用户可以调用以下函数来设置签署和 已签署外观的信息：

- 对于使用默认Foxit外观模板，相关信息可以通过 FSDK.Signature.SetAppearanceFlags、FSDK.Signature.SetSignTime、FSDK.Signature.SetKeyValue、 FSDK.Signature.SetBitmap、FSDK.Signature.SetImage 设置。
- 对于使用自定义外观，请通过函数 FSDK.Signature.SetAppearanceContent 设置外观流内容。

如果未签署的签名已设置了一些签署信息，但文档直接保存或 未签署签名就关闭了，这些数据（包括过滤器和子过滤器）将在 已保存的文档或已关闭的文档中丢失。当文档再次打开时，未签署的签名需要 至少指定过滤器和子过滤器才能进行签署；否则，此签名无法签署。

参见
  FSDK.Field
  FSDK.Form
  FSDK.PDFDoc
  FSDK.PDFPage
  FSDK.TimeStampServerMgr
  FSDK.LTVVerifier

## 成员函数说明

## ◆ ClearSignedData()

FSDK::Signature::ClearSignedData | ( |  | ) |

如果当前签名已签名并验证有效,则清除数据和外观。

此函数用于已签名且有效的签名。
注意:从7.0开始,此函数仅用于验证签名的完整性。 要检查签名是否有效,请参考类FSDK.LTVVerifier。

返回
  true表示成功清除数据和外观,而false表示无需 清除数据和外观或出现任何错误。

## ◆ constructor() [1/2]

FSDK::Signature::constructor | ( | document | ,
|  | sig_field_dict |
| ) |  |

从签名字段字典构造的构造函数。

参数

  [in] | document | 有效的PDF文档。
  [in] | sig_field_dict | 表示签名字段的PDF字典。 它应属于由参数document指定的PDF文档。

## ◆ constructor() [2/2]

FSDK::Signature::constructor | ( | field |  | ) |

使用父类对象的构造函数。

参数

  [in] | field | 父类对象。

## ◆ EnableEmbedFont()

FSDK::Signature::EnableEmbedFont | ( | enable_embed_font |  | ) |

启用或禁用嵌入字体。

参数

  enable_embed_font | 指示是否为签名文本嵌入字体的标志。 true表示为签名文本嵌入字体。 false表示不为签名文本嵌入字体。

返回
  无。

## ◆ EnableIncrementalSaveForFirstSigning()

FSDK::Signature::EnableIncrementalSaveForFirstSigning | ( | enable_incremental_save |  | ) |

启用或禁用首次签署的增量保存。用户应在调用函数 FSDK.Signature.StartSign之前调用此函数。
默认值：false。

参数

  [in] | enable_incremental_save | 指示是否使用增量保存进行首次签署的标志。 true表示使用增量保存进行首次签署。 false表示使用默认保存进行首次签署。

返回
  无。

## ◆ GenerateAppearance()

FSDK::Signature::GenerateAppearance | ( |  | ) |

生成未签署签名的外观。

此函数用于在页面上显示未签署的普通签名，而无需调用函数 FSDK.Signature.StartSign。

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

## ◆ GetAppearanceFlags()

FSDK::Signature::GetAppearanceFlags | ( |  | ) |

获取签名外观标志。

签名外观标志指示将显示哪些信息。 目前,这仅在成功设置FSDK.Signature.SetAppearanceFlags后有用。 对于PDF文档中获取的签名,此函数的返回值将无用。

返回
  签名外观标志。请参考从FSDK.Signature.e_APFlagFoxitFlag开始的值, 这将是这些值之一或组合。

## ◆ GetBitmap()

FSDK::Signature::GetBitmap | ( |  | ) |

获取用于签名外观的位图。

返回
  在外观中使用的位图。如果对于返回的位图对象，函数FSDK.Bitmap.IsEmpty的 返回值为true，表示在外观中没有使用位图或出现任何错误。

## ◆ GetByteRangeArray()

FSDK::Signature::GetByteRangeArray | ( | out_byte_range_array: | [number, number, number, number] | ) |

获取字节范围数据，包含4个元素。

此函数用于已签署的签名，以检索其用于摘要计算的字节范围。 字节范围数组包含4个元素。这四个元素总是成对的 整数（起始字节偏移量，字节长度），描述用于摘要计算的 确切字节范围。
有关更多详细信息，请参阅<PDF Reference 1.7>第8.7节数字签名。

参数

  [out] | out_byte_range_array | 接收字节范围数据的输出参数。 请确保此数组可以包含4个元素。

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

## ◆ GetCert()

FSDK::Signature::GetCert | ( | index |  | ) |

通过索引从当前签名的证书链中获取证书。

建议在验证签名之前使用此函数。 当当前签名的子过滤器为"adbe.x509.rsa_sha1"时，应用程序需要调用此函数 在验证签名之前获取已验证的公钥证书。 证书链中的第一个证书是签名证书，它可以用于 验证签名。

参数

  [in] | index | 要获取的证书的索引。有效范围：从0到(count-1)。 count由函数FSDK.Signature.GetCertCount返回。

返回
  证书。

## ◆ GetCertCount()

FSDK::Signature::GetCertCount | ( |  | ) |

获取当前签名证书链中的证书数量。

建议在验证签名之前使用此函数。 当当前签名的子过滤器为"adbe.x509.rsa_sha1"时，应用程序需要调用此函数以 获取证书链中的证书数量，然后调用函数FSDK.Signature.GetCert 在验证签名之前获取验证的公钥证书。

返回
  证书数量。

## ◆ GetCertificateInfo()

FSDK::Signature::GetCertificateInfo | ( | key |  | ) |

获取证书信息。

此函数用于已签署的签名。 目前，此函数仅支持iOS和Android平台。

参数

  [in] | key | 证书键字符串。目前可以是以下键之一： "SerialNumber" "Issuer" "Subject" "ValidPeriodFrom" "ValidPeriodTo"

返回
  证书信息字符串。

注解
  对于"ValidPeriodFrom"或"ValidPeriodTo"键，不会计算时区值。

## ◆ GetDocPermission()

FSDK::Signature::GetDocPermission | ( |  | ) |

获取当前签名的文档权限。

- 如果权限值不是FSDK.Signature.e_DocPermUnrestricted，表示当当前签名已签署时，添加新签名将失败。
- 如果权限值为FSDK.Signature.e_DocPermFillingFormAndSigning或FSDK.Signature.e_DocPermFillingFormSigningAndAnnotating， 表示当当前签名已签署时，当前签名字段的标志为只读。

返回
  文档权限。请参考从FSDK.Signature.e_DocPermUnrestricted开始的值， 这应该是这些值之一。

## ◆ GetDocument()

FSDK::Signature::GetDocument | ( |  | ) |

获取当前签名所属的PDF文档。

返回
  PDF文档对象。

## ◆ GetFieldMDPAction()

FSDK::Signature::GetFieldMDPAction | ( |  | ) |

获取FieldMDP（"MDP"表示修改检测和防止）操作类型。

返回
  FieldMDP操作类型。请参考从FSDK.Signature.e_FieldMDPActionNone开始的值， 这应该是这些值之一。

## ◆ GetFieldMDPActionFields()

FSDK::Signature::GetFieldMDPActionFields | ( |  | ) |

获取用于FieldMDP操作的字段名数组。

返回的字段名数组与FieldMDP操作相关联（可以通过函数FSDK.Signature.GetFieldMDPAction检查）：

- 如果FieldMDP操作类型为FSDK.Signature.e_FieldMDPActionNone，返回的字段名数组无用。
- 如果FieldMDP操作类型为FSDK.Signature.e_FieldMDPActionAll，返回的字段名数组将包含所有表单字段的名称。
- 如果FieldMDP操作类型为FSDK.Signature.e_FieldMDPActionInclude，返回的字段名数组指定当前签名已签署时 标志为只读的表单字段。
- 如果FieldMDP操作类型为FSDK.Signature.e_FieldMDPActionExclude，返回的字段名数组指定当当前签名为已签署的签名时 标志不是只读的表单字段（但其余字段的标志是只读的）。

返回
  FieldMDP操作字段名数组。

## ◆ GetFilter()

FSDK::Signature::GetFilter | ( |  | ) |

获取过滤器。

过滤器和子过滤器用于指定将使用哪个已注册的签名回调对象来 签署/验证当前签名。

返回
  过滤器字符串。

## ◆ GetKeyLabel()

FSDK::Signature::GetKeyLabel | ( | label_name |  | ) |

获取指定键标签的字符串。

如果当前签名是时间戳签名，此函数将始终返回空字符串。

参数

  [in] | label_name | 键标签。请参考从FSDK.Signature.e_LabelNameSigner开始的值， 这应该是这些值之一。

返回
  指定键标签的字符串。

## ◆ GetKeyValue()

FSDK::Signature::GetKeyValue | ( | key |  | ) |

获取指定键名的字符串值。

此函数用于获取签名字典中某些键的字符串值，例如"Reason"、 "Location"等。

参数

  [in] | key | 键名。请参考从FSDK.Signature.e_KeyNameSigner开始的值， 这应该是这些值之一。

返回
  字符串值。

## ◆ GetPAdESLevel()

FSDK::Signature::GetPAdESLevel | ( |  | ) |

获取PAdES级别。

返回
  PAdES级别。请参考从 FSDK.Signature.e_PAdESLevelNotPAdES开始的值，这将是这些值之一。

## ◆ GetPagingSealGroupElements()

FSDK::Signature::GetPagingSealGroupElements | ( |  | ) |

获取当前骑缝章签名的组元素。

如果当前签名类型为FSDK.Signature.e_SignatureTypePagingSeal， 此函数将返回与当前签名关联的签名数组。 否则，将返回空数组。

返回
  签名数组。

## ◆ GetPagingSealSignature()

FSDK::Signature::GetPagingSealSignature | ( |  | ) |

获取骑缝章签名。

如果当前签名类型为FSDK.Signature.e_SignatureTypePagingSeal，此函数将返回 与当前签名关联的骑缝章签名对象。

返回
  FSDK.PagingSealSignature对象。如果返回对象的函数FSDK.Signature.IsEmpty 的返回值为true，则表示当前签名不是骑缝章签名。

## ◆ GetSignatureDict()

FSDK::Signature::GetSignatureDict | ( |  | ) |

获取签名字典。

签名字典是签名字段字典的一部分。

返回
  签名字典。如果有任何错误，此函数将返回null。

## ◆ GetSignatureType()

FSDK::Signature::GetSignatureType | ( |  | ) |

获取签名类型。

返回
  签名类型。请参考从 FSDK.Signature.e_SignatureTypeOrdinary开始的值，这将是这些值之一。

## ◆ GetSignedVersionDocument()

FSDK::Signature::GetSignedVersionDocument | ( | file_path |  | ) |

获取当前签名被签署时的已签名版本PDF文档。

当PDF文档已被多个签名签署且用户想要获取其中某个签名被签署时的 PDF文档时,此函数很有用。

参数

  [in] | file_path | 当前签名所属的原始打开PDF文档的完整路径。不应为空字符串。

返回
  当前签名被签署时的已签名版本PDF文档对象。 返回的PDF文档可能与检索当前签名的当前PDF文档不同,也可能就是当前PDF文档。 当读取或操作已签名版本文档时,用户应确保保持当前PDF文档对象有效。 在使用类FSDK.PDFDoc中的大多数函数之前,请确保返回的文档对象已成功加载。

## ◆ GetSignTime()

FSDK::Signature::GetSignTime | ( |  | ) |

获取签署时间。

返回
  接收签署时间的日期和时间对象。 如果找不到签署时间，此函数将返回一个所有值都为0的日期和时间对象。

## ◆ GetState()

FSDK::Signature::GetState | ( |  | ) |

Get current state.

- 在验证签名之前,此函数用于获取当前签名是否已签名 或当前签名是否缺少签名数据的状态。
- 在验证签名之后,此函数用于获取验证状态–表示 验证的签名已签名;如果验证的签名仍未签名,此函数将 获取未签名状态。

返回
  签名状态的值。请参考从FSDK.Signature.e_StateUnknown开始的值, 这将是它们之一或组合。
  特别地,如果返回状态为FSDK.Signature.e_StateNoSignData, 表示当前签名没有签名数据,请至少调用函数 FSDK.Signature.SetKeyValue为当前签名设置必要的过滤器和子过滤器。 用户还可以在调用函数FSDK.Signature.StartSign之前调用以下函数 为签名和已签名外观设置其他数据:
  - 对于使用默认Foxit外观模板,可以通过 FSDK.Signature.SetAppearanceFlags, FSDK.Signature.SetSignTime, FSDK.Signature.SetKeyValue, FSDK.Signature.SetBitmap, FSDK.Signature.SetImage设置相关信息。
  - 对于使用自定义外观,请通过函数 FSDK.Signature.SetAppearanceContent设置外观流内容。

## ◆ GetSubFilter()

FSDK::Signature::GetSubFilter | ( |  | ) |

获取子过滤器。

过滤器和子过滤器用于指定将使用哪个已注册的签名回调对象来 签署/验证当前签名。

返回
  子过滤器字符串。

## ◆ IsEmpty()

FSDK::Signature::IsEmpty | ( |  | ) |

检查当前对象是否为空。

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

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

## ◆ IsSigned()

FSDK::Signature::IsSigned | ( |  | ) |

检查当前签名是否已签署。

返回
  true表示当前签名已签署，而false表示未签署。

## ◆ IsTimeStamp()

FSDK::Signature::IsTimeStamp | ( |  | ) |

检查当前签名是否为时间戳签名。

返回
  true表示当前签名是时间戳签名，而false表示不是。

## ◆ SetAppearanceContent()

FSDK::Signature::SetAppearanceContent | ( | appearance_content |  | ) |

为已签名签名外观设置自定义外观内容（作为低级绘图操作命令）。

此函数只能在为未签署的签名调用函数FSDK.Signature.StartSign之前使用。
一旦设置了自定义外观内容，它将用作已签名外观。在这种情况下， 由FSDK.Signature.SetAppearanceFlags设置的外观标志将被忽略， 相关信息将不会在外观中使用–这些信息是通过以下方式设置的： FSDK.Signature.SetSignTime、FSDK.Signature.SetKeyValue（除过滤器和子过滤器外）、 FSDK.Signature.SetBitmap、FSDK.Signature.SetImage。
如果当前签名是时间戳签名，此函数将不执行任何操作。

参数

  [in] | appearance_content | 自定义外观内容。这应该是用于外观的绘图操作命令序列， 例如"10 10 m 20 10 l S"。有关更多详细信息，请参考 <PDF Reference 1.7> P196。

返回
  无。

## ◆ SetAppearanceFlags()

FSDK::Signature::SetAppearanceFlags | ( | appearance_flags |  | ) |

设置签名外观标志。

建议在为未签名的签名调用函数FSDK.Signature.StartSign之前 使用此函数。
签名外观标志指示将在已签名外观中显示哪些信息。 如果已通过函数FSDK.Signature.SetAppearanceContent设置了自定义外观内容, 则外观标志将被忽略。
如果当前签名是时间戳签名,此函数将不执行任何操作。

参数

  [in] | appearance_flags | 签名外观标志。请参考从 FSDK.Signature.e_APFlagFoxitFlag开始的值,这应该是 这些值之一或组合。

返回
  无。

## ◆ SetBitmap()

FSDK::Signature::SetBitmap | ( | bitmap |  | ) |

为签名外观设置位图。

建议在为未签署的签名调用函数FSDK.Signature.StartSign之前使用此函数。 如果已通过函数FSDK.Signature.SetAppearanceContent设置了自定义外观内容， 则位图将不会在已签名外观中使用。
如果当前签名是时间戳签名，此函数将不执行任何操作。

参数

  [in] | bitmap | 要设置到外观的位图。它应该是有效的。

返回
  无。

## ◆ SetCertChain()

FSDK::Signature::SetCertChain | ( | cert_chain |  | ) |

设置证书链。

建议在签署未签署的签名之前使用此函数。 当签名子过滤器为"adbe.x509.rsa_sha1"时，用户需要调用此函数 将证书链设置到签名。对于其他子过滤器，此函数将直接返回而不执行任何操作。

参数

  [in] | cert_chain | 表示证书链的字符串数组。

返回
  无。

## ◆ SetCustomObject()

FSDK::Signature::SetCustomObject | ( | key | ,
|  | pdf_object |
| ) |  |

为签名字典设置自定义PDF对象。

建议在为未签署的签名调用函数FSDK.Signature.StartSign之前 使用此函数。

参数

  [in] | key | 签名字典的键，其值元素将被设置。不应为空字符串。
  [in] | pdf_object | 要设置为键值的自定义FSDK.PDFObject对象。不应为null。 它可以是直接PDF对象或间接PDF对象。

返回
  无。

## ◆ SetDefaultContentsLength()

FSDK::Signature::SetDefaultContentsLength | ( | default_length |  | ) |

设置表示签名值（称为已签名数据）的签名内容的默认长度。

此函数只能在为未签署的签名调用函数FSDK.Signature.StartSign之前使用。
签名内容表示签名值（称为已签名数据）。 当初始化签名字段时，签名内容将使用 默认长度7942进行初始化。当使用自定义签名回调来签署和验证未签署的签名时， 用户可以调用此函数来更改签名内容的默认长度。在这种情况下， 用户还应确保在回调函数FSDK.SignatureCallback.Sign中返回的已签名数据的长度 不应大于由此函数设置的默认长度。

参数

  [in] | default_length | 签名值（称为已签名数据）的默认长度，以字节为单位。 它不应小于4098。

返回
  无。

## ◆ SetDocPermission()

FSDK::Signature::SetDocPermission | ( | permission |  | ) |

为当前签名设置文档权限。

此函数仅对未签署的签名有用。如果此函数用于已签署的签名，将不执行任何操作。
关于权限值的一些注意事项：

- 如果将除FSDK.Signature.e_DocPermUnrestricted之外的任何权限值设置为当前未签署的签名， 当当前签名为已签署的签名时，添加新签名将失败。
- 如果将权限值FSDK.Signature.e_DocPermFillingFormAndSigning或FSDK.Signature.e_DocPermFillingFormSigningAndAnnotating 设置为当前未签署的签名，当当前签名为已签署的签名时，FieldMDP操作将为FSDK.Signature.e_FieldMDPActionInclude， 并且当前签名字段的标志将为只读。

参数

  [in] | permission | 文档权限。请参考从FSDK.Signature.e_DocPermUnrestricted开始的值， 这应该是这些值之一。

返回
  无。

## ◆ SetFieldMDPActionFields()

FSDK::Signature::SetFieldMDPActionFields | ( | action | ,
|  | field_array |
| ) |  |

设置FieldMDP（"MDP"表示修改检测和防止）操作名称数组。

此函数仅对未签署的签名有用。如果此函数用于已签署的签名，将不执行任何操作。
如果当前签名已签署，此函数无效。

参数

  [in] | action | FieldMDP操作类型。请参考从FSDK.Signature.e_FieldMDPActionNone开始的值， 这应该是这些值之一。 如果此值为FSDK.Signature.e_FieldMDPActionNone，表示不使用FieldMDP操作。 如果此值为FSDK.Signature.e_FieldMDPActionAll，参数field_array将被忽略， 所有字段都将包含在对象摘要中（因此在当前签名签署后不允许更改）。 如果此值为FSDK.Signature.e_FieldMDPActionInclude，表示仅由参数field_array指定的表单字段的标志 将被设置为只读，并且这些字段将包含在对象摘要中 （因此在当前签名签署后不允许更改）。 如果此值为FSDK.Signature.e_FieldMDPActionExclude，表示表单字段（除由参数field_array指定的字段外）的标志 将被设置为只读，并且这些字段包含在对象摘要中 （因此在当前签名签署后不允许更改）。
  [in] | field_array | 用于FieldMDP操作的字段名数组。

返回
  无。

## ◆ SetFilter()

FSDK::Signature::SetFilter | ( | filter |  | ) |

设置过滤器。

过滤器和子过滤器用于指定将使用哪个已注册的签名回调对象来 签署/验证当前签名。用户可以设置过滤器和子过滤器以 在Foxit PDF SDK中使用默认签名回调，或使用其他过滤器和子过滤器，但请 确保在签署或验证当前签名之前，具有非默认过滤器和子过滤器的签名回调对象 已在Foxit PDF SDK中注册。 默认签名回调的过滤器和子过滤器为：

- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.sha1"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.CAdES.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.RFC3161"

参数

  [in] | filter | 过滤器字符串。不能为空字符串。

返回
  无。

## ◆ SetImage() [1/2]

FSDK::Signature::SetImage | ( | file_path | ,
|  | frame_index |
| ) |  |

为签名外观设置带有指定帧索引的图像。

建议在为未签署的签名调用函数FSDK.Signature.StartSign之前使用此函数。 如果已通过函数FSDK.Signature.SetAppearanceContent设置了自定义外观内容， 则图像将不会在已签名外观中使用。
输入图像可能包含多个帧，而只能将图像的一帧设置到当前签名。
如果当前签名是时间戳签名，此函数将不执行任何操作。

参数

  [in] | file_path | 现有图像文件的完整路径。不应为空字符串。
  [in] | frame_index | 帧索引。有效范围：从0到(count-1)。 count由输入图像文件的函数FSDK.Image.GetFrameCount返回。

返回
  无。

## ◆ SetImage() [2/2]

FSDK::Signature::SetImage | ( | image | ,
|  | frame_index |
| ) |  |

为签名外观设置带有指定帧索引的图像。

建议在为未签署的签名调用函数FSDK.Signature.StartSign之前使用此函数。 如果已通过函数FSDK.Signature.SetAppearanceContent设置了自定义外观内容， 则图像将不会在已签名外观中使用。
输入图像可能包含多个帧，而只能将图像的一帧设置到当前签名。
如果当前签名是时间戳签名，此函数将不执行任何操作。

参数

  [in] | image | 图像。其中一帧将被设置到当前签名。此图像至少包含 一帧，并且图像类型不应为FSDK.Image.e_Unknown。
  [in] | frame_index | 帧索引。有效范围：从0到(count-1)。 count由函数FSDK.Image.GetFrameCount返回。

返回
  无。

## ◆ SetKeyLabel()

FSDK::Signature::SetKeyLabel | ( | label_name | ,
|  | label_value |
| ) |  |

设置指定键标签的字符串。

建议在为未签署的签名调用函数FSDK.Signature.StartSign之前使用此函数。
此函数用于设置签名字典中某些键的自定义标签的字符串值。 如果未设置自定义标签，Foxit PDF SDK将使用默认标签。有关更多详细信息，请参考 从FSDK.Signature.e_LabelNameSigner开始的值的注释。
如果当前签名是时间戳签名，此函数将不执行任何操作。

参数

  [in] | label_name | 键标签。请参考从FSDK.Signature.e_LabelNameSigner开始的值， 这应该是这些值之一。
  [in] | label_value | 键标签的新字符串值。如果为空字符串，Foxit PDF SDK将使用默认标签。 有关更多详细信息，请参考从FSDK.Signature.e_LabelNameSigner开始的值的注释。

返回
  无。

## ◆ SetKeyValue()

FSDK::Signature::SetKeyValue | ( | key | ,
|  | value |
| ) |  |

设置指定键名的字符串值。

建议在为未签署的签名调用函数FSDK.Signature.StartSign之前使用此函数。
此函数用于设置签名字典中某些键的字符串值，例如签署者、原因、 位置等。
如果当前签名是时间戳签名，此函数将不执行任何操作。

参数

  [in] | key | 键名。请参考从FSDK.Signature.e_KeyNameSigner开始的值， 这应该是这些值之一。
  [in] | value | 新的字符串值。

返回
  无。

## ◆ SetSignTime()

FSDK::Signature::SetSignTime | ( | sign_time |  | ) |

设置签署时间。

建议在为未签署的签名调用函数FSDK.Signature.StartSign之前使用此函数。

参数

  [in] | sign_time | 签署时间。

返回
  无。

## ◆ SetSubFilter()

FSDK::Signature::SetSubFilter | ( | sub_filter |  | ) |

设置子过滤器。

过滤器和子过滤器用于指定将使用哪个已注册的签名回调对象来 签署/验证当前签名。用户可以设置过滤器和子过滤器以 在Foxit PDF SDK中使用默认签名回调，或使用其他过滤器和子过滤器，但请 确保在签署或验证当前签名之前，具有非默认过滤器和子过滤器的签名回调对象 已在Foxit PDF SDK中注册。 默认签名回调的过滤器和子过滤器为：

- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.sha1"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.CAdES.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.RFC3161"

参数

  [in] | sub_filter | 子过滤器字符串。

返回
  无。

## ◆ StartSign() [1/3]

FSDK::Signature::StartSign | ( | cert_file_stream | ,
|  | cert_password | ,
|  | digest_algorithm | ,
|  | save_path | ,
|  | client_data | ,
|  | pause |
| ) |  |

如果当前签名未签署，则开始签署当前签名。

此函数用于未签署的签名。当前签名的过滤器和子过滤器键指定 将用于签署当前签名的签名回调对象的名称。因此在签署之前， 请确保当前签名具有有效的过滤器和子过滤器字符串值。如果过滤器和子过滤器 是以下字符串之一，则表示使用Foxit PDF SDK中的默认签名回调：

- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.sha1"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.CAdES.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.RFC3161"

对于子过滤器 "ETSI.CAdES.detached" 和子过滤器 "ETSI.RFC3161"，如果要使用它们的默认签名回调进行签署， 请确保已向 FSDK.TimeStampServerMgr 设置了默认时间戳服务器。 对于其他过滤器和子过滤器，或者如果用户想要对上述过滤器和子过滤器使用自定义签名回调， 请确保自定义签名回调已通过函数 FSDK.Library.RegisterSignatureCallback 注册到Foxit PDF SDK。
对于符合PDF/A规范的PDF文档，建议在调用当前函数之前 调用 FSDK.Library.SetDefaultICCProfilesPath 并通过调用 FSDK.Signature.EnableEmbedFont 启用嵌入字体。 签署签名可能需要很长时间，因此Foxit PDF SDK使用渐进过程来执行此操作。

参数

  [in] | cert_file_stream | 用户实现的FSDK.StreamCallback对象， 用于访问将用于签署的证书文件的内容。 如果在自定义签名回调中不需要，则可以为null。 如果要使用默认签名回调签署当前签名， 可以使用PFX证书文件。
  [in] | cert_password | 用于打开证书文件的密码字符串。如果这是空字符串， 则表示不需要密码。
  [in] | digest_algorithm | 已签署数据的消息摘要算法。请参考从FSDK.Signature.e_DigestSHA1开始的值， 这应该是这些值之一。
  [in] | save_path | 用于保存签署结果的完整PDF文件路径。已签署的文档将 保存到另一个PDF文件。
  [in] | client_data | 用户定义的对象，将传递给 FSDK.SignatureCallback中的回调函数。如果使用默认回调对象 签署当前签名，则此参数无用。默认值：null。
  [in] | pause | 决定签署过程是否需要暂停的暂停对象。这可以是 null，表示在签署过程中不暂停。如果这 不是null，则应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进对象。请通过函数 FSDK.Progressive.GetRateOfProgress检查当前进度的速率。如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue继续进度，直到进度完成。

注解
  此函数不支持将已签署的PDF文档直接保存到用于 构造当前签名的相关PDF文档的PDF文件。为此，建议用户 按照以下步骤操作：
  假设相关PDF文档对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将签署结果保存到临时文件。此处，此临时文件 命名为"temp.tmp"。
  2. 确保相关PDF文档对象已析构 – 这相当于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
  然后用户可以打开已签署的PDF文档进行其他操作。

## ◆ StartSign() [2/3]

FSDK::Signature::StartSign | ( | cert_path | ,
|  | cert_password | ,
|  | digest_algorithm | ,
|  | save_path | ,
|  | client_data | ,
|  | pause |
| ) |  |

如果当前签名未签署，则开始签署当前签名。

此函数用于未签署的签名。当前签名的过滤器和子过滤器键指定 将用于签署当前签名的签名回调对象的名称。因此在签署之前， 请确保当前签名具有有效的过滤器和子过滤器字符串值。如果过滤器和子过滤器 是以下字符串之一，则表示使用Foxit PDF SDK中的默认签名回调：

- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.sha1"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.CAdES.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.RFC3161"

对于子过滤器 "ETSI.CAdES.detached" 和子过滤器 "ETSI.RFC3161"，如果要使用它们的默认签名回调进行签署， 请确保已向 FSDK.TimeStampServerMgr 设置了默认时间戳服务器。 对于其他过滤器和子过滤器，或者如果用户想要对上述过滤器和子过滤器使用自定义签名回调， 请确保自定义签名回调已通过函数 FSDK.Library.RegisterSignatureCallback 注册到Foxit PDF SDK。
对于符合PDF/A规范的PDF文档，建议在调用当前函数之前 调用 FSDK.Library.SetDefaultICCProfilesPath 并通过调用 FSDK.Signature.EnableEmbedFont 启用嵌入字体。 签署签名可能需要很长时间，因此Foxit PDF SDK使用渐进过程来执行此操作。

参数

  [in] | cert_path | 用于签署的证书文件的完整路径（包括文件名和扩展名）。 如果在自定义签名回调中不需要，则可以为空字符串。当此文件路径不为空时， 应为有效路径。 如果要使用默认签名回调签署当前签名， 这可以是PFX证书文件。
  [in] | cert_password | 用于打开证书文件的密码字符串。如果这是空字符串， 则表示不需要密码。
  [in] | digest_algorithm | 已签署数据的消息摘要算法。请参考从FSDK.Signature.e_DigestSHA1开始的值， 这应该是这些值之一。
  [in] | save_path | 用于保存签署结果的完整PDF文件路径。已签署的文档将 保存到另一个PDF文件。
  [in] | client_data | 用户定义的对象，将传递给 FSDK.SignatureCallback中的回调函数。如果使用默认回调对象 签署当前签名，则此参数无用。默认值：null。
  [in] | pause | 决定签署过程是否需要暂停的暂停对象。这可以是 null，表示在签署过程中不暂停。如果这 不是null，则应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进对象。请通过函数 FSDK.Progressive.GetRateOfProgress检查当前进度的速率。如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue继续进度，直到进度完成。

注解
  此函数不支持将已签署的PDF文档直接保存到用于 构造当前签名的相关PDF文档的PDF文件。为此，建议用户 按照以下步骤操作：
  假设相关PDF文档对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将签署结果保存到临时文件。此处，此临时文件 命名为"temp.tmp"。
  2. 确保相关PDF文档对象已析构 – 这相当于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
  然后用户可以打开已签署的PDF文档进行其他操作。

## ◆ StartSign() [3/3]

FSDK::Signature::StartSign | ( | cert_path | ,
|  | cert_password | ,
|  | digest_algorithm | ,
|  | stream_callback | ,
|  | client_data | ,
|  | pause |
| ) |  |

如果当前签名未签署，则开始签署当前签名。

此函数用于未签署的签名。当前签名的过滤器和子过滤器键指定 将用于签署当前签名的签名回调对象的名称。因此在签署之前， 请确保当前签名具有有效的过滤器和子过滤器字符串值。如果过滤器和子过滤器 是以下字符串之一，则表示使用Foxit PDF SDK中的默认签名回调：

- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.sha1"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.CAdES.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.RFC3161"

对于子过滤器 "ETSI.CAdES.detached" 和子过滤器 "ETSI.RFC3161"，如果要使用它们的默认签名回调进行签署， 请确保已向 FSDK.TimeStampServerMgr 设置了默认时间戳服务器。 对于其他过滤器和子过滤器，或者如果用户想要对上述过滤器和子过滤器使用自定义签名回调， 请确保自定义签名回调已通过函数 FSDK.Library.RegisterSignatureCallback 注册到Foxit PDF SDK。
对于符合PDF/A规范的PDF文档，建议在调用当前函数之前 调用 FSDK.Library.SetDefaultICCProfilesPath 并通过调用 FSDK.Signature.EnableEmbedFont 启用嵌入字体。 签署签名可能需要很长时间，因此Foxit PDF SDK使用渐进过程来执行此操作。

参数

  [in] | cert_path | 用于签署的证书文件的完整路径（包括文件名和扩展名）。 如果在自定义签名回调中不需要，则可以为空字符串。当此文件路径不为空时， 应为有效路径。 如果要使用默认签名回调签署当前签名， 这可以是PFX证书文件。
  [in] | cert_password | 用于打开证书文件的密码字符串。如果这是空字符串， 则表示不需要密码。
  [in] | digest_algorithm | 已签署数据的消息摘要算法。请参考从FSDK.Signature.e_DigestSHA1开始的值， 这应该是这些值之一。
  [in] | stream_callback | 用户实现的FSDK.StreamCallback对象，用于保存签署结果。 已签署的文档将保存到另一个PDF文件。
  [in] | client_data | 用户定义的对象，将传递给 FSDK.SignatureCallback中的回调函数。如果使用默认回调对象 签署当前签名，则此参数无用。默认值：null。
  [in] | pause | 决定签署过程是否需要暂停的暂停对象。这可以是 null，表示在签署过程中不暂停。如果这 不是null，则应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进对象。请通过函数 FSDK.Progressive.GetRateOfProgress检查当前进度的速率。如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue继续进度，直到进度完成。

注解
  此函数不支持将已签署的PDF文档直接保存到用于 构造当前签名的相关PDF文档的PDF文件。为此，建议用户 按照以下步骤操作：
  假设相关PDF文档对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将签署结果保存到临时文件。此处，此临时文件 命名为"temp.tmp"。
  2. 确保相关PDF文档对象已析构 – 这相当于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
  然后用户可以打开已签署的PDF文档进行其他操作。

## ◆ StartVerify()

FSDK::Signature::StartVerify | ( | client_data | ,
|  | pause |
| ) |  |

如果当前签名已签署，则开始验证当前签名的完整性。

此函数用于已签署的签名。当前签名的过滤器和子过滤器键指定 将用于验证当前签名的签名回调对象的名称。因此在验证之前， 请确保：已通过函数 FSDK.Library.RegisterSignatureCallback注册了必要的签名回调对象。如果当前已签署签名的过滤器和子过滤器 是以下字符串之一，则表示使用Foxit PDF SDK中的默认签名回调， 用户无需为它们注册：

- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："adbe.pkcs7.sha1"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.CAdES.detached"
- 过滤器："Adobe.PPKLite" 和子过滤器："ETSI.RFC3161"

验证签名可能需要很长时间，因此Foxit PDF SDK使用渐进过程来执行此操作。
从7.0开始，此函数仅用于验证签名的完整性。要检查签名是否有效， 请参考类FSDK.LTVVerifier。

参数

  [in] | client_data | 用户定义的对象，将传递给 FSDK.SignatureCallback中的回调函数。如果使用默认回调对象 验证当前签名，则此参数无用。默认值：null。
  [in] | pause | 决定验证过程是否需要暂停的暂停对象。 这可以是null，表示在验证过程中不暂停。 如果这不是null，则应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进对象。请通过函数 FSDK.Progressive.GetRateOfProgress检查当前进度的速率。如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue继续进度，直到进度完成。

## 类成员变量说明

## ◆ e_APFlagFoxitFlag

FSDK::Signature::e_APFlagFoxitFlag
| static

签名外观标志的枚举。

此枚举的值可以单独使用或组合使用。

如果设置，在签名外观上显示Foxit标志。

## ◆ e_DigestSHA1

FSDK::Signature::e_DigestSHA1
| static

签名摘要算法的枚举。

此枚举的值应单独使用。

签名摘要算法：sha1算法。

## ◆ e_DocPermUnrestricted

FSDK::Signature::e_DocPermUnrestricted
| static

签名文档权限的枚举。

此枚举的值应单独使用。

无限制。

## ◆ e_FieldMDPActionExclude

FSDK::Signature::e_FieldMDPActionExclude
| static

表单字段（指定表单字段除外）的标志将被设置为只读。

注解
  "指定表单字段"可以通过函数FSDK.Signature.GetFieldMDPActionFields 和FSDK.Signature.SetFieldMDPActionFields获取/设置。有关更多详细信息，请参考这些函数。

## ◆ e_FieldMDPActionInclude

FSDK::Signature::e_FieldMDPActionInclude
| static

指定表单字段的标志将被设置为只读。

注解
  "指定表单字段"可以通过函数FSDK.Signature.GetFieldMDPActionFields 和FSDK.Signature.SetFieldMDPActionFields获取/设置。有关更多详细信息，请参考这些函数。

## ◆ e_FieldMDPActionNone

FSDK::Signature::e_FieldMDPActionNone
| static

签名FieldMDP（"MDP"表示修改检测和防止）操作类型的枚举。

此枚举的值应单独使用。

无FieldMDP操作。

## ◆ e_KeyNameSigner

FSDK::Signature::e_KeyNameSigner
| static

签名键名的枚举。

此枚举的值应单独使用。

签名键名：签署者。

## ◆ e_LabelNameDN

FSDK::Signature::e_LabelNameDN
| static

可分辨名称的签名键名。

注解
  Foxit PDF SDK中可分辨名称的默认标签名为"DN: "。

## ◆ e_LabelNameLocation

FSDK::Signature::e_LabelNameLocation
| static

位置的签名标签名。

注解
  Foxit PDF SDK中位置的默认标签名为"Location: "。

## ◆ e_LabelNameProducer

FSDK::Signature::e_LabelNameProducer
| static

生产者名称的签名键名。

注解
  Foxit PDF SDK中生产者名称的默认标签名为空。

## ◆ e_LabelNameReason

FSDK::Signature::e_LabelNameReason
| static

原因的签名标签名。

注解
  Foxit PDF SDK中原因的默认标签名为"Reason: "。

## ◆ e_LabelNameSigner

FSDK::Signature::e_LabelNameSigner
| static

签名标签名的枚举。

此枚举的值应单独使用。

签署者的签名标签名。

注解
  Foxit PDF SDK中签署者的默认标签名为"Digitally signed by "。

## ◆ e_LabelNameSignTime

FSDK::Signature::e_LabelNameSignTime
| static

签署时间的签名标签名。

注解
  Foxit PDF SDK中签署时间的默认标签名为"Date: "。

## ◆ e_PAdESLevelNotPAdES

FSDK::Signature::e_PAdESLevelNotPAdES
| static

PAdES级别的枚举。

此枚举的值应单独使用。

不是PAdES签名。

## ◆ e_SignatureTypeOrdinary

FSDK::Signature::e_SignatureTypeOrdinary
| static

签名类型的枚举。

此枚举的值应单独使用。

签名类型：普通签名。

## ◆ e_StateUnknown

FSDK::Signature::e_StateUnknown
| static

签名状态的枚举。

此枚举的值可以单独使用或组合使用。
这些值可以分为四个部分：

- 从 FSDK.Signature.e_StateUnknown 开始的值（具有相同的前缀名称）表示签署状态， 在签名成功验证之前。
- 从 FSDK.Signature.e_StateVerifyValid 开始的值（具有相同的前缀名称）表示 签名的已验证状态。
- 从 FSDK.Signature.e_StateVerifyIssueValid 开始的值（具有相同的前缀名称）表示 签名发行者的已验证状态，提供更多详细信息。
- 从 FSDK.Signature.e_StateVerifyTimestampNone 开始的值（具有相同的前缀名称）表示 时间戳的已验证状态，提供更多详细信息。

未知签名。