Appearance
PDF安全电子印章单机版接口
概述
本节介绍软航OFFICE文档控件PDF安全电子印章单机版接口,这些接口允许开发者在本地环境中控制PDF文档中电子印章的各种功能和行为,为PDF文档管理系统提供完整的单机版电子印章控制能力。
注意: 本节所介绍的PDF安全电子印章接口均需要单独购买PDF电子印章产品才能调用。
二维码电子印章方法
AddBarCode
语法:
javascript
AddBarCode(signerName, l_EkeyType, [v_barCodeType], [v_SignTime], [v_Password], [v_IsUserSetPosition], [v_PageNumber], [v_PosX], [v_PosY], [v_IsShowUI], [v_IsUseCertificate], [v_IsCheckDocChange], [v_IsAddComment], [v_PrintMode], [v_barcodeStringdata], [v_gbDefualtSetString], [v_UserData])
功能:
为PDF从本地添加一维码和二维码电子印章。
参数:
名称 | 必选/可选 | 数据类型 | 说明 |
---|---|---|---|
signerName | 必选 | string | 签章用户名 |
l_EkeyType | 必选 | long | EKEY类型:1为海泰EKEY |
v_barCodeType | 可选 | long | 二维码类型 |
v_SignTime | 可选 | string | 签章时间 |
v_Password | 可选 | string | 印章密码 |
v_IsUserSetPosition | 可选 | bool | 是否允许设置签章位置 |
v_PageNumber | 可选 | long | 签章页索引 |
v_PosX | 可选 | long | 左上角x坐标 |
v_PosY | 可选 | long | 左上角y坐标 |
v_IsShowUI | 可选 | bool | 是否显示提示对话框 |
v_IsUseCertificate | 可选 | bool | 是否使用数字证书 |
v_IsCheckDocChange | 可选 | bool | 是否验证文档改变 |
v_IsAddComment | 可选 | bool | 是否添加批注 |
v_PrintMode | 可选 | long | 打印模式 |
v_barcodeStringdata | 可选 | string | 二维码信息字符串 |
v_gbDefualtSetString | 可选 | string | 国标PDF417码信息字符串 |
v_UserData | 可选 | string | 自定义用户数据 |
返回值:
无返回值
说明:
为PDF从本地添加一维码和二维码电子印章。参数v_SignTime:用户可以指定签章时间,但必须使用"yyyy-MM-dd HH:mm:ss"的标准格式。如果参数值为空,则使用本机当前时间。参数v_IsUserSetPosition:是否允许用户自己设置签章位置,传false的时候,后面3个参数设置无效。参数v_PrintMode:打印模式,0不打印,1打印黑白,2打印原样。参数v_UserData:可以给印章添加自定义的用户数据字符串。
使用示例:
javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;
// 添加二维码电子印章
plugInObj.AddBarCode("ntko", 1, 2, "2013-02-01 12:02:14", "", true, 0, 100, 100, true, true, true, false, 2, "二维码信息", "国标信息", "用户数据");
// 添加一维码电子印章
plugInObj.AddBarCode("ntko", 1, 3, "", "123456", false, 0, 0, 0, true, true, true, false, 1, "一维码信息", "", "用户数据");
EKEY安全印章方法
AddSecSignFromEkey
语法:
javascript
AddSecSignFromEkey(signerName, l_EkeyType, [v_SignTime], [v_Password], [v_IsUserSetPosition], [v_PageNumber], [v_PosX], [v_PosY], [v_IsPromptSelectSign], [v_SelSignIndex], [v_IsShowUI], [v_IsUseCertificate], [v_IsCheckDocChange], [v_IsAddComment], [v_PrintMode], [v_UserData])
功能:
为PDF从EKEY添加安全印章。
参数:
名称 | 必选/可选 | 数据类型 | 说明 |
---|---|---|---|
signerName | 必选 | string | 签章用户名 |
l_EkeyType | 必选 | long | EKEY类型:1为海泰EKEY |
v_SignTime | 可选 | string | 签章时间 |
v_Password | 可选 | string | 印章密码 |
v_IsUserSetPosition | 可选 | bool | 是否允许设置签章位置 |
v_PageNumber | 可选 | long | 签章页索引 |
v_PosX | 可选 | long | 左上角x坐标 |
v_PosY | 可选 | long | 左上角y坐标 |
v_IsPromptSelectSign | 可选 | bool | 是否弹出印章选择列表 |
v_SelSignIndex | 可选 | long | 默认选择印章索引 |
v_IsShowUI | 可选 | bool | 是否显示提示对话框 |
v_IsUseCertificate | 可选 | bool | 是否使用数字证书 |
v_IsCheckDocChange | 可选 | bool | 是否验证文档改变 |
v_IsAddComment | 可选 | bool | 是否添加批注 |
v_PrintMode | 可选 | long | 打印模式 |
v_UserData | 可选 | string | 自定义用户数据 |
返回值:
无返回值
说明:
为PDF从EKEY添加安全印章。参数v_SignTime:用户可以指定签章时间,但必须使用"yyyy-MM-dd HH:mm:ss"的标准格式。如果参数值为空,则使用本机当前时间。参数v_SelSignIndex:默认选择指定印章,如果值为0-9,对应十个印章位置,盖章时不会弹出印章列表窗口。如果值为-1,盖章时会弹出印章列表窗口供用户选择。参数v_IsUserSetPosition:是否允许用户自己设置签章位置,传false的时候,后面3个参数设置无效。参数v_PrintMode:打印模式,0不打印,1,打印黑白2,打印原样。参数v_UserData:可以给印章添加自定义的用户数据字符串。
使用示例:
javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;
// 从EKEY添加安全印章
plugInObj.AddSecSignFromEkey("ntko", 1, "2013-02-01 12:02:14", "", true, 2, 10, 100, true, true, true, true, false, 2, "用户数据");
// 从EKEY添加安全印章(不显示UI)
plugInObj.AddSecSignFromEkey("ntko", 1, "", "123456", false, 0, 0, 0, false, 0, false, true, true, false, 1, "用户数据");
AddSignKeywordFromEkey
语法:
javascript
AddSignKeywordFromEkey(SignerName, l_EkeyType, BS_keyWord, [offsetX], [offsetY], [v_MaxSignsCount], [v_Password], [v_SignTime], [v_IsPromptSelectSign], [v_SelSignIndex], [v_IsShowUI], [v_IsAddComment], [v_PrintMode], [v_UserData])
功能:
为PDF在指定关键字位置从EKEY添加安全印章。
参数:
名称 | 必选/可选 | 数据类型 | 说明 |
---|---|---|---|
signerName | 必选 | string | 签章用户名 |
l_EkeyType | 必选 | long | EKEY类型:1为海泰EKEY |
BS_keyWord | 必选 | string | 关键字 |
v_PosX | 可选 | long | 左上角x坐标 |
v_PosY | 可选 | long | 左上角y坐标 |
v_MaxSignsCount | 可选 | long | 最大印章数 |
v_Password | 可选 | string | 印章密码 |
v_SignTime | 可选 | string | 签章时间 |
v_IsPromptSelectSign | 可选 | bool | 是否弹出印章选择列表 |
v_SelSignIndex | 可选 | long | 默认选择印章索引 |
v_IsShowUI | 可选 | bool | 是否显示提示对话框 |
v_IsUseCertificate | 可选 | bool | 是否使用数字证书 |
v_IsCheckDocChange | 可选 | bool | 是否验证文档改变 |
v_IsAddComment | 可选 | bool | 是否添加批注 |
v_PrintMode | 可选 | long | 打印模式 |
v_UserData | 可选 | string | 自定义用户数据 |
返回值:
无返回值
说明:
为PDF在指定关键字位置从EKEY添加安全印章。参数v_MaxSignsCount:用于设置最多盖多少个印章。比如文档中有十个为"NTKO"的关键字,但仅需要在前三个关键字位置签章,那么这个参数就传3即可。参数v_SignTime:用户可以指定签章时间,但必须使用"yyyy-MM-dd HH:mm:ss"的标准格式。如果参数值为空,则使用本机当前时间。参数v_SelSignIndex:默认选择指定印章,如果值为0-9,对应十个印章位置,盖章时不会弹出印章列表窗口。如果值为-1,盖章时会弹出印章列表窗口供用户选择。参数v_IsUserSetPosition:是否允许用户自己设置签章位置,传false的时候,后面3个参数设置无效。参数v_PrintMode:打印模式,0不打印,1,打印黑白2,打印原样。参数v_UserData:可以给印章添加自定义的用户数据字符串。
使用示例:
javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;
// 在关键字位置添加安全印章
plugInObj.AddSignKeywordFromEkey("ntko", 14, "NTKO", 0, 0, 2, "111111", "2013-02-01 12:02:14", false, 0, false, false, 2, "用户数据");
// 在关键字位置添加安全印章(最大3个)
plugInObj.AddSignKeywordFromEkey("ntko", 1, "签名", 10, 10, 3, "", "", true, -1, true, true, 1, "用户数据");
手写签名方法
AddSecHandSign
语法:
javascript
AddSecHandSign(signerName, l_EkeyType, [v_SignTime], [v_Password], [v_IsUserSetPosition], [v_PageNumber], [v_PosX], [v_PosY], [v_IsShowUI], [v_IsUseCertificate], [v_IsCheckDocChange], [v_IsAddComment], [v_PrintMode], [v_UserData])
功能:
为PDF添加安全手写签名。
参数:
名称 | 必选/可选 | 数据类型 | 说明 |
---|---|---|---|
signerName | 必选 | string | 签章用户名 |
l_EkeyType | 必选 | long | EKEY类型:1为海泰EKEY |
v_SignTime | 可选 | string | 签章时间 |
v_Password | 可选 | string | 印章密码 |
v_IsUserSetPosition | 可选 | bool | 是否允许设置签章位置 |
v_PageNumber | 可选 | long | 签章页索引 |
v_PosX | 可选 | long | 左上角x坐标 |
v_PosY | 可选 | long | 左上角y坐标 |
v_IsShowUI | 可选 | bool | 是否显示提示对话框 |
v_IsUseCertificate | 可选 | bool | 是否使用数字证书 |
v_IsCheckDocChange | 可选 | bool | 是否验证文档改变 |
v_IsAddComment | 可选 | bool | 是否添加批注 |
v_PrintMode | 可选 | long | 打印模式 |
v_UserData | 可选 | string | 自定义用户数据 |
返回值:
无返回值
说明:
为PDF添加安全手写签名。参数v_SignTime:用户可以指定签章时间,但必须使用"yyyy-MM-dd HH:mm:ss"的标准格式。如果参数值为空,则使用本机当前时间。参数v_IsUserSetPosition:是否允许用户自己设置签章位置,传false的时候,后面3个参数设置无效。参数v_PrintMode:打印模式,0不打印,1,打印黑白2,打印原样。参数v_UserData:可以给印章添加自定义的用户数据字符串。
使用示例:
javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;
// 添加安全手写签名
plugInObj.AddSecHandSign("ntko", 1, "2013-02-01 12:02:14", "", true, 2, 10, 100, true, true, true, false, 2, "用户数据");
// 添加安全手写签名(不显示UI)
plugInObj.AddSecHandSign("ntko", 1, "", "123456", false, 0, 0, 0, false, true, true, false, 1, "用户数据");
键盘批注方法
AddSecEkeyboardComment
语法:
javascript
AddSecEkeyboardComment(signerName, l_EkeyType, [v_SignTime], [v_Password], [v_IsUserSetPosition], [v_PageNumber], [v_PosX], [v_PosY], [v_IsShowUI], [v_IsUseCertificate], [v_IsCheckDocChange], [v_IsAddComment], [v_PrintMode], [v_UserData])
功能:
为PDF添加安全键盘批注。
参数:
名称 | 必选/可选 | 数据类型 | 说明 |
---|---|---|---|
signerName | 必选 | string | 签章用户名 |
l_EkeyType | 必选 | long | EKEY类型:1为海泰EKEY |
v_SignTime | 可选 | string | 签章时间 |
v_Password | 可选 | string | 印章密码 |
v_IsUserSetPosition | 可选 | bool | 是否允许设置签章位置 |
v_PageNumber | 可选 | long | 签章页索引 |
v_PosX | 可选 | long | 左上角x坐标 |
v_PosY | 可选 | long | 左上角y坐标 |
v_IsShowUI | 可选 | bool | 是否显示提示对话框 |
v_IsUseCertificate | 可选 | bool | 是否使用数字证书 |
v_IsCheckDocChange | 可选 | bool | 是否验证文档改变 |
v_IsAddComment | 可选 | bool | 是否添加批注 |
v_PrintMode | 可选 | long | 打印模式 |
v_UserData | 可选 | string | 自定义用户数据 |
返回值:
无返回值
说明:
为PDF添加安全键盘批注。参数v_SignTime:用户可以指定签章时间,但必须使用"yyyy-MM-dd HH:mm:ss"的标准格式。如果参数值为空,则使用本机当前时间。参数v_IsUserSetPosition:是否允许用户自己设置签章位置,传false的时候,后面3个参数设置无效。参数v_PrintMode:打印模式,0不打印,1,打印黑白2,打印原样。参数v_UserData:可以给印章添加自定义的用户数据字符串。
使用示例:
javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;
// 添加安全键盘批注
plugInObj.AddSecEkeyboardComment("ntko", 1, "2013-02-01 12:02:14", "", true, 2, 10, 100, true, true, true, false, 2, "用户数据");
// 添加安全键盘批注(不显示UI)
plugInObj.AddSecEkeyboardComment("ntko", 1, "", "123456", false, 0, 0, 0, false, true, true, false, 1, "用户数据");
批量签章方法
AddMultiPageSign
语法:
javascript
AddMultiPageSign(signerName, l_EkeyType, l_SignType, l_signFrom, [v_SignOrign], [v_Filename], [v_SignTime], [v_Password], [v_IsUserSetPosition], [v_PageNumber], [v_PosX], [v_PosY], [v_IsPromptSelectSign], [v_SelSignIndex], [v_IsShowUI], [v_IsUseCertificate], [v_IsCheckDocChange], [v_IsAddComment], [v_PrintMode], [v_UserData])
功能:
为PDF文档添加批量签章。
参数:
名称 | 必选/可选 | 数据类型 | 说明 |
---|---|---|---|
signerName | 必选 | string | 签章用户名 |
l_EkeyType | 必选 | long | EKEY类型:1为海泰EKEY |
l_SignType | 必选 | long | 签章类型 |
l_signFrom | 必选 | long | 签章来源 |
v_SignOrign | 可选 | long | 签章来源,默认为1从本地 |
v_Filename | 可选 | string | 本地文件名,一般传"" |
v_SignTime | 可选 | string | 签章时间 |
v_Password | 可选 | string | 印章密码 |
v_IsUserSetPosition | 可选 | bool | 是否允许设置签章位置 |
v_PageNumber | 可选 | long | 签章页索引 |
v_PosX | 可选 | long | 左上角x坐标 |
v_PosY | 可选 | long | 左上角y坐标 |
v_IsPromptSelectSign | 可选 | bool | 是否弹出印章选择列表 |
v_SelSignIndex | 可选 | long | 默认选择印章索引 |
v_IsShowUI | 可选 | bool | 是否显示提示对话框 |
v_IsUseCertificate | 可选 | bool | 是否使用数字证书 |
v_IsCheckDocChange | 可选 | bool | 是否验证文档改变 |
v_IsAddComment | 可选 | bool | 是否添加批注 |
v_PrintMode | 可选 | long | 打印模式 |
v_UserData | 可选 | string | 自定义用户数据 |
返回值:
无返回值
说明:
为PDF文档添加批量签章。参数l_SignType:表示签章类型,0为单个签章;1为多页签章即校核章,2为对称骑缝章,3为单侧骑缝章。参数l_signFrom:整数,表示签章来源,1从本地,2从EKEY,3从url。参数v_SignTime:用户可以指定签章时间,但必须使用"yyyy-MM-dd HH:mm:ss"的标准格式。如果参数值为空,则使用本机当前时间。参数v_SelSignIndex:默认选择指定印章,如果值为0-9,对应十个印章位置,盖章时不会弹出印章列表窗口。如果值为-1,盖章时会弹出印章列表窗口供用户选择。参数v_IsUserSetPosition:是否允许用户自己设置签章位置,传false的时候,后面3个参数设置无效。参数v_PrintMode:打印模式,0不打印,1,打印黑白2,打印原样。参数v_UserData:可以给印章添加自定义的用户数据字符串。
使用示例:
javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;
// 添加批量签章(校核章)
plugInObj.AddMultiPageSign("ntko", 1, 1, 2, 1, "", "2013-02-01 12:02:14", "", true, 0, 100, 100, true, 0, true, true, true, false, 2, "用户数据");
// 添加批量签章(对称骑缝章)
plugInObj.AddMultiPageSign("ntko", 1, 2, 2, 1, "", "", "123456", false, 0, 0, 0, false, -1, false, true, true, false, 1, "用户数据");
加密二维码方法
AddEncryptSignsBarcode
语法:
javascript
AddEncryptSignsBarcode(signerName, l_EkeyType, [v_barCodeType], [v_SignTime], [v_Password], [v_IsUserSetPosition], [v_PageNumber], [v_PosX], [v_PosY], [v_IsShowUI], [v_IsUseCertificate], [v_IsCheckDocChange], [v_IsAddComment], [v_PrintMode], [v_content], [v_UserData])
功能:
为PDF文档添加加密二维码电子印章。
参数:
名称 | 必选/可选 | 数据类型 | 说明 |
---|---|---|---|
signerName | 必选 | string | 签章用户名 |
l_EkeyType | 必选 | long | EKEY类型:1为海泰EKEY |
v_barCodeType | 可选 | long | 二维码类型 |
v_SignTime | 可选 | string | 签章时间 |
v_Password | 可选 | string | 印章密码 |
v_IsUserSetPosition | 可选 | bool | 是否允许设置签章位置 |
v_PageNumber | 可选 | long | 签章页索引 |
v_PosX | 可选 | long | 左上角x坐标 |
v_PosY | 可选 | long | 左上角y坐标 |
v_IsPromptSelectSign | 可选 | bool | 是否弹出印章选择列表 |
v_SelSignIndex | 可选 | long | 默认选择印章索引 |
v_IsShowUI | 可选 | bool | 是否显示提示对话框 |
v_IsUseCertificate | 可选 | bool | 是否使用数字证书 |
v_IsCheckDocChange | 可选 | bool | 是否验证文档改变 |
v_IsAddComment | 可选 | bool | 是否添加批注 |
v_PrintMode | 可选 | long | 打印模式 |
v_UserData | 可选 | string | 自定义用户数据 |
返回值:
无返回值
说明:
为PDF文档添加加密二维码电子印章。参数v_SignTime:用户可以指定签章时间,但必须使用"yyyy-MM-dd HH:mm:ss"的标准格式。如果参数值为空,则使用本机当前时间。参数v_SelSignIndex:默认选择指定印章,如果值为0-9,对应十个印章位置,盖章时不会弹出印章列表窗口。如果值为-1,盖章时会弹出印章列表窗口供用户选择。参数v_IsUserSetPosition:是否允许用户自己设置签章位置,传false的时候,后面3个参数设置无效。参数v_PrintMode:打印模式,0不打印,1,打印黑白2,打印原样。参数v_UserData:可以给印章添加自定义的用户数据字符串。
使用示例:
javascript
// 基本用法
var plugInObj = OfficeControlObj.ActiveDocument;
// 添加加密二维码电子印章
plugInObj.AddEncryptSignsBarcode("ntko", 1, 2, "2013-02-01 12:02:14", "", true, 0, 100, 100, true, true, true, false, 2, "加密内容", "用户数据");
// 添加加密二维码电子印章(不显示UI)
plugInObj.AddEncryptSignsBarcode("ntko", 1, 1, "", "123456", false, 0, 0, 0, false, true, true, false, 1, "加密内容", "用户数据");
方法分类总结
分类 | 方法 | 功能 | 说明 |
---|---|---|---|
二维码印章 | AddBarCode | 添加二维码印章 | 从本地添加一维码和二维码电子印章 |
EKEY印章 | AddSecSignFromEkey | 从EKEY添加印章 | 从EKEY添加安全印章 |
关键字印章 | AddSignKeywordFromEkey | 关键字位置印章 | 在指定关键字位置从EKEY添加安全印章 |
手写签名 | AddSecHandSign | 添加手写签名 | 添加安全手写签名 |
键盘批注 | AddSecEkeyboardComment | 添加键盘批注 | 添加安全键盘批注 |
批量签章 | AddMultiPageSign | 添加批量签章 | 添加批量签章(校核章、骑缝章等) |
加密二维码 | AddEncryptSignsBarcode | 添加加密二维码 | 添加加密二维码电子印章 |
使用流程
1. 基本单机版印章管理流程
javascript
// 基本单机版印章管理流程
function basicStandaloneSignManagement() {
var plugInObj = OfficeControlObj.ActiveDocument;
// 添加二维码印章
function addBarCodeSign() {
plugInObj.AddBarCode("ntko", 1, 2, "2013-02-01 12:02:14", "", true, 0, 100, 100, true, true, true, false, 2, "二维码信息", "国标信息", "用户数据");
console.log("二维码印章添加完成");
}
// 添加EKEY印章
function addEkeySign() {
plugInObj.AddSecSignFromEkey("ntko", 1, "2013-02-01 12:02:14", "", true, 2, 10, 100, true, true, true, true, false, 2, "用户数据");
console.log("EKEY印章添加完成");
}
// 添加手写签名
function addHandSign() {
plugInObj.AddSecHandSign("ntko", 1, "2013-02-01 12:02:14", "", true, 2, 10, 100, true, true, true, false, 2, "用户数据");
console.log("手写签名添加完成");
}
return {
addBarCodeSign: addBarCodeSign,
addEkeySign: addEkeySign,
addHandSign: addHandSign
};
}
2. 高级单机版印章管理流程
javascript
// 高级单机版印章管理流程
function advancedStandaloneSignManagement() {
var plugInObj = OfficeControlObj.ActiveDocument;
// 单机版印章管理配置
var standaloneSignConfig = {
enableBarCode: true,
enableEkey: true,
enableHandSign: true,
enableBatchSign: true
};
// 应用单机版印章配置
function applyStandaloneSignConfig() {
try {
if (standaloneSignConfig.enableBarCode) {
console.log("二维码印章功能已启用");
}
if (standaloneSignConfig.enableEkey) {
console.log("EKEY印章功能已启用");
}
if (standaloneSignConfig.enableHandSign) {
console.log("手写签名功能已启用");
}
if (standaloneSignConfig.enableBatchSign) {
console.log("批量签章功能已启用");
}
console.log("单机版印章配置应用成功");
} catch (error) {
console.error("单机版印章配置应用失败:", error);
}
}
// 监控印章状态
function monitorSignStatus() {
var status = {
signsCount: plugInObj.GetSignsCount(),
isSupportSecuritySign: plugInObj.IsSupportSecuritySign,
isTimeStampSign: plugInObj.IsTimeStampSign
};
console.log("单机版印章状态监控:", status);
return status;
}
return {
applyStandaloneSignConfig: applyStandaloneSignConfig,
monitorSignStatus: monitorSignStatus
};
}
3. 单机版印章质量控制流程
javascript
// 单机版印章质量控制流程
function standaloneSignQualityControl() {
var plugInObj = OfficeControlObj.ActiveDocument;
// 单机版印章质量控制
function controlStandaloneSignQuality() {
var signQuality = {
totalSigns: 0,
validSigns: 0,
invalidSigns: 0,
qualityScore: 0
};
signQuality.totalSigns = plugInObj.GetSignsCount();
for (var i = 1; i <= signQuality.totalSigns; i++) {
var pdfSignObj = plugInObj.GetSign(i);
if (pdfSignObj && pdfSignObj.SignerName) {
signQuality.validSigns++;
} else {
signQuality.invalidSigns++;
}
}
if (signQuality.totalSigns > 0) {
signQuality.qualityScore = (signQuality.validSigns / signQuality.totalSigns) * 100;
}
console.log("单机版印章质量控制:", signQuality);
return signQuality;
}
// 执行质量控制
var qualityResult = controlStandaloneSignQuality();
console.log("单机版印章质量控制结果:", qualityResult);
}
完整示例
1. 基础单机版印章管理
javascript
// 基础单机版印章管理示例
function basicStandaloneSignManagement() {
var plugInObj = OfficeControlObj.ActiveDocument;
// 添加二维码印章
function addBarCodeSign() {
plugInObj.AddBarCode("ntko", 1, 2, "2013-02-01 12:02:14", "", true, 0, 100, 100, true, true, true, false, 2, "二维码信息", "国标信息", "用户数据");
console.log("二维码印章添加完成");
}
// 添加EKEY印章
function addEkeySign() {
plugInObj.AddSecSignFromEkey("ntko", 1, "2013-02-01 12:02:14", "", true, 2, 10, 100, true, true, true, true, false, 2, "用户数据");
console.log("EKEY印章添加完成");
}
return {
addBarCodeSign: addBarCodeSign,
addEkeySign: addEkeySign
};
}
2. 高级单机版印章管理
javascript
// 高级单机版印章管理示例
function advancedStandaloneSignManagement() {
var plugInObj = OfficeControlObj.ActiveDocument;
// 单机版印章管理配置
var standaloneSignConfig = {
enableBarCode: true,
enableEkey: true,
enableHandSign: true,
enableBatchSign: true
};
// 应用单机版印章配置
function applyStandaloneSignConfig() {
if (standaloneSignConfig.enableBarCode) {
console.log("二维码印章功能已启用");
}
if (standaloneSignConfig.enableEkey) {
console.log("EKEY印章功能已启用");
}
if (standaloneSignConfig.enableHandSign) {
console.log("手写签名功能已启用");
}
if (standaloneSignConfig.enableBatchSign) {
console.log("批量签章功能已启用");
}
console.log("单机版印章配置应用完成");
}
// 监控印章状态
function monitorSignStatus() {
var status = {
signsCount: plugInObj.GetSignsCount(),
isSupportSecuritySign: plugInObj.IsSupportSecuritySign,
isTimeStampSign: plugInObj.IsTimeStampSign
};
console.log("单机版印章状态:", status);
return status;
}
return {
applyStandaloneSignConfig: applyStandaloneSignConfig,
monitorSignStatus: monitorSignStatus
};
}
3. 单机版印章质量控制
javascript
// 单机版印章质量控制示例
function standaloneSignQualityControl() {
var plugInObj = OfficeControlObj.ActiveDocument;
// 单机版印章质量控制
function controlStandaloneSignQuality() {
var signQuality = {
totalSigns: 0,
validSigns: 0,
invalidSigns: 0,
qualityScore: 0
};
signQuality.totalSigns = plugInObj.GetSignsCount();
for (var i = 1; i <= signQuality.totalSigns; i++) {
var pdfSignObj = plugInObj.GetSign(i);
if (pdfSignObj && pdfSignObj.SignerName) {
signQuality.validSigns++;
} else {
signQuality.invalidSigns++;
}
}
if (signQuality.totalSigns > 0) {
signQuality.qualityScore = (signQuality.validSigns / signQuality.totalSigns) * 100;
}
console.log("单机版印章质量控制:", signQuality);
return signQuality;
}
// 执行质量控制
var qualityResult = controlStandaloneSignQuality();
console.log("单机版印章质量控制结果:", qualityResult);
}
注意事项
- 产品要求:PDF安全电子印章接口需要单独购买PDF电子印章产品才能调用
- 参数验证:验证单机版印章方法参数的有效性,避免空值或无效值
- 错误处理:实现完善的错误处理机制
- 性能考虑:避免频繁调用单机版印章方法
- 资源管理:及时清理不需要的资源
- 状态同步:保持单机版印章状态的一致性
- 用户体验:确保单机版印章方法调用不影响用户体验
错误处理
javascript
// 单机版印章方法错误处理
function handleStandaloneSignMethodError(methodType, error) {
console.error("单机版印章方法处理失败:", methodType, error.message);
switch(methodType) {
case 'AddBarCode':
console.log("二维码印章添加失败,请检查:");
console.log("1. 签章用户名是否正确");
console.log("2. EKEY类型是否正确");
console.log("3. 二维码类型是否正确");
break;
case 'AddSecSignFromEkey':
console.log("EKEY印章添加失败,请检查:");
console.log("1. EKEY是否已插入");
console.log("2. EKEY类型是否正确");
console.log("3. 印章密码是否正确");
break;
case 'AddSecHandSign':
console.log("手写签名添加失败,请检查:");
console.log("1. 手写签名设备是否正常");
console.log("2. 签名位置是否正确");
console.log("3. 签名参数是否正确");
break;
default:
console.log("未知单机版印章方法处理失败");
}
}
最佳实践
1. 单机版印章管理最佳实践
javascript
// 单机版印章管理最佳实践
function standaloneSignManagementBestPractice() {
// 单机版印章管理配置
var standaloneSignConfig = {
enableLogging: true,
enableValidation: true,
enableErrorHandling: true,
enableQualityControl: true
};
// 应用单机版印章管理配置
function applyStandaloneSignConfig() {
try {
// 设置单机版印章管理处理
if (standaloneSignConfig.enableLogging) {
console.log("单机版印章管理日志已启用");
}
if (standaloneSignConfig.enableValidation) {
console.log("单机版印章验证已启用");
}
console.log("单机版印章管理配置应用成功");
} catch (error) {
handleStandaloneSignMethodError('applyStandaloneSignConfig', error);
}
}
// 应用配置
applyStandaloneSignConfig();
}
2. 单机版印章质量控制最佳实践
javascript
// 单机版印章质量控制最佳实践
function standaloneSignQualityControlBestPractice() {
// 单机版印章质量控制
function controlStandaloneSignQuality() {
try {
// 单机版印章质量控制
var signQuality = {
totalSigns: 0,
validSigns: 0,
invalidSigns: 0,
qualityScore: 0
};
// 计算质量分数
if (signQuality.totalSigns > 0) {
signQuality.qualityScore = (signQuality.validSigns / signQuality.totalSigns) * 100;
}
console.log("单机版印章质量控制完成:", signQuality);
return signQuality;
} catch (error) {
console.error("单机版印章质量控制失败:", error.message);
return null;
}
}
// 执行质量控制
var qualityResult = controlStandaloneSignQuality();
console.log("单机版印章质量控制结果:", qualityResult);
}
技术要点
- 产品要求:PDF安全电子印章接口需要单独购买PDF电子印章产品才能调用
- 参数验证:验证单机版印章方法参数的有效性,避免空值或无效值
- 错误处理:完善的错误处理机制
- 性能优化:避免频繁调用单机版印章方法
- 资源管理:及时清理不需要的资源
- 状态同步:保持单机版印章状态的一致性
- 用户体验:确保单机版印章方法调用不影响用户体验