杰表技术论坛 's Archiver

admin 发表于 2017-12-21 14:56

【jcp使用手册】打印结束回调脚本

[code]var myDoc = {  
    documents : document,  
    copyrights : '杰创软件拥有版权  www.jatools.com'  
};  
//定义回调方法            
myDoc.done = function() {  
    console.log("打印结束.")  
}  
getJCP().print(myDoc); [/code]在jcp中,所有调用都是异步执行的,print方法也一样,该方法返回时,打印可能还没有结束,当打印结束时(指打印任务已经生成),jcp会检查myDoc上是否定义了done函数,如果有,则调用之。

回调有很多用处,如:
1.打印结束后通过 ajax写入到数据库,避免打印等;
2.可以一次打印多个文档,并使用不同的参数,比如,一键打印到不同打印机。

注意,打印结束是指打印任务已经生成,并不是指打印机已经打印完成,如,即使你的打印机处于关机状态,jcp也会调用done,只不过,打印任务仅列在打印机任务列表中,等待发往打印机而已。

也就是说,你不能用done来判断是否真的打印出来了。

jcp不允许连续调用 print方法, 但你可以在done回调里,再次调用print方法:
错误的二次打印:[code]var myDoc = {...};  
getJCP().print(myDoc);  
myDoc = {...};  
getJCP().print(myDoc); // 连续调用,错误  [/code]正确的二次打印:[code]var myDoc = {  
    ...  
    done : function() {  
        myDoc = {  
            ...  
        };  
        getJCP().print(myDoc);  
    }  
};  
getJCP().print(myDoc);  [/code]采用done多次打印时,会生成多个系统打印任务。

admin 发表于 2017-12-21 14:57

在线示例:[url=http://print.jatools.com/jcp/0.99/done.htm]http://print.jatools.com/jcp/0.99/done.htm[/url]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.