Skip to content

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必选longEKEY类型: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必选longEKEY类型: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必选longEKEY类型: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必选longEKEY类型: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必选longEKEY类型: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必选longEKEY类型: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必选longEKEY类型: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);
}

注意事项

  1. 产品要求:PDF安全电子印章接口需要单独购买PDF电子印章产品才能调用
  2. 参数验证:验证单机版印章方法参数的有效性,避免空值或无效值
  3. 错误处理:实现完善的错误处理机制
  4. 性能考虑:避免频繁调用单机版印章方法
  5. 资源管理:及时清理不需要的资源
  6. 状态同步:保持单机版印章状态的一致性
  7. 用户体验:确保单机版印章方法调用不影响用户体验

错误处理

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);
}

技术要点

  1. 产品要求:PDF安全电子印章接口需要单独购买PDF电子印章产品才能调用
  2. 参数验证:验证单机版印章方法参数的有效性,避免空值或无效值
  3. 错误处理:完善的错误处理机制
  4. 性能优化:避免频繁调用单机版印章方法
  5. 资源管理:及时清理不需要的资源
  6. 状态同步:保持单机版印章状态的一致性
  7. 用户体验:确保单机版印章方法调用不影响用户体验