web开发,在页面上按条件查询出N条记录,每条记录前面有一个复选框,如何实现打印机打印出选中的记录?
打印的结果类似于发票这样的单据,不是在空白纸上打印,打印纸本身已经有了内容,只需要打印部分数据到指定的位置上,比如打印纸上有“单据编号”,需要在“单据编号”后面打印出“20100010123”,如何实现?
需要用到什么东西?

解决方案 »

  1.   


    用javascript就可以实现哦。
    <body onload="printpreview()">
         <OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" id="wb" name="wb" width="3"></OBJECT> 
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <DIV>
    打印区域内容
    </DIV>
         </body>
    </html>
    <script language="javascript"> 
           function printsetup(){ 
           // 打印页面设置 
           wb.execwb(8,1); 
           } 
           function printpreview(){ 
           //by 打印页面预览            
           wb.execwb(7,1);
           } 
         
           function printit() 
           { 
           if (confirm('确定打印吗?')) { 
           wb.execwb(6,6) 
           } 
           } 
    </script> 
         ------------------------------------------------
         关于这个组件还有其他的用法,列举如下:
         WebBrowser.ExecWB(1,1) 打开
         Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
         Web.ExecWB(4,1) 保存网页
         Web.ExecWB(6,1) 打印
         Web.ExecWB(7,1) 打印预览
         Web.ExecWB(8,1) 打印页面设置
         Web.ExecWB(10,1) 查看页面属性
         Web.ExecWB(15,1) 撤销
         Web.ExecWB(17,1) 全选
         Web.ExecWB(22,1) 刷新
         Web.ExecWB(45,1) 关闭窗体无提示
    当然要调用打印机哦!
      

  2.   

    最好能通java代码打印,将要打印的数据发送到打印机,实现套打。
      

  3.   

    /*批量*/
    var temp;
    function checkAll(name) {//checkboxName

    o = document.getElementsByName(name);
    var ids = [];
    var length = 0;
    for (i = 0; i < o.length; i++) {
    if (o[i].checked) {
    ids[length] = o[i].value;
    length++;
    }
    }
    if (length == 0) {
    ymPrompt.errorInfo('请至少选择一条记录!!',null,null,null,null);

    }
      

  4.   

    楼主实现了吗?我现在就要用ireport实现批量打印,不会能指教下吗?
      

  5.   

    我也没能实现将数据直接发送到打印机,我是通过ireport画个模板,生成pdf文档,然后通过pdf的打印实现的。