JavaWeb B/S架构中实现客户端浏览器打印(使用scriptX)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xf_luyao/article/details/17684069


最近在项目中需要完成一个打印功能,几番周折。

CSDN帮助了我很多,饮水思源。

 

首先讲下我项目的情况,用的SSH架构,要实现点击直接打印的功能,走了很多弯路,最终我打算先在jsp页面把需要打印的表格和数据都显示出来,利用scriptx把当前页面打印出来,然后再跳转到上一个页面,实现一个点击即下载的功能,下面详细讲解。 

 

首先下载scriptx插件

http://download.csdn.net/detail/xf_luyao/6788787

 

 

<script type="text/javascript">
$=document.getElementById;      
 var    hkey_root,hkey_path,hkey_key   
        hkey_root="HKEY_CURRENT_USER"   
        hkey_path="\\Software\\Microsoft\\Internet   Explorer\\PageSetup\\"   
  //设置网页打印的页眉页脚为空   
  function   pagesetup_null()   
  {   
      try{   
          var   RegWsh   =   new   ActiveXObject("WScript.Shell")   
          hkey_key="header"           
          RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")   
          hkey_key="footer"   
          RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"")   
      }catch(e){}   
  }   

//用于设置打印参数
function printBase() {
factory.printing.header  = ""   //页眉
factory.printing.footer = ""   //页脚
factory.printing.portrait = true   //true为纵向打印,false为横向打印//边距设置
factory.printing.leftMargin   =   0.5  
factory.printing.topMargin   =   1.5   
factory.printing.rightMargin   =   0.5  
factory.printing.bottomMargin   =   1.5   


}

//用于调用设置打印参数的方法和显示预览界面
function printReport(){
        printBase();
        pagesetup_null();
}

//使界面最大化
maxWin();
function maxWin()
{
      var aw = screen.availWidth;
      var ah = screen.availHeight;
      window.moveTo(0, 0);
      window.resizeTo(aw, ah);
}

function printexe(){
		// 判断客户端浏览器有无打印插件	
	if(factory.printing == null){
		alert("请安装打印插件!!!");		 	
		var myrar = window.open("http://******/ScriptX/smsx.exe");
            myrar.document.execCommand("SaveAs");
            myrar.close();
	}	
		

}

function printTure()
{
    printexe();	

    printReport();

    factory.printing.Print(false);     //直接打印
    factory.printing.Preview();        //打印预览
    factory.printing.PageSetup();      //页面设置   
    
	window.location.href="跳转路径"	//下载完成后返回页面
}




</script>  <body οnlοad="printTure();">
 <object   id="factory"   style="display:none"   viewastext     
  classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"      
  codebase="ScriptX/smsx.cab#Version=5,60,0,360"></object>    
 
		************   这部分是需要打印的页面信息
<body>
 

 

这是最核心的代码,希望能让大家少走点弯路。

 

 


 

 

 

 

 

 

 

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页