Foxit PDF SDK
fsdk.Signature类 参考

Public 成员函数

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

详细描述

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

在签名中,过滤器和子过滤器键用于指定将用于签名和验证签名的 签名回调对象的过滤器和子过滤器。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",如果要使用默认签名回调进行签名, 请确保已向TimeStampServerMgr 设置默认时间戳服务器。 对于其他过滤器和子过滤器,或者如果用户想要为上述过滤器和子过滤器使用自定义签名回调, 用户应准备自定义签名回调并通过函数 fsdk.LibraryRegisterSignatureCallback 将回调注册到Foxit PDF SDK。
此类提供获取/设置签名信息/属性、签名或验证签名等功能。 例如:

在签名未签名的签名之前,用户可以调用以下函数来设置签名信息和 签名外观:

如果未签名的签名已设置一些签名信息,但文档直接保存或 在未签名的情况下关闭,这些数据(包括过滤器和子过滤器)将在 保存的文档或关闭的文档中丢失。当文档再次打开时,未签名的签名需要 至少指定过滤器和子过滤器进行签名;否则,此签名无法签名。

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

成员函数说明

◆ ClearSignedData()

def fsdk.Signature.ClearSignedData ( )

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

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

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

◆ EnableEmbedFont()

def fsdk.Signature.EnableEmbedFont (   enable_embed_font)

启用或禁用嵌入字体。

参数
指示是否为签名文本嵌入字体的标志。true表示为签名文本嵌入字体。 false表示不为签名文本嵌入字体。
返回
无。

◆ EnableIncrementalSaveForFirstSigning()

def fsdk.Signature.EnableIncrementalSaveForFirstSigning (   enable_incremental_save)

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

参数
[in]enable_incremental_save指示是否对首次签名使用增量保存的标志。 true表示对首次签名使用增量保存。 false表示对首次签名使用默认保存。
返回
无。

◆ GenerateAppearance()

def fsdk.Signature.GenerateAppearance ( )

生成未签名签名的外观。

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

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

◆ GetAppearanceFlags()

def fsdk.Signature.GetAppearanceFlags ( )

获取签名外观标志。

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

返回
签名外观标志。请参阅从fsdk.SignatureE_APFlagFoxitFlag 开始的值, 这将是这些值中的一个或它们的组合。

◆ GetBitmap()

def fsdk.Signature.GetBitmap ( )

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

返回
外观中使用的位图。如果返回的位图对象的函数fsdk.Bitmap.IsEmpty 返回值为true, 这意味着外观中没有使用位图或出现了错误。

◆ GetCert()

def fsdk.Signature.GetCert (   index)

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

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

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

◆ GetCertCount()

def fsdk.Signature.GetCertCount ( )

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

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

返回
证书数量。

◆ GetCertificateInfo()

def fsdk.Signature.GetCertificateInfo (   key)

获取证书信息。

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

参数
[in]key证书键字符串。目前可以是以下键之一:
  • "SerialNumber"

  • "Issuer"

  • "Subject"

  • "ValidPeriodFrom"

  • "ValidPeriodTo"

返回
证书信息字符串。
注解
对于"ValidPeriodFrom"或"ValidPeriodTo"键,时区值不会被计算在内。

◆ GetDocPermission()

def fsdk.Signature.GetDocPermission ( )

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

返回
文档权限。请参阅从fsdk.SignatureE_DocPermUnrestricted 开始的值, 应为这些值中的一个。

◆ GetDocument()

def fsdk.Signature.GetDocument ( )

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

返回
PDF文档对象。

◆ GetFieldMDPAction()

def fsdk.Signature.GetFieldMDPAction ( )

获取FieldMDP("MDP"表示修改检测和预防)操作类型。

返回
FieldMDP操作类型。请参阅从fsdk.SignatureE_FieldMDPActionNone 开始的值, 应为这些值中的一个。

◆ GetFieldMDPActionFields()

def fsdk.Signature.GetFieldMDPActionFields ( )

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

返回的字段名称数组与FieldMDP操作相关(可通过函数fsdk.Signature.GetFieldMDPAction 检查):

返回
FieldMDP操作字段名称数组。

◆ GetFilter()

def fsdk.Signature.GetFilter ( )

获取过滤器。

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

返回
过滤器字符串。

◆ GetKeyLabel()

def fsdk.Signature.GetKeyLabel (   label_name)

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

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

参数
[in]label_name键标签。请参考从fsdk.SignatureE_LabelNameSigner 开始的值, 这应该是这些值中的一个。
返回
指定键标签的字符串。

◆ GetKeyValue()

def fsdk.Signature.GetKeyValue (   key)

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

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

参数
[in]key键名。请参阅从fsdk.SignatureE_KeyNameSigner 开始的值, 应为这些值中的一个。
返回
字符串值。

◆ GetPAdESLevel()

def fsdk.Signature.GetPAdESLevel ( )

获取PAdES级别。

返回
PAdES级别。请参考从fsdk.SignatureE_PAdESLevelNotPAdES 开始的值, 这将是这些值中的一个。

◆ GetPagingSealGroupElements()

def fsdk.Signature.GetPagingSealGroupElements ( )

获取当前分页印章签名的组元素。

如果当前签名类型为fsdk.SignatureE_SignatureTypePagingSeal , 此函数将返回与当前签名关联的签名数组。 否则,将返回空数组。

返回
签名数组。

◆ GetPagingSealSignature()

def fsdk.Signature.GetPagingSealSignature ( )

获取分页印章签名。

如果当前签名类型为fsdk.SignatureE_SignatureTypePagingSeal ,此函数将返回 与当前签名关联的分页印章签名对象。

返回
PagingSealSignature 对象。如果返回对象的函数fsdk.Signature.IsEmpty 返回值为true,表示当前签名不是分页印章签名。

◆ GetSignatureDict()

def fsdk.Signature.GetSignatureDict ( )

获取签名字典。

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

返回
签名字典。如果出现任何错误,此函数将返回null

◆ GetSignatureType()

def fsdk.Signature.GetSignatureType ( )

获取签名类型。

返回
签名类型。请参考从fsdk.SignatureE_SignatureTypeOrdinary 开始的值, 这将是这些值中的一个。

◆ GetSignedVersionDocument()

def fsdk.Signature.GetSignedVersionDocument (   file_path)

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

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

参数
[in]file_path当前签名所属的原始打开PDF文档的完整路径。不应为空字符串。
返回
当前签名签署时的已签名版本中的PDF文档对象。 返回的PDF文档可能表示与检索当前签名的当前PDF文档不同的PDF文档,或就是当前PDF文档。 用户应确保在读取或操作已签名版本文档时保持当前PDF文档对象有效。 请确保返回的文档对象在使用类PDFDoc 中的大多数函数之前已成功加载。

◆ GetSignTime()

def fsdk.Signature.GetSignTime ( )

获取签名时间。

返回
接收签名时间的日期和时间对象。 如果未找到签名时间,此函数将返回所有值为0的日期和时间对象。

◆ GetState()

def fsdk.Signature.GetState ( )

获取当前状态。

  • 在验证签名之前,此函数用于获取当前签名是否已签名 或当前签名是否缺少签名数据的状态。

  • 在验证签名之后,此函数用于获取验证状态–表示 已验证的签名已签名;如果已验证的签名仍未签名,此函数将 获取未签名状态。

返回
签名状态的值。请参阅从fsdk.SignatureE_StateUnknown 开始的值, 这将是其中一个或它们的组合。
特别地,如果返回的状态是fsdk.SignatureE_StateNoSignData , 表示当前签名没有签名数据,请至少调用函数 fsdk.Signature.SetKeyValue 为当前签名设置必要的过滤器和子过滤器。 用户还可以在调用函数fsdk.Signature.StartSign 之前调用以下函数来设置签名和签名外观的其他数据:

◆ GetSubFilter()

def fsdk.Signature.GetSubFilter ( )

获取子过滤器。

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

返回
子过滤器字符串。

◆ IsEmpty()

def fsdk.Signature.IsEmpty ( )

检查当前对象是否为空。

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

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

◆ IsSigned()

def fsdk.Signature.IsSigned ( )

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

返回
true表示当前签名已签名,false表示未签名。

◆ IsTimeStamp()

def fsdk.Signature.IsTimeStamp ( )

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

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

◆ SetAppearanceContent()

def 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了解更多详情。
返回
None.

◆ SetAppearanceFlags()

def fsdk.Signature.SetAppearanceFlags (   appearance_flags)

设置签名外观标志。

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

参数
[in]appearance_flags签名外观标志。请参阅从 fsdk.SignatureE_APFlagFoxitFlag 开始的值,应为 这些值中的一个或它们的组合。
返回
无。

◆ SetBitmap()

def fsdk.Signature.SetBitmap (   bitmap)

为签名外观设置位图。

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

参数
[in]bitmap要设置到外观的位图。它应该是有效的。
返回
None.

◆ SetCertChain()

def fsdk.Signature.SetCertChain (   cert_chain)

设置证书链。

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

参数
[in]cert_chain表示证书链的字符串数组。
返回
None.

◆ SetCustomObject()

def fsdk.Signature.SetCustomObject (   key,
  pdf_object 
)

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

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

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

◆ SetDefaultContentsLength()

def fsdk.Signature.SetDefaultContentsLength (   default_length)

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

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

参数
[in]default_length签名值(称为已签名数据)的默认长度,以字节为单位。 不应小于4098。
返回
None.

◆ SetDocPermission()

def fsdk.Signature.SetDocPermission (   permission)

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

此函数仅对未签名的签名有用。如果对已签名的签名使用此函数,则不会执行任何操作。
关于权限值的一些注意事项:

参数
[in]permission文档权限。请参阅从fsdk.SignatureE_DocPermUnrestricted 开始的值, 应为这些值中的一个。
返回
无。

◆ SetFilter()

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

def fsdk.Signature.SetImage (   image,
  frame_index 
)

为签名外观设置图像,指定帧索引。

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

参数
[in]image图像。它的一帧将设置到当前签名。此图像至少包含 一帧,图像类型不应为fsdk.ImageE_Unknown
[in]frame_index帧索引。有效范围:从0到(count-1)。 count由函数fsdk.Image.GetFrameCount 返回。
返回
None.

◆ SetImage() [2/2]

def 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 返回。
返回
None.

◆ SetKeyLabel()

def fsdk.Signature.SetKeyLabel (   label_name,
  label_value 
)

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

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

参数
[in]label_name键标签。请参阅从fsdk.SignatureE_LabelNameSigner 开始的值, 应为这些值中的一个。
[in]label_value键标签的新字符串值。如果这是空字符串,Foxit PDF SDK将使用默认标签。 请参阅从fsdk.SignatureE_LabelNameSigner 开始的值的注释了解更多详细信息。
返回
无。

◆ SetKeyValue()

def fsdk.Signature.SetKeyValue (   key,
  value 
)

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

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

参数
[in]key键名。请参阅从fsdk.SignatureE_KeyNameSigner 开始的值, 应为这些值中的一个。
[in]value新的字符串值。
返回
无。

◆ SetSignTime()

def fsdk.Signature.SetSignTime (   sign_time)

设置签名时间。

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

参数
[in]sign_time签名时间。
返回
无。

◆ SetSubFilter()

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

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

对于其他过滤器和子过滤器,或者如果用户想要为上述过滤器和子过滤器使用自定义签名回调, 请确保已通过函数fsdk.LibraryRegisterSignatureCallback 将自定义签名回调注册到Foxit PDF SDK。
对于符合PDF/A规范的PDF文档,建议调用fsdk.LibrarySetDefaultICCProfilesPath 并在调用当前函数之前通过调用fsdk.Signature.EnableEmbedFont 启用字体嵌入。 签名可能需要很长时间,因此Foxit PDF SDK使用渐进过程来执行此操作。

参数
[in]cert_path将用于签名的证书文件的完整路径(包括文件名和扩展名)。 如果在自定义签名回调中不需要,可以是空字符串。当此文件路径不为空时, 应为有效路径。
如果要使用默认签名回调来签名当前签名, 这可以是PFX证书文件。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参阅从fsdk.SignatureE_DigestSHA1 开始的值, 应为这些值中的一个。
[in]save_path用于保存签名结果的完整PDF文件路径。已签名文档将 保存到另一个PDF文件。
[in]client_data用户定义对象,将传递给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/4]

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

对于其他过滤器和子过滤器,或者如果用户想要为上述过滤器和子过滤器使用自定义签名回调, 请确保已通过函数fsdk.LibraryRegisterSignatureCallback 将自定义签名回调注册到Foxit PDF SDK。
对于符合PDF/A规范的PDF文档,建议调用fsdk.LibrarySetDefaultICCProfilesPath 并在调用当前函数之前通过调用fsdk.Signature.EnableEmbedFont 启用字体嵌入。 签名可能需要很长时间,因此Foxit PDF SDK使用渐进式处理来完成此操作。

参数
[in]cert_file_stream用户实现的fsdk.StreamCallback 对象, 用于访问将用于签名的证书文件的内容。 This can be null if not necessary in custom signature callback.
如果在自定义签名回调中不需要,这可以为null
如果将使用默认签名回调来签名当前签名, 可以使用PFX证书文件。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参考从 fsdk.SignatureE_DigestSHA1 开始的值,这应该是这些值中的一个。
[in]save_path用于保存签名结果的完整PDF文件路径。已签名的文档将 保存到另一个PDF文件。
[in]client_data用户定义的对象,将传递给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/4]

def fsdk.Signature.StartSign (   cert_file_stream,
  cert_password,
  digest_algorithm,
  stream_callback,
  client_data,
  pause 
)

如果当前签名为未签名状态,则开始签名当前签名。

此函数用于未签名的签名对象。当前签名的过滤器和子过滤器键指定了 用于签名当前签名的签名回调对象的名称。因此在签名之前, 请确保当前签名具有有效的过滤器和子过滤器字符串值。如果过滤器和子过滤器 是以下字符串之一,意味着使用Foxit PDF SDK中的默认签名回调:

  • filter: "Adobe.PPKLite" and sub filter: "adbe.pkcs7.detached"

  • filter: "Adobe.PPKLite" and sub filter: "adbe.pkcs7.sha1"

  • filter: "Adobe.PPKLite" and sub filter: "ETSI.CAdES.detached"

  • filter: "Adobe.PPKLite" and sub filter: "ETSI.RFC3161"

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

参数
[in]cert_file_stream用户实现的fsdk.StreamCallback 对象, 用于访问将用于签名的证书文件内容。 如果在自定义签名回调中不需要,这可以是null
如果要使用默认签名回调来签名当前签名,可以使用PFX证书文件。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参考从fsdk.SignatureE_DigestSHA1 开始的值, 这应该是这些值中的一个。
[in]stream_callback用户实现的fsdk.StreamCallback 对象,用于保存签名结果。 已签名的文档将保存到另一个PDF文件。
[in]client_data用户定义的对象,将传递给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() [4/4]

def 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",如果要使用它们的默认签名回调进行签名, 请确保已向TimeStampServerMgr 设置默认的时间戳服务器。 对于其他过滤器和子过滤器,或者如果用户想要为上述过滤器和子过滤器使用自定义签名回调, 请确保已通过函数fsdk.LibraryRegisterSignatureCallback 向Foxit PDF SDK注册自定义签名回调。
对于符合PDF/A规范的PDF文档,建议在调用当前函数之前调用fsdk.LibrarySetDefaultICCProfilesPath 并通过调用fsdk.Signature.EnableEmbedFont 启用字体嵌入。 签名操作可能需要很长时间,因此Foxit PDF SDK使用渐进式处理来完成此操作。

参数
[in]cert_path证书文件的完整路径(包括文件名和扩展名), 将用于签名。如果在自定义签名回调中不需要,这可以是空字符串。 当此文件路径不为空时,它应该是有效路径。
如果要使用默认签名回调来签名当前签名, 这可以是PFX证书文件。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参考从fsdk.SignatureE_DigestSHA1 开始的值, 这应该是这些值中的一个。
[in]stream_callback用户实现的fsdk.StreamCallback 对象,用于保存签名结果。 已签名的文档将保存到另一个PDF文件。
[in]client_data用户定义的对象,将传递给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()

def fsdk.Signature.StartVerify (   client_data,
  pause 
)

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

此函数用于已签名的签名。当前签名的过滤器和子过滤器键指定 将用于验证当前签名的签名回调对象的名称。因此在验证之前, 请确保:必要的签名回调对象已通过函数 fsdk.LibraryRegisterSignatureCallback 注册。如果当前已签名签名的过滤器和子过滤器 是以下字符串之一,表示使用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开始,此函数仅用于验证签名的完整性。要检查签名是否有效, 请参阅类LTVVerifier

参数
[in]client_data用户定义对象,将传递给SignatureCallback 中的回调函数。 如果要使用默认回调对象来验证当前签名,则此参数无用。默认值:null
[in]pause决定验证过程是否需要暂停的暂停对象。 可以为null,表示在验证过程中不暂停。 如果不为null,应为用户实现的有效暂停对象。 默认值:null
返回
渐进对象。请通过函数fsdk.Progressive.GetRateOfProgress 检查当前进度的比率。 如果比率尚未达到100,调用函数fsdk.Progressive.Continue 继续进度,直到进度完成。