WEB打印大全(转)

简介:

None.gif 导出excel打印 
None.gif
private   void  ImageButton1_Click( object  sender, System.Web.UI.ImageClickEventArgs e)
ExpandedBlockStart.gif  
{
InBlock.gif   Response.Clear(); 
InBlock.gif   Response.Buffer
= true
InBlock.gif   
InBlock.gif   Response.AppendHeader(
"Content-Disposition","attachment;filename=Borrow.xls");
InBlock.gif   Response.ContentEncoding
=System.Text.Encoding.GetEncoding("gb2312");
InBlock.gif
InBlock.gif   Response.ContentType 
= "application/ms-excel";
InBlock.gif   
this.EnableViewState = false
InBlock.gif   
InBlock.gif   System.Globalization.CultureInfo myCItrad 
= new System.Globalization.CultureInfo("ZH-CN",true);
InBlock.gif   System.IO.StringWriter oStringWriter 
= new System.IO.StringWriter(myCItrad); 
InBlock.gif   System.Web.UI.HtmlTextWriter oHtmlTextWriter 
= new System.Web.UI.HtmlTextWriter(oStringWriter); 
InBlock.gif   
InBlock.gif   Table3.RenderControl(oHtmlTextWriter);
InBlock.gif
InBlock.gif   Response.Charset
="gb2312";
InBlock.gif   Response.Write(oStringWriter.ToString());
InBlock.gif   Response.End();
ExpandedBlockEnd.gif  }

None.gif
None.gif
None.gif红色为导出文件名和要导出页面中的table
None.gif
None.gif 首先在网页中添加: 
None.gif
None.gif
< OBJECT  id ="WebBrowser"  height ="0"  width ="0"  classid ="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"  
None.gifVIEWASTEXT
>  
None.gif
</ OBJECT >  
None.gif
None.gif然后就可以依次加入功能按钮了: 
None.gif
None.gif
< input  onclick ="document.all.WebBrowser.ExecWB(6,1)"  type ="button"  value ="打印" >   < input  onclick ="document.all.WebBrowser.ExecWB(6,6)"  type ="button"  value ="直接打印" >  
None.gif
< input  onclick ="document.all.WebBrowser.ExecWB(8,1)"  type ="button"  value ="页面设置" >  
None.gif
< input  onclick ="document.all.WebBrowser.ExecWB(7,1)"  type ="button"  value ="打印预览" > &nbsp; < INPUT  type ="button"  value ="关闭窗口"  onclick ="javascript:window.close()" >  
None.gif
None.gif将这两块东西放到
< center  class =noprint ></ center > 就不会打印这些按钮了。当然要定义noprint了: 
None.gif
ExpandedBlockStart.gif
< style  media ="print" > .Noprint { DISPLAY: none }</style>只要把不想打印的东西的css设置成noprint就可以了。 
InBlock.gif
InBlock.gif现在就实现了基本的web打印,需要注意的情况如下: 
InBlock.gif
InBlock.gif必须将ie的internet选项的安全设置中对于没有标记为安全的ActiveX控件进行dot.gif设置成提示或者启用,否则会报错,导致不可用。 
InBlock.gif如果在vs.net编辑环境下编辑该页面,它经常自动的给object添加多余的参数,有了这些东西,打印就会出错,所以要记得最后保存的时候删除它们。 
InBlock.gif为了简便并且达到最好的效果,我们可以在一个页面实现编辑和打印,这时候会需要很多的textbox,我们把它的css设置成.edittext 
InBlock.gif
InBlock.gifoverflow-y:visible; 
InBlock.gifwidth: 100%; 
InBlock.gifborder-top: none; 
InBlock.gifborder-right: none; 
InBlock.gifborder-bottom: none; 
InBlock.gifborder-left: none; 
InBlock.gif}就可以实现在打印的时候不显示边框和multiline的textbox不显示滚动条了。 
InBlock.gif
InBlock.gif还有一些小经验就是在设置标格宽度的时候,对于A4纸张,横打用920,竖打用640,效果最好。 
InBlock.gif
None.gif 1、控制"纵打"、 横打”和“页面的边距。 
ExpandedBlockStart.gif(1)
< script  defer >  
ExpandedSubBlockStart.gif
function SetPrintSettings() 
InBlock.gif 
// -- advanced features 
InBlock.gif
 factory.printing.SetMarginMeasure(2// measure margins in inches 
InBlock.gif
 factory.SetPageRange(false13// need pages from 1 to 3 
InBlock.gif
 factory.printing.printer = "HP DeskJet 870C" 
InBlock.gif factory.printing.copies 
= 2 
InBlock.gif factory.printing.collate 
= true 
InBlock.gif factory.printing.paperSize 
= "A4" 
InBlock.gif factory.printing.paperSource 
= "Manual feed"  
InBlock.gif
InBlock.gif 
// -- basic features 
InBlock.gif
 factory.printing.header = "This is MeadCo" 
InBlock.gif factory.printing.footer 
= "Advanced Printing by scriptX" 
InBlock.gif factory.printing.portrait 
= false 
InBlock.gif factory.printing.leftMargin 
= 1.0 
InBlock.gif factory.printing.topMargin 
= 1.0 
InBlock.gif factory.printing.rightMargin 
= 1.0 
InBlock.gif factory.printing.bottomMargin 
= 1.0 
ExpandedBlockEnd.gif}
 
None.gif
</ script >  
None.gif
None.gif(2) 
ExpandedBlockStart.gif
< script  language ="javascript" >  
ExpandedSubBlockStart.gif  
function printsetup()
InBlock.gif  
// 打印页面设置 
InBlock.gif
  wb.execwb(8,1); 
ExpandedSubBlockEnd.gif  }
 
ExpandedSubBlockStart.gif  
function printpreview()
InBlock.gif  
// 打印页面预览 
InBlock.gif
     
InBlock.gif  wb.execwb(
7,1); 
InBlock.gif      
InBlock.gif     
ExpandedSubBlockEnd.gif  }
 
InBlock.gif
InBlock.gif  
function printit() 
ExpandedSubBlockStart.gif  

ExpandedSubBlockStart.gif  
if (confirm(''确定打印吗?'')) 
InBlock.gif  wb.execwb(
6,6
ExpandedSubBlockEnd.gif  }
 
ExpandedSubBlockEnd.gif  }
 
ExpandedBlockEnd.gif  
</ script >  
None.gif
</ head >  
None.gif
< body >  
None.gif
< OBJECT  classid ="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"  
None.gif
None.gifheight
=0  id =wb  name =wb  width =0 ></ OBJECT >  
None.gif
< input  type =button  name =button_print  value ="打印"  
None.gif
None.gifonclick
="javascript:printit()" >  
None.gif
< input  type =button name=button_setup  value ="打印页面设置"  
None.gif
None.gifonclick
="javascript:printsetup();" >  
None.gif
< input  type =button name=button_show  value ="打印预览"  
None.gif
None.gifonclick
="javascript:printpreview();" >  
None.gif
< input  type =button  name =button_fh  value ="关闭"  
None.gif
None.gifonclick
="javascript:window.close();" >  
None.gif
None.gif------------------------------------------------ 
None.gif关于这个组件还有其他的用法,列举如下: 
None.gifWebBrowser.ExecWB(1,1) 打开 
None.gifWeb.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 
None.gifWeb.ExecWB(4,1) 保存网页 
None.gifWeb.ExecWB(6,1) 打印 
None.gifWeb.ExecWB(7,1) 打印预览 
None.gifWeb.ExecWB(8,1) 打印页面设置 
None.gifWeb.ExecWB(10,1) 查看页面属性 
None.gifWeb.ExecWB(15,1) 好像是撤销,有待确认 
None.gifWeb.ExecWB(17,1) 全选 
None.gifWeb.ExecWB(22,1) 刷新 
None.gifWeb.ExecWB(45,1) 关闭窗体无提示 
None.gif
None.gif2、分页打印 
None.gif
< HTML >  
None.gif
< HEAD >  
ExpandedBlockStart.gif
< STYLE >    
ExpandedSubBlockStart.gif  P 
{page-break-after: always} 
None.gif
</ STYLE >  
None.gif
</ HEAD >  
None.gif
< BODY >  
ExpandedBlockStart.gif
<% while not rs.eof %>  
None.gif
< P > <% = rs( 0 ) %> </ P >  
ExpandedBlockStart.gif
<% rs.movenext %>  
None.gif
<% wend %>  
None.gif
</ BODY >  
None.gif
</ HTML >  
None.gif
None.gif3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号 
None.gif(1)ie的文件-〉页面设置-〉讲里面的页眉和页脚里面的东西都去掉,打印就不出来了。 
None.gif(2)
< HTML >  
None.gif
< HEAD >  
None.gif
< TITLE >  New Document  </ TITLE >  
None.gif
< META  NAME ="Generator"  CONTENT ="EditPlus" >  
None.gif
< META  NAME ="Author"  CONTENT ="YC" >  
ExpandedBlockStart.gif
< script  language ="VBscript" >  
InBlock.gif
dim hkey_root,hkey_path,hkey_key 
InBlock.gifhkey_root
="HKEY_CURRENT_USER" 
InBlock.gifhkey_path
="\Software\Microsoft\Internet Explorer\PageSetup" 
InBlock.gif
''//设置网页打印的页眉页脚为空 
InBlock.gif
function pagesetup_null() 
InBlock.gif  
on error resume next 
InBlock.gif  
Set RegWsh = CreateObject("Wscript.Shell"
InBlock.gif  hkey_key
="\header"   
InBlock.gif  RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"" 
InBlock.gif  hkey_key
="\footer" 
InBlock.gif  RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"" 
InBlock.gif
end function 
InBlock.gif
''//设置网页打印的页眉页脚为默认值 
InBlock.gif
function pagesetup_default() 
InBlock.gif  
on error resume next 
InBlock.gif  
Set RegWsh = CreateObject("Wscript.Shell"
InBlock.gif  hkey_key
="\header"   
InBlock.gif  RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"&w&b页码,&p/&P" 
InBlock.gif  hkey_key
="\footer" 
InBlock.gif  RegWsh.RegWrite hkey_root
+hkey_path+hkey_key,"&u&b&d" 
ExpandedBlockEnd.gif
end function 
None.gif
</ script >  
None.gif
</ HEAD >  
None.gif
None.gif
< BODY >  
None.gif
< br />  
None.gif
< br />  
None.gif
< br />  
None.gif
< br />  
None.gif
< br />  
None.gif
< br />< align =center >  
None.gif
< input  type ="button"  value ="清空页码"  onclick =pagesetup_null() >   < input  type ="button"  value ="恢复页吗"  onclick =pagesetup_default() >< br />  
None.gif
None.gif
</ p >  
None.gif
</ BODY >  
None.gif
</ HTML >  
None.gif4、浮动帧打印 
ExpandedBlockStart.gif
< script  LANGUAGE =javascript >  
ExpandedSubBlockStart.gif
function button1_onclick() 
InBlock.gif  
var odoc=window.iframe1.document; 
InBlock.gif  
var r=odoc.body.createTextRange(); 
InBlock.gif  
var stxt=r.htmlText; 
InBlock.gif  alert(stxt) 
InBlock.gif  
var pwin=window.open("","print"); 
InBlock.gif  pwin.document.write(stxt); 
InBlock.gif  pwin.print(); 
ExpandedBlockEnd.gif}
 
None.gif
</ script >  
None.gif4、用FileSystem组件实现WEB应用中的本地特定打印 
ExpandedBlockStart.gif
< script  Language =VBscript >  
InBlock.gif
function print_onclick //打印函数 
InBlock.gif
dim label 
InBlock.giflabel
=document.printinfo.label.value //获得HTML页面的数据 
InBlock.gif
set objfs=CreateObject("scripting.FileSystemObject"//创建FileSystem组件对象的实例 
InBlock.gif
set objprinter=objfs.CreateTextFile ("LPT1:",true//建立与打印机的连接 
InBlock.gif
objprinter.Writeline("__________________________________"//输出打印的内容 
InBlock.gif
objprinter.Writeline("| |"
InBlock.gifobjprinter.Writeline(
"| 您打印的数据是:"&label& " |”) 
InBlock.gifobjprinter.Writeline(
"| |"
InBlock.gifobjprinter.Writeline(
"|_________________________________|"
InBlock.gifobjprinter.close //断开与打印机的连接 
InBlock.gifset objprinter=nothing 
InBlock.gifset objfs=nothing // 关闭FileSystem组件对象 
InBlock.gifend function 
InBlock.gif</script> 
InBlock.gif服务器端脚本: 
InBlock.gif<%……… 
InBlock.gifset conn=server.CreateObject (
"adodb.connection"
InBlock.gifconn.Open 
"DSN=name;UID=XXXX;PWD=XXXX;" 
InBlock.gifset rs=server.CreateObject(
"adodb.recordset"
InBlock.gifrs.Open(“select ……”),conn,1,1 
InBlock.gif……….%> //与数据库进行交互 
InBlock.gifHTML页面编码: 
InBlock.gif<HTML> 
InBlock.gif……… 
InBlock.gif<FORM ID=printinfo NAME=
"printinfo" > 
InBlock.gif<INPUT type=
"button" value="打印>>" id=print name=print > //调用打印函数 
InBlock.gif<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服务器端传来的数据 
InBlock.gif……… 
InBlock.gif</HTML>
InBlock.gif
InBlock.gif
InBlock.gif

None.gif //打印分页
None.gif
None.gif
None.gif
< p   style ="page-break-after:always" > page1 </ p >    
None.gif
< p   style ="page-break-after:always" > page2 </ p >    
None.gif
None.gif 
None.gif
None.gif//设置打印
None.gif 
< br  />
None.gif
< object  id ="factory"  style ="display:none"  viewastext <br  />
None.gif  classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" 
< br  />
None.gif  codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360" 
< br  />
None.gif>
</ object >   < br  />
None.gif
< input  type =button  value =页面设置  onclick ="factory.printing.PageSetup()" >   < br  />
None.gif
< input  type =button  value =打印预览  onclick ="factory.printing.Preview()" >   < br  />
None.gif  
< br  />
ExpandedBlockStart.gif
< script  language =javascript >  <br />
InBlock.gif
function window.onload() <br />
ExpandedSubBlockStart.gif
<br />
InBlock.gif   
// -- advanced features <br />
InBlock.gif
   factory.printing.SetMarginMeasure(2// measure margins in inches <br />
InBlock.gif
   factory.printing.SetPageRange(false13// need pages from 1 to 3 <br />
InBlock.gif
   factory.printing.printer = "HP DeskJet 870C" <br />
InBlock.gif   factory.printing.copies 
= 2 <br />
InBlock.gif   factory.printing.collate 
= true <br />
InBlock.gif   factory.printing.paperSize 
= "A4" <br />
InBlock.gif   factory.printing.paperSource 
= "Manual feed" <br />
InBlock.gif   
// -- basic features <br />
InBlock.gif
   factory.printing.header = "居左显示&b居中显示&b居右显示页码,第&p页/共&P页" <br />
InBlock.gif   factory.printing.footer 
= "(自定义页脚)" <br />
InBlock.gif   factory.printing.portrait 
= false <br />
InBlock.gif   factory.printing.leftMargin 
= 0.75 <br />
InBlock.gif   factory.printing.topMargin 
= 1.5 <br />
InBlock.gif   factory.printing.rightMargin 
= 0.75 <br />
InBlock.gif   factory.printing.bottomMargin 
= 1.5 <br />
ExpandedSubBlockEnd.gif}
 <br />
ExpandedSubBlockStart.gif
function Print(frame) <br />
InBlock.gif  factory.printing.Print(
true, frame) // print with prompt <br />
ExpandedBlockEnd.gif
}
 <br />
None.gif
</ script >   < br  />
None.gif
< input  type =button  value ="打印本页"  onclick ="factory.printing.Print(false)" >   < br  />
None.gif
< input  type =button  value ="页面设置"  onclick ="factory.printing.PageSetup()" >   < br  />
None.gif
< input  type =button  value ="打印预览"  onclick ="factory.printing.Preview()" >< br >   < br  />
None.gif
< href ="http://www.meadroid.com/scriptx/docs/printdoc.htm?static"   target =_blank > 具体使用手册,更多信息,点这里 </ a >   < br  />
None.gif [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] 
None.gif//自带的打印预览 
None.gif
None.gif
None.gifWebBrowser.ExecWB(1,1) 打开  
None.gifWeb.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口  
None.gifWeb.ExecWB(4,1) 保存网页  
None.gifWeb.ExecWB(6,1) 打印  
None.gifWeb.ExecWB(7,1) 打印预览  
None.gifWeb.ExecWB(8,1) 打印页面设置  
None.gifWeb.ExecWB(10,1) 查看页面属性  
None.gifWeb.ExecWB(15,1) 好像是撤销,有待确认  
None.gifWeb.ExecWB(17,1) 全选  
None.gifWeb.ExecWB(22,1) 刷新  
None.gifWeb.ExecWB(45,1) 关闭窗体无提示  
ExpandedBlockStart.gif
< style  media =print >   
ExpandedSubBlockStart.gif.Noprint
{display:none;}<!--用本样式在打印时隐藏非打印项目-->  
ExpandedSubBlockStart.gif.PageNext
{page-break-after: always;}<!--控制分页-->  
None.gif
</ style >   
None.gif
< object   id ="WebBrowser"   width =0   height =0   classid ="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" >      
None.gif
</ object >      
None.gif  
None.gif
< center  class ="Noprint"   >  
None.gif
< input  type =button  value =打印  onclick =document.all.WebBrowser.ExecWB(6,1) >   
None.gif
< input  type =button  value =直接打印  onclick =document.all.WebBrowser.ExecWB(6,6) >   
None.gif
< input  type =button  value =页面设置  onclick =document.all.WebBrowser.ExecWB(8,1) >   
None.gif
</ p >   
None.gif
< p >   < input  type =button  value =打印预览  onclick =document.all.WebBrowser.ExecWB(7,1) >   
None.gif
</ center >
None.gif
None.gif 
None.gif
None.gif
None.gif//去掉打印时的页眉页脚 
None.gif 
< br  />
ExpandedBlockStart.gif
< script   language ="JavaScript" >    <br />
InBlock.gif
var HKEY_Root,HKEY_Path,HKEY_Key; <br />
InBlock.gifHKEY_Root
="HKEY_CURRENT_USER"<br />
InBlock.gifHKEY_Path
="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"<br />
InBlock.gif
//设置网页打印的页眉页脚为空 <br />
InBlock.gif
function PageSetup_Null() <br />
ExpandedSubBlockStart.gif
<br />
InBlock.gif 
try <br />
ExpandedSubBlockStart.gif 
<br />
InBlock.gif         
var Wsh=new ActiveXObject("WScript.Shell"); <br />
InBlock.gif  HKEY_Key
="header"<br />
InBlock.gif  Wsh.RegWrite(HKEY_Root
+HKEY_Path+HKEY_Key,""); <br />
InBlock.gif  HKEY_Key
="footer"<br />
InBlock.gif  Wsh.RegWrite(HKEY_Root
+HKEY_Path+HKEY_Key,""); <br />
ExpandedSubBlockEnd.gif }
 <br />
ExpandedSubBlockStart.gif 
catch(e){} <br />
ExpandedSubBlockEnd.gif}
 <br />
InBlock.gif
//设置网页打印的页眉页脚为默认值 <br />
InBlock.gif
function  PageSetup_Default() <br />
ExpandedSubBlockStart.gif
{   <br />
InBlock.gif 
try <br />
ExpandedSubBlockStart.gif 
<br />
InBlock.gif  
var Wsh=new ActiveXObject("WScript.Shell"); <br />
InBlock.gif  HKEY_Key
="header"<br />
InBlock.gif  Wsh.RegWrite(HKEY_Root
+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P"); <br />
InBlock.gif  HKEY_Key
="footer"<br />
InBlock.gif  Wsh.RegWrite(HKEY_Root
+HKEY_Path+HKEY_Key,"&u&b&d"); <br />
ExpandedSubBlockEnd.gif }
 <br />
ExpandedSubBlockStart.gif 
catch(e){} <br />
ExpandedBlockEnd.gif}
 <br />
None.gif
</ script >   < br  />
None.gif
< input  type ="button"  value ="清空页码"  onclick =PageSetup_Null() >   < br  />
None.gif
< input  type ="button"  value ="恢复页码"  onclick =PageSetup_Default() >   < br  />
None.gif [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行] 
None.gif//无模式的提示框 
None.gif
None.gif
None.giffunction modelessAlert(Msg) 
None.gif
None.gif   window.showModelessDialog("javascript:alert(\""+escape(Msg)+"\");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;"); 
None.gif


本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2006/02/15/330846.html,如需转载请自行联系原作者
相关文章
|
Web App开发 前端开发
chrome浏览器web打印需要了解的几个小技巧
当我们使用web打印相关的解决方案的时候,还有不少小坑值得注意下,同时需要了解几个小技巧提升在web打印上的友好度,以下整理一些常见的小技巧
chrome浏览器web打印需要了解的几个小技巧
|
前端开发 JavaScript
|
Web App开发
Web蓝牙打印Demo以及Webbluetooth的用法
Web蓝牙打印Demo以及Webbluetooth的用法
998 0
|
Web App开发 开发工具 Android开发
Flutter Web:运行后console中不停的打印debug日志
我们用android studio直接运行flutter web项目,会启动chrome来执行,这时候如果我打开开发者工具(右键-》检查),就会发现非常卡 (前提是用Html Render来渲染,用CanvasKit好像就没问题) 在console上边的操作栏上可以看到一个数字在不停的增长,这是因为console默认不显示debug日志,所以这些日志回以计数的形式显示。我们在操作栏的level中将debug选中,就会看到debug日志了。
650 0
|
Web App开发 前端开发 JavaScript
如何在 SAP UI5 应用中集成第三方库 :一个在移动设备上查看 Web 应用打印调试信息的小技巧
如何在 SAP UI5 应用中集成第三方库 :一个在移动设备上查看 Web 应用打印调试信息的小技巧
如何在 SAP UI5 应用中集成第三方库 :一个在移动设备上查看 Web 应用打印调试信息的小技巧
打印SAP ABAP web service call完整的payload
打印SAP ABAP web service call完整的payload
|
Web App开发 C#
C# web项目利用docx文档作为模板~为打印专做的解决方案
还是那句话:十年河东,十年河西,莫欺少年穷。 目前,web端打印技术有很多,有收费的专业web打印控件,大家可以参考我的上一篇博客。当然,很多公司不愿意出钱,那么今天咱们就探讨下怎么做免费的打印。 web端JS技术很强大,JS也提供了简单的打印方法,大家可参考JQprint()方法,这个方法网上有很多说明,在我的上一篇博客中也有提到,可以简单实现打印功能,大家可自行查询资料,在此不作说明。
1290 0
|
Web App开发 JavaScript 前端开发