杰表技术论坛 's Archiver

cwwcww 发表于 2015-1-25 12:06

printPreview里 打印和 关闭预览 有返回值么。如何判断是打印了还是关闭了预览?

printPreview里 打印和 关闭预览 有返回值么。如何判断是打印了还是关闭了预览?

admin 发表于 2015-1-26 10:51

解决代码如下:
[code]var printed = false;
var myDoc = {
                listener : function(e) {
                       if(e.type == 'printed')
                           printed = true;

                       if(e.type=='window-close')
                       {
                                if(printed)
                                     alert("预览结束,预览中有打印");
                                else
                                     alert("预览结束,无打印");
                       }
                },
               ...
        };

jatoolsPrinter.printPreview(myDoc)[/code]


请参照:
[url=http://bbs.jatools.com/viewthread.php?tid=1534&highlight=listener]http://bbs.jatools.com/viewthread.php?tid=1534&highlight=listener[/url]

admin 发表于 2015-1-26 11:01

用 myDoc.listener属性就可以了:[code]<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>事件监听</title>
<script type="text/javascript" src="jatoolsPrinter.js"></script>
<script type="text/javascript">
function doPrint(how) {
        var log = document.getElementById('event-log');
        log.innerHTML = '';
        // 打印文档对象
        var myDoc = {
                listener : function(e) {
                        log.innerHTML += (decodeEvent(e) + '<br>');
                },
                documents : document, // 打印页面(div)们在本文档中
                copyrights : '杰创软件拥有版权  www.jatools.com'
        };
        var jatoolsPrinter = getJatoolsPrinter();
        // 调用打印方法
        if (how == '打印预览...')
                jatoolsPrinter.printPreview(myDoc, false); // 打印预览
        else if (how == '打印...')
                jatoolsPrinter.print(myDoc, true); // 打印前弹出打印设置对话框
        else
                jatoolsPrinter.print(myDoc, false); // 不弹出对话框打印
}
// 根据事件的类型,提取相应的参数
function decodeEvent(e) {

        var result = e.type + ',';
        if (e.type == 'window-open') {
                result += '预览窗口打开';
        } else if (e.type == 'window-close')
                result += '预览窗口关闭';
        else if (e.type == 'doc-start')
                result += '开始文档打印';
        else if (e.type == 'doc-stop')
                result += '结束文档打印';
        else if (e.type == 'page-printed') {
                result += '正在打印一页,';
                result += ('页号:' + e.pageNumber + ',');
                result += ('总页数:' + e.totalPages);
        } else if (e.type == 'printed') {
                result += '打印结束';
        } else if (e.type == 'cancel-print') {
                result += '打印取消,';
                result += '原因:' + e.error;
        } else if(e.type == 'job')
        {
                result +=(e.printerName+' '+ e.document+' '+e.status+' '+e.statusText+' '+e.userName+' '+e.pagesPrinted+' '+e.totalPages+' '+e.size + ' ');
        }
       
        return result;
}

</script>

</head>

<body>

<input type="button" value="打印预览..." onClick="doPrint('打印预览...')">
<input type="button" value="打印..." onClick="doPrint('打印...')">
<input type="button" value="打印" onClick="doPrint('打印')"><br>
<p>事件:</p>
<p id='event-log'></p>
<div id='page1'>第一页</div>
<div id='page2'>第二页</div>
  <!-- 插入打印控件 -->
                <object id="ojatoolsPrinter" codebase="jatoolsPrinter.cab#version=5,4,0,0"
        classid="clsid:B43D3361-D075-4BE2-87FE-057188254255" width="0" height="0">
            <embed id="ejatoolsPrinter" type="application/x-vnd.jatoolsPrinter"
            pluginspage="jatoolsPrinter.exe" width="0" height="0"
            />

</body>
</html>
[/code]

页: [1]

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