复制内容到剪贴板
代码:
var myDoc = {
documents : document,
copyrights : '杰创软件拥有版权 www.jatools.com'
};
//定义回调方法
myDoc.done = function() {
console.log("打印结束.")
}
getJCP().print(myDoc);
在jcp中,所有调用都是异步执行的,print方法也一样,该方法返回时,打印可能还没有结束,当打印结束时(指打印任务已经生成),jcp会检查myDoc上是否定义了done函数,如果有,则调用之。
回调有很多用处,如:
1.打印结束后通过 ajax写入到数据库,避免打印等;
2.可以一次打印多个文档,并使用不同的参数,比如,一键打印到不同打印机。
注意,打印结束是指打印任务已经生成,并不是指打印机已经打印完成,如,即使你的打印机处于关机状态,jcp也会调用done,只不过,打印任务仅列在打印机任务列表中,等待发往打印机而已。
也就是说,你不能用done来判断是否真的打印出来了。
jcp不允许连续调用 print方法, 但你可以在done回调里,再次调用print方法:
错误的二次打印:
复制内容到剪贴板
代码:
var myDoc = {...};
getJCP().print(myDoc);
myDoc = {...};
getJCP().print(myDoc); // 连续调用,错误
正确的二次打印:
复制内容到剪贴板
代码:
var myDoc = {
...
done : function() {
myDoc = {
...
};
getJCP().print(myDoc);
}
};
getJCP().print(myDoc);
采用done多次打印时,会生成多个系统打印任务。