天天看点

关于web 打印的总结

1.打印方式选择   jatoolsPrinter  (这种方式打印是比较好的,可是有一个缺点就是不能打印div里的地图,在打印地图的时候,经常只打印一小块。打印地图的时候,就选第二种方式吧)

在 jsp 页面引入

<OBJECT  ID="jatoolsPrinter"    CLASSID="CLSID:B43D3361-D075-4BE2-87FE-057188254255" 

              codebase="jatoolsPrinter.cab#version=8,6,1,0"></OBJECT>   之后 就可以调用了

调用方法   

各参数说明  

printer: 设置默认打印机

orientation:  orientation值等于1是纵向打印   orientation值等于2是横向打印

copyrights: '杰创软件拥有版权  www.jatools.com'    这个值好像是必须带的。

更多调用可以参考网站api   http://printfree.jatools.com/  这个是免费版的官网,一般的需求我觉得这个就够了。

要打印的区域规定id必须是从page1开始

如:

<div class="inner" id="page1">

<center><h1 class="top" id="readdress">方位图</h1><center>

</div>

打印方法:

 function doPrint(how) {

      var myDoc = {

settings:{printer:'HP LaserJet 1020',orientation:2},//设置默认打印机

documents: document,

      copyrights: '杰创软件拥有版权  www.jatools.com'

      };

      if(how == '打印预览...')

        document.getElementById("jatoolsPrinter").printPreview(myDoc );   // 打印预览

      else if(how == '打印...')

              document.getElementById("jatoolsPrinter").print(myDoc ,true);   // 打印前弹出打印设置对话框

        else 

              document.getElementById("jatoolsPrinter").print(myDoc ,false);      // 不弹出对话框打印   

     } 

1.打印方式选择   WebBrowser  控件

引入 WebBrowser  控件方式 咋jsp 页面加入

 <OBJECT id="wb" height="0" width="0" style="display:none" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" name="wb"></OBJECT>

打印前先设置打印页面页眉和页脚 使用修改注册表的方式

方法为

function setPageSetup(){

        try{                 

            var shell = new ActiveXObject("WScript.Shell");     

            //往注册表中写入值

            shell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\footer","","REG_SZ");//去除页脚

            shell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\PageSetup\\header","","REG_SZ");//去除页眉           

        }catch(e){

            alert("error:"+e);

        }

    }

打印方法 我这的需求是直接打印(不弹出设置打印机选项),并且要求是横向打印(这里我是直接通过修改 控制面板 -打印机-默认打印机-设置首选项-横向打印来做的)

直接打印不弹出设置框的方法

function   myprint(){

   setPageSetup();

    wb.execwb(6,2);  //直接打印,前提是有真正的打印机,虚拟的话好像不行,还是会弹出设置框的

}

关于WebBrowser  的其他方法

 wb.execwb(8,1); // 打印页面设置

  wb.execwb(7,1);// 打印页面预览

下面这些方法还未尝试,暂时整理一下。

WebBrowser.ExecWB(1,1) 打开 WebBrowser.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 WebBrowser.ExecWB(4,1) 保存网页 WebBrowser.ExecWB(6,1) 打印 WebBrowser.ExecWB(7,1) 打印预览 WebBrowser.ExecWB(8,1) 打印页面设置 WebBrowser.ExecWB(10,1) 查看页面属性 WebBrowser.ExecWB(15,1) 好像是撤销,有待确认 WebBrowser.ExecWB(17,1) 全选 WebBrowser.ExecWB(22,1) 刷新 WebBrowser.ExecWB(45,1) 关闭窗体无提示