Foxit PDF SDK
com.foxit.sdk.pdf.Signature类 参考
类 com.foxit.sdk.pdf.Signature 继承关系图:
com.foxit.sdk.pdf.interform.Field com.foxit.sdk.common.Base com.foxit.sdk.pdf.PagingSealSignature

Public 成员函数

 Signature (Field field)
 构造函数,使用父类对象。
更多...
 
 Signature (PDFDoc document, PDFDictionary sig_field_dict)
 构造函数,从签名字段字典创建。
更多...
 
boolean clearSignedData () throws com.foxit.sdk.PDFException
 如果当前签名已签名且验证有效,清除数据和外观。
更多...
 
synchronized void delete ()
 直接清除C++相关资源。 更多...
 
void enableEmbedFont (boolean enable_embed_font)
 启用或禁用嵌入字体。
更多...
 
void enableIncrementalSaveForFirstSigning (boolean enable_incremental_save)
 启用或禁用首次签名的增量保存。用户应在调用 函数Signature.startSign 之前调用此函数。
默认值:false
更多...
 
boolean generateAppearance () throws com.foxit.sdk.PDFException
 生成未签名签名的外观。
更多...
 
int getAppearanceFlags () throws com.foxit.sdk.PDFException
 获取签名外观标志。
更多...
 
Bitmap getBitmap () throws com.foxit.sdk.PDFException
 获取用于签名外观的位图。
更多...
 
boolean getByteRangeArray (int[] out_byte_range_array) throws com.foxit.sdk.PDFException
 获取字节范围数据,包括4个元素。
更多...
 
String getCert (int index) throws com.foxit.sdk.PDFException
 通过索引从当前签名的证书链中获取证书。
更多...
 
int getCertCount () throws com.foxit.sdk.PDFException
 获取当前签名证书链中的证书数量。
更多...
 
String getCertificateInfo (String key) throws com.foxit.sdk.PDFException
 获取证书信息。
更多...
 
int getDocPermission () throws com.foxit.sdk.PDFException
 获取当前签名的文档权限。
更多...
 
PDFDoc getDocument () throws com.foxit.sdk.PDFException
 获取当前签名所属的PDF文档。
更多...
 
int getFieldMDPAction () throws com.foxit.sdk.PDFException
 获取FieldMDP("MDP"表示修改检测和预防)操作类型。
更多...
 
WStringArray getFieldMDPActionFields () throws com.foxit.sdk.PDFException
 获取用于FieldMDP操作的字段名称数组。
更多...
 
String getFilter () throws com.foxit.sdk.PDFException
 获取过滤器。
更多...
 
String getKeyLabel (int label_name) throws com.foxit.sdk.PDFException
 获取指定键标签的字符串。
更多...
 
String getKeyValue (int key) throws com.foxit.sdk.PDFException
 获取指定键名的字符串值。
更多...
 
int getPAdESLevel () throws com.foxit.sdk.PDFException
 获取PAdES级别。
更多...
 
SignatureArray getPagingSealGroupElements () throws com.foxit.sdk.PDFException
 获取当前分页印章签名的组元素。
更多...
 
PagingSealSignature getPagingSealSignature () throws com.foxit.sdk.PDFException
 获取分页印章签名。
更多...
 
PDFDictionary getSignatureDict () throws com.foxit.sdk.PDFException
 获取签名字典。
更多...
 
int getSignatureType () throws com.foxit.sdk.PDFException
 获取签名类型。
更多...
 
PDFDoc getSignedVersionDocument (String file_path) throws com.foxit.sdk.PDFException
 获取当前签名签署时的已签名版本中的PDF文档。
更多...
 
DateTime getSignTime () throws com.foxit.sdk.PDFException
 获取签名时间。
更多...
 
int getState () throws com.foxit.sdk.PDFException
 获取当前状态。
更多...
 
String getSubFilter () throws com.foxit.sdk.PDFException
 获取子过滤器。
更多...
 
boolean isEmpty ()
 检查当前对象是否为空。
更多...
 
boolean isSigned () throws com.foxit.sdk.PDFException
 检查当前签名是否已签名。
更多...
 
boolean isTimeStamp () throws com.foxit.sdk.PDFException
 检查当前签名是否为时间戳签名。
更多...
 
void setAppearanceContent (String appearance_content) throws com.foxit.sdk.PDFException
 为已签名签名外观设置自定义外观内容(作为低级绘图操作命令)。
更多...
 
void setAppearanceFlags (int appearance_flags) throws com.foxit.sdk.PDFException
 设置签名外观标志。
更多...
 
void setBitmap (Bitmap bitmap) throws com.foxit.sdk.PDFException
 为签名外观设置位图。
更多...
 
void setCertChain (WStringArray cert_chain) throws com.foxit.sdk.PDFException
 设置证书链。
更多...
 
void setCustomObject (String key, PDFObject pdf_object) throws com.foxit.sdk.PDFException
 为签名字典设置自定义PDF对象。
更多...
 
void setDefaultContentsLength (int default_length) throws com.foxit.sdk.PDFException
 设置表示签名值(称为已签名数据)的签名内容的默认长度。
更多...
 
void setDocPermission (int permission) throws com.foxit.sdk.PDFException
 设置当前签名的文档权限。
更多...
 
void setFieldMDPActionFields (int action, WStringArray field_array) throws com.foxit.sdk.PDFException
 设置FieldMDP("MDP"表示修改检测和预防)操作名称数组。
更多...
 
void setFilter (String filter) throws com.foxit.sdk.PDFException
 设置过滤器。
更多...
 
void setImage (Image image, int frame_index) throws com.foxit.sdk.PDFException
 为签名外观设置图像,指定帧索引。
更多...
 
void setImage (String file_path, int frame_index) throws com.foxit.sdk.PDFException
 使用指定帧索引为签名外观设置图像。
更多...
 
void setKeyLabel (int label_name, String label_value) throws com.foxit.sdk.PDFException
 设置指定键标签的字符串。
更多...
 
void setKeyValue (int key, String value) throws com.foxit.sdk.PDFException
 设置指定键名的字符串值。
更多...
 
void setSignTime (DateTime sign_time) throws com.foxit.sdk.PDFException
 设置签名时间。
更多...
 
void setSubFilter (String sub_filter) throws com.foxit.sdk.PDFException
 设置子过滤器。
更多...
 
Progressive startSign (StreamCallback cert_file_stream, byte[] cert_password, int digest_algorithm, StreamCallback stream_callback, java.lang.Object client_data, PauseCallback pause) throws com.foxit.sdk.PDFException
 如果当前签名为未签名状态,则开始签名当前签名。
更多...
 
Progressive startSign (StreamCallback cert_file_stream, byte[] cert_password, int digest_algorithm, String save_path, java.lang.Object client_data, PauseCallback pause) throws com.foxit.sdk.PDFException
 如果当前签名是未签名的,开始签名当前签名。
更多...
 
Progressive startSign (String cert_path, byte[] cert_password, int digest_algorithm, StreamCallback stream_callback, java.lang.Object client_data, PauseCallback pause) throws com.foxit.sdk.PDFException
 如果当前签名为未签名状态,则开始签名当前签名。
更多...
 
Progressive startSign (String cert_path, byte[] cert_password, int digest_algorithm, String save_path, java.lang.Object client_data, PauseCallback pause) throws com.foxit.sdk.PDFException
 如果当前签名未签名,开始签名当前签名。
更多...
 
Progressive startVerify (java.lang.Object client_data, PauseCallback pause) throws com.foxit.sdk.PDFException
 如果当前签名已签名,开始验证当前签名的完整性。
更多...
 
- Public 成员函数 继承自 com.foxit.sdk.pdf.interform.Field
 Field (Field field)
 构造函数,使用另一个表单字段对象。
更多...
 
 Field (PDFDoc document, PDFDictionary field_dict) throws com.foxit.sdk.PDFException
 从字段字典构造函数。
更多...
 
int getAlignment () throws com.foxit.sdk.PDFException
 获取对齐值。
更多...
 
String getAlternateName () throws com.foxit.sdk.PDFException
 获取备用名称。
更多...
 
Control getControl (int index) throws com.foxit.sdk.PDFException
 通过索引获取表单控件。
更多...
 
Control getControl (PDFPage page, int index) throws com.foxit.sdk.PDFException
 在指定PDF页面中通过索引获取表单控件。
更多...
 
int getControlCount () throws com.foxit.sdk.PDFException
 获取表单控件数量。
更多...
 
int getControlCount (PDFPage page) throws com.foxit.sdk.PDFException
 获取指定PDF页面中的表单控件数量。
更多...
 
DefaultAppearance getDefaultAppearance () throws com.foxit.sdk.PDFException
 获取默认外观数据。
更多...
 
String getDefaultValue () throws com.foxit.sdk.PDFException
 获取默认值。
更多...
 
PDFObject getDefaultValueObj () throws com.foxit.sdk.PDFException
 获取字段默认值的PDF对象。
更多...
 
PDFDictionary getDict () throws com.foxit.sdk.PDFException
 获取当前对象的PDF字典。
更多...
 
int getFlags () throws com.foxit.sdk.PDFException
 获取字段标志。
更多...
 
PDFObject getInheritedAttribute (String attribute_name) throws com.foxit.sdk.PDFException
 获取指定属性的PDF对象,该属性可能从字段树中的祖先节点继承。
更多...
 
String getMappingName () throws com.foxit.sdk.PDFException
 获取映射名称。
更多...
 
int getMaxLength () throws com.foxit.sdk.PDFException
 获取字段文本的最大长度(以字符为单位)。
更多...
 
String getName () throws com.foxit.sdk.PDFException
 获取字段名称。
更多...
 
ChoiceOptionArray getOptions () throws com.foxit.sdk.PDFException
 获取列表框或组合框的选项。
更多...
 
int getTopVisibleIndex () throws com.foxit.sdk.PDFException
 获取可滚动列表框的选项顶部索引。
更多...
 
int getType () throws com.foxit.sdk.PDFException
 获取字段类型。
更多...
 
String getValue () throws com.foxit.sdk.PDFException
 获取值。
更多...
 
PDFObject getValueObj () throws com.foxit.sdk.PDFException
 获取字段值的PDF对象。
更多...
 
boolean reset () throws com.foxit.sdk.PDFException
 将当前字段中的数据重置为其默认值。(不支持签名字段)
更多...
 
void setAlignment (int alignment) throws com.foxit.sdk.PDFException
 设置表单的对齐属性,作为文档范围的默认值。(不支持签名字段)
更多...
 
void setAlternateName (String alternate_name) throws com.foxit.sdk.PDFException
 设置备用名称。(不支持签名字段)
更多...
 
void setDefaultAppearance (DefaultAppearance default_ap) throws com.foxit.sdk.PDFException
 设置默认外观数据。
更多...
 
void setDefaultValue (String value) throws com.foxit.sdk.PDFException
 设置默认值。
更多...
 
void setFlags (int flags) throws com.foxit.sdk.PDFException
 设置字段标志。
更多...
 
void setMappingName (String name) throws com.foxit.sdk.PDFException
 设置映射名称。(不支持签名字段)
更多...
 
void setMaxLength (int max_length) throws com.foxit.sdk.PDFException
 设置字段文本的最大长度(以字符为单位)。
更多...
 
void setOptions (ChoiceOptionArray option_array) throws com.foxit.sdk.PDFException
 设置列表框或组合框的选项。
更多...
 
void setTopVisibleIndex (int index) throws com.foxit.sdk.PDFException
 设置可滚动列表框的顶部索引。
更多...
 
void setValue (String value) throws com.foxit.sdk.PDFException
 设置值。
更多...
 

静态 Public 属性

static final int e_APFlagBitmap = 0x0080
 如果设置,在签名外观上显示位图。

 
static final int e_APFlagDN = 0x0010
 如果设置,在签名外观上显示专有名称。

 
static final int e_APFlagFoxitEditorFlag = 0x0200
 如果设置,在签名外观上显示Foxit Editor内容。

 
static final int e_APFlagFoxitFlag = 0x0001
 如果设置,在签名外观上显示Foxit标志。

 
static final int e_APFlagLabel = 0x0002
 如果设置,在签名外观上显示标签。

 
static final int e_APFlagLocation = 0x0020
 如果设置,在签名外观上显示位置。

 
static final int e_APFlagProducer = 0x0400
 如果设置,在签名外观上显示生产者内容。

 
static final int e_APFlagReason = 0x0004
 如果设置,在签名外观上显示原因。

 
static final int e_APFlagSigner = 0x0040
 如果设置,在签名外观上显示签名者。

 
static final int e_APFlagSigningTime = 0x0008
 如果设置,在签名外观上显示签名时间。

 
static final int e_APFlagText = 0x0100
 如果设置,在签名外观上显示文本内容。

 
static final int e_DigestSHA1 = 0
 签名摘要算法:sha1算法。

 
static final int e_DigestSHA256 = 1
 签名摘要算法:sha256算法。

 
static final int e_DigestSHA384 = 2
 签名摘要算法:sha384算法。

 
static final int e_DigestSHA512 = 3
 签名摘要算法:sha512算法。

 
static final int e_DocPermFillingFormAndSigning = 2
 允许的更改是填写表单、实例化页面模板和签名。 其他更改将使签名无效。

 
static final int e_DocPermFillingFormSigningAndAnnotating = 3
 允许的更改与2相同,以及创建、删除和修改注释。 其他更改将使签名无效。

 
static final int e_DocPermNoChangesAllowed = 1
 不允许对PDF文档(被签名签署)进行任何更改。 对此类PDF文档的任何更改都将使签名无效。

 
static final int e_DocPermUnrestricted = 0
 无限制。

 
static final int e_FieldMDPActionAll = 1
 所有表单字段的标志将被设置为只读。

 
static final int e_FieldMDPActionExclude = 3
 表单字段(除指定表单字段外)的标志将被设置为只读。
更多...
 
static final int e_FieldMDPActionInclude = 2
 指定表单字段的标志将被设置为只读。
更多...
 
static final int e_FieldMDPActionNone = 0
 无字段MDP操作。

 
static final int e_KeyNameContactInfo = 3
 签名键名:联系信息。

 
static final int e_KeyNameDN = 4
 签名键名:专有名称。

 
static final int e_KeyNameLocation = 1
 签名键名:位置。

 
static final int e_KeyNameProducer = 6
 签名键名:生产者内容。

 
static final int e_KeyNameReason = 2
 签名键名:原因。

 
static final int e_KeyNameSigner = 0
 签名键名:签名者。

 
static final int e_KeyNameText = 5
 签名键名:文本内容。

 
static final int e_LabelNameDN = 4
 专有名称的签名键名。
更多...
 
static final int e_LabelNameLocation = 1
 位置的签名标签名称。
更多...
 
static final int e_LabelNameProducer = 6
 生产者名称的签名键名。
更多...
 
static final int e_LabelNameReason = 2
 原因的签名标签名称。
更多...
 
static final int e_LabelNameSigner = 0
 签名者的签名标签名称。
更多...
 
static final int e_LabelNameSignTime = 3
 签名时间的签名标签名称。
更多...
 
static final int e_PAdESLevelBB = 2
 PAdES级别:B-B。

 
static final int e_PAdESLevelBLT = 4
 PAdES级别:B-LT。

 
static final int e_PAdESLevelBLTA = 5
 PAdES级别:B-LTA。

 
static final int e_PAdESLevelBT = 3
 PAdES级别:B-T。

 
static final int e_PAdESLevelNone = 1
 PAdES级别:无。

 
static final int e_PAdESLevelNotPAdES = 0
 不是PAdES签名。

 
static final int e_SignatureTypeOrdinary = 0
 签名类型:普通。

 
static final int e_SignatureTypePagingSeal = 4
 签名类型:分页印章。

 
static final int e_SignatureTypeTimeStamp = 3
 签名类型:时间戳。

 
static final int e_StateCertCannotGetVRI = 0x04000000
 无法获取验证相关信息。

 
static final int e_StateNoSignData = 0x00000200
 签名没有任何用于签名的数据。这意味着签名字典中没有"V"条目。

 
static final int e_StateSigned = 0x00000002
 已签名的签名。

 
static final int e_StateUnknown = 0x80000000
 未知签名。

 
static final int e_StateUnsigned = 0x00000001
 未签名的签名。

 
static final int e_StateVerifyChange = 0x00000080
 文档在签名范围内已被更改。(这表示签名无效。)

 
static final int e_StateVerifyChangeIllegal = 0x10000000
 文档在签名范围之外已被更改,并且更改使签名无效。

 
static final int e_StateVerifyChangeLegal = 0x08000000
 文档在签名范围之外已被更改,但更改是被允许的。

 
static final int e_StateVerifyErrorByteRange = 0x00000040
 非预期字节范围。

 
static final int e_StateVerifyErrorData = 0x00000010
 签名数据已损坏(这意味着签名数据无法正确解析)。

 
static final int e_StateVerifyIncredible = 0x00000100
 签名不可信(包含攻击性)。

 
static final int e_StateVerifyInvalid = 0x00000008
 签名的验证状态无效。

 
static final int e_StateVerifyIssueCurrent = 0x00020000
 验证的发行者是当前发行者。

 
static final int e_StateVerifyIssueExpire = 0x00008000
 用于验证发行者的证书已过期。

 
static final int e_StateVerifyIssueRevoke = 0x00004000
 用于验证发行者的证书已被撤销。

 
static final int e_StateVerifyIssueUncheck = 0x00010000
 不检查发行者。

 
static final int e_StateVerifyIssueUnknown = 0x00002000
 发行者的验证状态未知。

 
static final int e_StateVerifyIssueValid = 0x00001000
 发行者的验证状态有效。

 
static final int e_StateVerifyNoChange = 0x00000400
 文档在签名范围内未被更改。

 
static final int e_StateVerifyNoSupportWay = 0x00000020
 不支持的签名。

 
static final int e_StateVerifyTimestampDoc = 0x00080000
 签名是时间戳签名。

 
static final int e_StateVerifyTimestampExpire = 0x00400000
 时间戳的验证状态已过期。

 
static final int e_StateVerifyTimestampInvalid = 0x00200000
 时间戳的验证状态无效。

 
static final int e_StateVerifyTimestampIssueUnknown = 0x00800000
 时间戳发行者的验证状态未知。

 
static final int e_StateVerifyTimestampIssueValid = 0x01000000
 时间戳发行者的验证状态有效。

 
static final int e_StateVerifyTimestampNone = 0x00040000
 没有时间戳或不检查时间戳。

 
static final int e_StateVerifyTimestampTimeBefore = 0x02000000
 时间戳时间的验证状态有效,因为时间在过期日期之前。

 
static final int e_StateVerifyTimestampValid = 0x00100000
 时间戳的验证状态有效。

 
static final int e_StateVerifyValid = 0x00000004
 签名的验证状态有效。

 
- 静态 Public 属性 继承自 com.foxit.sdk.pdf.interform.Field
static final int e_FlagButtonNoToggleToOff = 0x100
 (仅对单选按钮有用)如果设置,必须始终选择一个单选按钮; 点击当前选择的按钮没有效果。如果清除,点击选择的按钮会取消选择它, 不留下任何选择的按钮。

 
static final int e_FlagButtonRadiosInUnison = 0x200
 (仅对单选按钮有用)如果设置,单选按钮字段内使用相同开启状态值的 一组单选按钮将一致地开启和关闭;也就是如果一个被选中,它们都被选中。 如果清除,按钮是互斥的。

 
static final int e_FlagChoiceCommitOnSelChange = 0x400
 (仅对选择字段有用)如果设置,一旦用指点设备进行选择,新值就立即提交; 如果清除,新值直到用户退出字段时才提交。

 
static final int e_FlagChoiceMultiSelect = 0x100
 (仅对列表框有用)如果设置,可以同时选择多个项目; if clear, no more than one item at a time may be selected.

 
static final int e_FlagChoiceSort = 0x200
 (仅对选择字段有用)如果设置,字段的选项项应按字母顺序排序。

 
static final int e_FlagComboEdit = 0x100
 (仅对组合框有用)如果设置,组合框包括带有下拉列表的可编辑文本控件, 如果清除,它只包括下拉列表。

 
static final int e_FlagNoExport = 0x04
 如果设置,字段不能由提交表单操作导出。

 
static final int e_FlagReadOnly = 0x01
 如果设置,用户不能更改字段的值。任何关联的控件注释将不会 与用户交互;也就是说,它们不会响应鼠标点击或响应鼠标移动而改变外观。 此标志对于其值被计算或从数据库导入的字段很有用。

 
static final int e_FlagRequired = 0x02
 如果设置,字段在由提交表单操作导出时必须有一个值。

 
static final int e_FlagTextComb = 0x2000
 (仅对文本字段有用)如果设置,使用梳状格式。
更多...
 
static final int e_FlagTextDoNotScroll = 0x1000
 (仅对文本字段有用)如果设置,字段不滚动(单行字段水平滚动, 多行字段垂直滚动)以容纳超出其注释矩形的更多文本。 一旦字段满了,就不再接受更多文本。

 
static final int e_FlagTextFileSelect = 0x400
 (仅对文本字段有用)如果设置,在字段中输入的文本表示文件的路径名, 其内容将作为字段的值提交。

 
static final int e_FlagTextMultiline = 0x100
 (仅对文本字段有用)如果设置,文本字段可以包含多行文本; 如果清除,字段的文本限制为单行。

 
static final int e_FlagTextNoSpellCheck = 0x800
 (仅对文本字段有用)如果设置,在字段中输入的文本不进行拼写检查。

 
static final int e_FlagTextPassword = 0x200
 (仅对文本字段有用)如果设置,字段用于输入不应在屏幕上可见回显的安全密码。 从键盘输入的字符应该以某种不可读的形式回显,例如星号或项目符号字符。
更多...
 
static final int e_FlagTextRichText = 0x4000
 (仅对文本字段有用)如果设置,此字段的值应表示为富文本字符串。

 
static final int e_TypeCheckBox = 2
 表单字段类型:复选框。

 
static final int e_TypeComboBox = 4
 表单字段类型:组合框。

 
static final int e_TypeListBox = 5
 表单字段类型:列表框。

 
static final int e_TypePushButton = 1
 表单字段类型:按钮。

 
static final int e_TypeRadioButton = 3
 表单字段类型:单选按钮。

 
static final int e_TypeSignature = 7
 表单字段类型:签名字段。

 
static final int e_TypeTextField = 6
 表单字段类型:文本字段。

 
static final int e_TypeUnknown = 0
 表单字段类型:未知。

 

详细描述

数字签名(PDF 1.3)可用于验证用户身份和文档内容。 它存储有关签名者和文档签名时状态的信息。签名包含在签名字段中, 作为表单字段的一种类型,因此类Signature 派生自 类com.foxit.sdk.pdf.interform.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 设置默认时间戳服务器。 对于其他过滤器和子过滤器,或者如果用户想要为上述过滤器和子过滤器使用自定义签名回调, 用户应准备自定义签名回调并通过函数 common.Library.registerSignatureCallback 将回调注册到Foxit PDF SDK。
此类提供获取/设置签名信息/属性、签名或验证签名等功能。 例如:

  • 要签名未签名的签名,请使用函数Signature.startSign 。 成功签名后,强烈建议用户关闭当前文档, 然后打开已签名的PDF文档,然后执行后续操作。
  • 要验证已签名签名的完整性,请使用函数Signature.startVerify 。 要检查已签名的签名是否有效,请参阅类LTVVerifier
  • 要直接检索签名字典,请使用函数Signature.getSignatureDict

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

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

参见
com.foxit.sdk.pdf.interform.Field
com.foxit.sdk.pdf.interform.Form
PDFDoc
PDFPage
TimeStampServerMgr
LTVVerifier

构造及析构函数说明

◆ Signature() [1/2]

com.foxit.sdk.pdf.Signature.Signature ( Field  field)

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

参数
[in]field父类对象。

◆ Signature() [2/2]

com.foxit.sdk.pdf.Signature.Signature ( PDFDoc  document,
PDFDictionary  sig_field_dict 
)

构造函数,从签名字段字典创建。

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

成员函数说明

◆ clearSignedData()

boolean com.foxit.sdk.pdf.Signature.clearSignedData ( ) throws com.foxit.sdk.PDFException

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

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

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

◆ delete()

synchronized void com.foxit.sdk.pdf.Signature.delete ( )

直接清除C++相关资源。

返回
无。
注解
一旦这个接口被调用,这个对象将不能再被使用。

重载 com.foxit.sdk.pdf.interform.Field .

com.foxit.sdk.pdf.PagingSealSignature 重载.

◆ enableEmbedFont()

void com.foxit.sdk.pdf.Signature.enableEmbedFont ( boolean  enable_embed_font)

启用或禁用嵌入字体。

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

◆ enableIncrementalSaveForFirstSigning()

void com.foxit.sdk.pdf.Signature.enableIncrementalSaveForFirstSigning ( boolean  enable_incremental_save)

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

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

◆ generateAppearance()

boolean com.foxit.sdk.pdf.Signature.generateAppearance ( ) throws com.foxit.sdk.PDFException

生成未签名签名的外观。

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

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

com.foxit.sdk.pdf.PagingSealSignature 重载.

◆ getAppearanceFlags()

int com.foxit.sdk.pdf.Signature.getAppearanceFlags ( ) throws com.foxit.sdk.PDFException

获取签名外观标志。

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

返回
签名外观标志。请参阅从com.foxit.sdk.pdf.Signature.e_APFlagFoxitFlag 开始的值, 这将是这些值中的一个或它们的组合。

◆ getBitmap()

Bitmap com.foxit.sdk.pdf.Signature.getBitmap ( ) throws com.foxit.sdk.PDFException

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

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

◆ getByteRangeArray()

boolean com.foxit.sdk.pdf.Signature.getByteRangeArray ( int[]  out_byte_range_array) throws com.foxit.sdk.PDFException

获取字节范围数据,包括4个元素。

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

参数
[out]out_byte_range_array接收字节范围数据的输出参数。 请确保此数组可以包含4个元素。
返回
true表示成功,false表示失败。

◆ getCert()

String com.foxit.sdk.pdf.Signature.getCert ( int  index) throws com.foxit.sdk.PDFException

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

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

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

◆ getCertCount()

int com.foxit.sdk.pdf.Signature.getCertCount ( ) throws com.foxit.sdk.PDFException

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

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

返回
证书数量。

◆ getCertificateInfo()

String com.foxit.sdk.pdf.Signature.getCertificateInfo ( String  key) throws com.foxit.sdk.PDFException

获取证书信息。

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

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

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

◆ getDocPermission()

int com.foxit.sdk.pdf.Signature.getDocPermission ( ) throws com.foxit.sdk.PDFException

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


返回
文档权限。请参阅从com.foxit.sdk.pdf.Signature.e_DocPermUnrestricted 开始的值, 应为这些值中的一个。

◆ getDocument()

PDFDoc com.foxit.sdk.pdf.Signature.getDocument ( ) throws com.foxit.sdk.PDFException

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

返回
PDF文档对象。

◆ getFieldMDPAction()

int com.foxit.sdk.pdf.Signature.getFieldMDPAction ( ) throws com.foxit.sdk.PDFException

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

返回
FieldMDP操作类型。请参阅从com.foxit.sdk.pdf.Signature.e_FieldMDPActionNone 开始的值, 应为这些值中的一个。

◆ getFieldMDPActionFields()

WStringArray com.foxit.sdk.pdf.Signature.getFieldMDPActionFields ( ) throws com.foxit.sdk.PDFException

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

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


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

◆ getFilter()

String com.foxit.sdk.pdf.Signature.getFilter ( ) throws com.foxit.sdk.PDFException

获取过滤器。

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

返回
过滤器字符串。

◆ getKeyLabel()

String com.foxit.sdk.pdf.Signature.getKeyLabel ( int  label_name) throws com.foxit.sdk.PDFException

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

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

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

◆ getKeyValue()

String com.foxit.sdk.pdf.Signature.getKeyValue ( int  key) throws com.foxit.sdk.PDFException

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

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

参数
[in]key键名。请参阅从com.foxit.sdk.pdf.Signature.e_KeyNameSigner 开始的值, 应为这些值中的一个。
返回
字符串值。

◆ getPAdESLevel()

int com.foxit.sdk.pdf.Signature.getPAdESLevel ( ) throws com.foxit.sdk.PDFException

获取PAdES级别。

返回
PAdES级别。请参考从com.foxit.sdk.pdf.Signature.e_PAdESLevelNotPAdES 开始的值, 这将是这些值中的一个。

◆ getPagingSealGroupElements()

SignatureArray com.foxit.sdk.pdf.Signature.getPagingSealGroupElements ( ) throws com.foxit.sdk.PDFException

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

如果当前签名类型为com.foxit.sdk.pdf.Signature.e_SignatureTypePagingSeal , 此函数将返回与当前签名关联的签名数组。 否则,将返回空数组。

返回
签名数组。

◆ getPagingSealSignature()

PagingSealSignature com.foxit.sdk.pdf.Signature.getPagingSealSignature ( ) throws com.foxit.sdk.PDFException

获取分页印章签名。

如果当前签名类型为com.foxit.sdk.pdf.Signature.e_SignatureTypePagingSeal ,此函数将返回 与当前签名关联的分页印章签名对象。

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

◆ getSignatureDict()

PDFDictionary com.foxit.sdk.pdf.Signature.getSignatureDict ( ) throws com.foxit.sdk.PDFException

获取签名字典。

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

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

◆ getSignatureType()

int com.foxit.sdk.pdf.Signature.getSignatureType ( ) throws com.foxit.sdk.PDFException

获取签名类型。

返回
签名类型。请参考从com.foxit.sdk.pdf.Signature.e_SignatureTypeOrdinary 开始的值, 这将是这些值中的一个。

◆ getSignedVersionDocument()

PDFDoc com.foxit.sdk.pdf.Signature.getSignedVersionDocument ( String  file_path) throws com.foxit.sdk.PDFException

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

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

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

◆ getSignTime()

DateTime com.foxit.sdk.pdf.Signature.getSignTime ( ) throws com.foxit.sdk.PDFException

获取签名时间。

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

◆ getState()

int com.foxit.sdk.pdf.Signature.getState ( ) throws com.foxit.sdk.PDFException

获取当前状态。

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


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

◆ getSubFilter()

String com.foxit.sdk.pdf.Signature.getSubFilter ( ) throws com.foxit.sdk.PDFException

获取子过滤器。

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

返回
子过滤器字符串。

◆ isEmpty()

boolean com.foxit.sdk.pdf.Signature.isEmpty ( )

检查当前对象是否为空。

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

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

重载 com.foxit.sdk.pdf.interform.Field .

◆ isSigned()

boolean com.foxit.sdk.pdf.Signature.isSigned ( ) throws com.foxit.sdk.PDFException

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

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

◆ isTimeStamp()

boolean com.foxit.sdk.pdf.Signature.isTimeStamp ( ) throws com.foxit.sdk.PDFException

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

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

◆ setAppearanceContent()

void com.foxit.sdk.pdf.Signature.setAppearanceContent ( String  appearance_content) throws com.foxit.sdk.PDFException

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

此函数只能在为未签名的签名调用函数Signature.startSign 之前使用。
一旦设置了自定义外观内容,它将用作已签名外观。在这种情况下, 由Signature.setAppearanceFlags 设置的外观标志将被忽略, 相关信息将不会在外观中使用——这些信息由以下函数设置: Signature.setSignTime Signature.setKeyValue (过滤器和子过滤器除外)、 Signature.setBitmap Signature.setImage
如果当前签名是时间戳签名,此函数将不执行任何操作。

参数
[in]appearance_content自定义外观内容。这应该是用于外观的绘制操作命令序列, 例如"10 10 m 20 10 l S"。请参考<PDF Reference 1.7> P196了解更多详情。
返回
None.

◆ setAppearanceFlags()

void com.foxit.sdk.pdf.Signature.setAppearanceFlags ( int  appearance_flags) throws com.foxit.sdk.PDFException

设置签名外观标志。

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

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

◆ setBitmap()

void com.foxit.sdk.pdf.Signature.setBitmap ( Bitmap  bitmap) throws com.foxit.sdk.PDFException

为签名外观设置位图。

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

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

◆ setCertChain()

void com.foxit.sdk.pdf.Signature.setCertChain ( WStringArray  cert_chain) throws com.foxit.sdk.PDFException

设置证书链。

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

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

◆ setCustomObject()

void com.foxit.sdk.pdf.Signature.setCustomObject ( String  key,
PDFObject  pdf_object 
) throws com.foxit.sdk.PDFException

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

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

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

◆ setDefaultContentsLength()

void com.foxit.sdk.pdf.Signature.setDefaultContentsLength ( int  default_length) throws com.foxit.sdk.PDFException

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

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

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

◆ setDocPermission()

void com.foxit.sdk.pdf.Signature.setDocPermission ( int  permission) throws com.foxit.sdk.PDFException

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

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


参数
[in]permission文档权限。请参阅从com.foxit.sdk.pdf.Signature.e_DocPermUnrestricted 开始的值, 应为这些值中的一个。
返回
无。

◆ setFieldMDPActionFields()

void com.foxit.sdk.pdf.Signature.setFieldMDPActionFields ( int  action,
WStringArray  field_array 
) throws com.foxit.sdk.PDFException

设置FieldMDP("MDP"表示修改检测和预防)操作名称数组。

此函数仅对未签名的签名有用。如果对已签名的签名使用此函数,则不会执行任何操作。
如果当前签名已签名,此函数无效。

参数
[in]actionFieldMDP操作类型。请参阅从com.foxit.sdk.pdf.Signature.e_FieldMDPActionNone 开始的值, 应为这些值中的一个。

[in]field_array用于FieldMDP操作的字段名称数组。
返回
无。

◆ setFilter()

void com.foxit.sdk.pdf.Signature.setFilter ( String  filter) throws com.foxit.sdk.PDFException

设置过滤器。

过滤器和子过滤器用于指定将使用哪个已注册的签名回调对象来 签名/验证当前签名。用户应设置过滤器和子过滤器以 使用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]

void com.foxit.sdk.pdf.Signature.setImage ( Image  image,
int  frame_index 
) throws com.foxit.sdk.PDFException

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

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

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

◆ setImage() [2/2]

void com.foxit.sdk.pdf.Signature.setImage ( String  file_path,
int  frame_index 
) throws com.foxit.sdk.PDFException

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

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

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

◆ setKeyLabel()

void com.foxit.sdk.pdf.Signature.setKeyLabel ( int  label_name,
String  label_value 
) throws com.foxit.sdk.PDFException

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

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

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

◆ setKeyValue()

void com.foxit.sdk.pdf.Signature.setKeyValue ( int  key,
String  value 
) throws com.foxit.sdk.PDFException

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

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

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

◆ setSignTime()

void com.foxit.sdk.pdf.Signature.setSignTime ( DateTime  sign_time) throws com.foxit.sdk.PDFException

设置签名时间。

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

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

◆ setSubFilter()

void com.foxit.sdk.pdf.Signature.setSubFilter ( String  sub_filter) throws com.foxit.sdk.PDFException

设置子过滤器。

过滤器和子过滤器用于指定将使用哪个已注册的签名回调对象来 签名/验证当前签名。用户应设置过滤器和子过滤器以 使用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]

Progressive com.foxit.sdk.pdf.Signature.startSign ( StreamCallback  cert_file_stream,
byte[]  cert_password,
int  digest_algorithm,
StreamCallback  stream_callback,
java.lang.Object  client_data,
PauseCallback  pause 
) throws com.foxit.sdk.PDFException

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

此函数用于未签名的签名对象。当前签名的过滤器和子过滤器键指定了 用于签名当前签名的签名回调对象的名称。因此在签名之前, 请确保当前签名具有有效的过滤器和子过滤器字符串值。如果过滤器和子过滤器 是以下字符串之一,意味着使用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 设置默认的时间戳服务器。 对于其他过滤器和子过滤器,或者如果用户想要为上述过滤器和子过滤器使用自定义签名回调, 请确保已通过函数common.Library.registerSignatureCallback 向Foxit PDF SDK注册自定义签名回调。
对于符合PDF/A规范的PDF文档,建议在调用当前函数之前调用common.Library.setDefaultICCProfilesPath 并通过调用Signature.enableEmbedFont 启用字体嵌入。 签名操作可能需要很长时间,因此Foxit PDF SDK使用渐进式处理来完成此操作。

参数
[in]cert_file_stream用户实现的com.foxit.sdk.common.fxcrt.StreamCallback 对象, 用于访问将用于签名的证书文件内容。 如果在自定义签名回调中不需要,这可以是null
如果要使用默认签名回调来签名当前签名,可以使用PFX证书文件。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参考从com.foxit.sdk.pdf.Signature.e_DigestSHA1 开始的值, 这应该是这些值中的一个。
[in]stream_callback用户实现的com.foxit.sdk.common.fxcrt.StreamCallback 对象,用于保存签名结果。 已签名的文档将保存到另一个PDF文件。
[in]client_data用户定义的对象,将传递给SignatureCallback 中的回调函数。 如果使用默认回调对象来签名当前签名,则此参数无用。 默认值:null
[in]pause决定签名过程是否需要暂停的暂停对象。这可以是 null,表示在签名过程中不暂停。如果不为 null,它应该是用户实现的有效暂停对象。 默认值:null
返回
渐进式对象。请通过函数common.Progressive.getRateOfProgress 检查当前进度率。 如果进度率还不是100,请调用函数common.Progressive.resume 继续进度, 直到进度完成。
注解
此函数不支持将已签名的PDF文档直接保存到用于 构建当前签名相关PDF文档的PDF文件中。为了做到这一点,建议用户 执行以下步骤:
假设相关的PDF文档对象是从名为"org.pdf"的PDF文件构建的。
  1. 使用当前函数将签名结果保存到临时文件。这里,此临时文件命名为"temp.tmp"。
  2. 确保相关的PDF文档对象已析构——这等同于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
然后用户可以打开已签名的PDF文档进行其他操作。

◆ startSign() [2/4]

Progressive com.foxit.sdk.pdf.Signature.startSign ( StreamCallback  cert_file_stream,
byte[]  cert_password,
int  digest_algorithm,
String  save_path,
java.lang.Object  client_data,
PauseCallback  pause 
) throws com.foxit.sdk.PDFException

如果当前签名是未签名的,开始签名当前签名。

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

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

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

参数
[in]cert_file_stream用户实现的com.foxit.sdk.common.fxcrt.StreamCallback 对象, 用于访问将用于签名的证书文件的内容。 This can be null if not necessary in custom signature callback.
如果在自定义签名回调中不需要,这可以为null
如果将使用默认签名回调来签名当前签名, 可以使用PFX证书文件。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参考从 com.foxit.sdk.pdf.Signature.e_DigestSHA1 开始的值,这应该是这些值中的一个。
[in]save_path用于保存签名结果的完整PDF文件路径。已签名的文档将 保存到另一个PDF文件。
[in]client_data用户定义的对象,将传递给SignatureCallback 中的回调函数。 如果将使用默认回调对象来签名当前签名,这是无用的。默认值:null
[in]pause决定签名过程是否需要暂停的暂停对象。这可以是 null,表示在签名过程中不暂停。如果这不是 null,它应该是用户实现的有效暂停对象。 默认值:null
返回
渐进式对象。请通过函数common.Progressive.getRateOfProgress 检查当前进度的比率。 如果比率还没有达到100,调用函数common.Progressive.resume 继续进度,直到进度完成。
注解
此函数不支持将已签名的PDF文档直接保存到用于构造当前签名相关PDF文档的PDF文件中。 为了实现这一点,建议用户按照以下步骤操作:
假设相关的PDF文档对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将签名结果保存到临时文件。在这里,此临时文件 命名为"temp.tmp"。
  2. 确保相关的PDF文档对象已析构——这等同于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
然后用户可以打开已签名的PDF文档进行其他操作。

◆ startSign() [3/4]

Progressive com.foxit.sdk.pdf.Signature.startSign ( String  cert_path,
byte[]  cert_password,
int  digest_algorithm,
StreamCallback  stream_callback,
java.lang.Object  client_data,
PauseCallback  pause 
) throws com.foxit.sdk.PDFException

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

此函数用于未签名的签名对象。当前签名的过滤器和子过滤器键指定了 用于签名当前签名的签名回调对象的名称。因此在签名之前, 请确保当前签名具有有效的过滤器和子过滤器字符串值。如果过滤器和子过滤器 是以下字符串之一,意味着使用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 设置默认的时间戳服务器。 对于其他过滤器和子过滤器,或者如果用户想要为上述过滤器和子过滤器使用自定义签名回调, 请确保已通过函数common.Library.registerSignatureCallback 向Foxit PDF SDK注册自定义签名回调。
对于符合PDF/A规范的PDF文档,建议在调用当前函数之前调用common.Library.setDefaultICCProfilesPath 并通过调用Signature.enableEmbedFont 启用字体嵌入。 签名操作可能需要很长时间,因此Foxit PDF SDK使用渐进式处理来完成此操作。

参数
[in]cert_path证书文件的完整路径(包括文件名和扩展名), 将用于签名。如果在自定义签名回调中不需要,这可以是空字符串。 当此文件路径不为空时,它应该是有效路径。
如果要使用默认签名回调来签名当前签名, 这可以是PFX证书文件。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参考从com.foxit.sdk.pdf.Signature.e_DigestSHA1 开始的值, 这应该是这些值中的一个。
[in]stream_callback用户实现的com.foxit.sdk.common.fxcrt.StreamCallback 对象,用于保存签名结果。 已签名的文档将保存到另一个PDF文件。
[in]client_data用户定义的对象,将传递给SignatureCallback 中的回调函数。 如果使用默认回调对象来签名当前签名,则此参数无用。默认值:null
[in]pause决定签名过程是否需要暂停的暂停对象。这可以是 null,表示在签名过程中不暂停。如果不为 null,它应该是用户实现的有效暂停对象。 默认值:null
返回
渐进式对象。请通过函数common.Progressive.getRateOfProgress 检查当前进度率。 如果进度率还不是100,请调用函数common.Progressive.resume 继续进度, 直到进度完成。
注解
此函数不支持将已签名的PDF文档直接保存到用于构建当前签名相关PDF文档的PDF文件中。 为了做到这一点,建议用户执行以下步骤:
假设相关的PDF文档对象是从名为"org.pdf"的PDF文件构建的。
  1. 使用当前函数将签名结果保存到临时文件。这里,此临时文件命名为"temp.tmp"。
  2. 确保相关的PDF文档对象已析构——这等同于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
然后用户可以打开已签名的PDF文档进行其他操作。

◆ startSign() [4/4]

Progressive com.foxit.sdk.pdf.Signature.startSign ( String  cert_path,
byte[]  cert_password,
int  digest_algorithm,
String  save_path,
java.lang.Object  client_data,
PauseCallback  pause 
) throws com.foxit.sdk.PDFException

如果当前签名未签名,开始签名当前签名。

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

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

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

参数
[in]cert_path将用于签名的证书文件的完整路径(包括文件名和扩展名)。 如果在自定义签名回调中不需要,可以是空字符串。当此文件路径不为空时, 应为有效路径。
如果要使用默认签名回调来签名当前签名, 这可以是PFX证书文件。
[in]cert_password用于打开证书文件的密码字符串。如果这是空字符串, 表示不需要密码。
[in]digest_algorithm签名数据的消息摘要算法。请参阅从com.foxit.sdk.pdf.Signature.e_DigestSHA1 开始的值, 应为这些值中的一个。
[in]save_path用于保存签名结果的完整PDF文件路径。已签名文档将 保存到另一个PDF文件。
[in]client_data用户定义对象,将传递给SignatureCallback 中的回调函数。 如果要使用默认回调对象来签名当前签名,则此参数无用。默认值:null
[in]pause决定签名过程是否需要暂停的暂停对象。可以为null, 表示在签名过程中不暂停。如果不为null, 应为用户实现的有效暂停对象。默认值:null
返回
渐进对象。请通过函数common.Progressive.getRateOfProgress 检查当前进度的比率。 如果比率尚未达到100,调用函数common.Progressive.resume 继续进度,直到进度完成。
注解
此函数不支持将已签名的PDF文档直接保存到用于构造当前签名相关PDF文档的PDF文件中。 为了实现这一点,建议用户按照以下步骤操作:
假设相关的PDF文档对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将签名结果保存到临时文件。在这里,此临时文件 命名为"temp.tmp"。
  2. 确保相关的PDF文档对象已析构——这等同于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
然后用户可以打开已签名的PDF文档进行其他操作。

◆ startVerify()

Progressive com.foxit.sdk.pdf.Signature.startVerify ( java.lang.Object  client_data,
PauseCallback  pause 
) throws com.foxit.sdk.PDFException

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

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

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

类成员变量说明

◆ e_FieldMDPActionExclude

final int com.foxit.sdk.pdf.Signature.e_FieldMDPActionExclude = 3
static

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

注解
"指定表单字段"可以通过函数Signature.getFieldMDPActionFields Signature.setFieldMDPActionFields 获取/设置。有关更多详细信息,请参阅这些函数。

◆ e_FieldMDPActionInclude

final int com.foxit.sdk.pdf.Signature.e_FieldMDPActionInclude = 2
static

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

注解
"指定表单字段"可以通过函数Signature.getFieldMDPActionFields Signature.setFieldMDPActionFields 获取/设置。有关更多详细信息,请参阅这些函数。

◆ e_LabelNameDN

final int com.foxit.sdk.pdf.Signature.e_LabelNameDN = 4
static

专有名称的签名键名。

注解
Foxit PDF SDK中专有名称的默认标签名称是"DN: "。

◆ e_LabelNameLocation

final int com.foxit.sdk.pdf.Signature.e_LabelNameLocation = 1
static

位置的签名标签名称。

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

◆ e_LabelNameProducer

final int com.foxit.sdk.pdf.Signature.e_LabelNameProducer = 6
static

生产者名称的签名键名。

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

◆ e_LabelNameReason

final int com.foxit.sdk.pdf.Signature.e_LabelNameReason = 2
static

原因的签名标签名称。

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

◆ e_LabelNameSigner

final int com.foxit.sdk.pdf.Signature.e_LabelNameSigner = 0
static

签名者的签名标签名称。

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

◆ e_LabelNameSignTime

final int com.foxit.sdk.pdf.Signature.e_LabelNameSignTime = 3
static

签名时间的签名标签名称。

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