1、js调用打印机1网页打印实例网页打印按钮的源代码:javascript:window.print();可以用css控制media print.a display:block.b display:hidden好像是这样。把你不想打印的部分class设为b首先在网页中添加:然后就可以依次加入功能按钮了: 将这两块东西放到就不会打印这些按钮了。当然要定义noprint了:.Noprint DISPLAY: none 只要把不想打印的东西的css设置成noprint就可以了。现在就实现了基本的web打印,需要注意的情况如下:1. 必须将ie的internet选项的安全设置中对于没有标记为安
2、全的ActiveX控件进行.设置成提示或者启用,否则会报错,导致不可用。2. 如果在编辑环境下编辑该页面,它经常自动的给object添加多余的参数,有了这些东西,打印就会出错,所以要记得最后保存的时候删除它们。为了简便并且达到最好的效果,我们可以在一个页面实现编辑和打印,这时候会需要很多的textbox,我们把它的css设置成.edittext overflow-y:visible;width: 100%;border-top: none;border-right: none;border-bottom: none;border-left: none;就可以实现在打印的时候不显示边框和mult
3、iline的textbox不显示滚动条了。还有一些小经验就是在设置标格宽度的时候,对于A4纸张,横打用920,竖打用640,效果最好。相信用B/S方式做过应用的人都可能会遇到这样一个问题,如何方便、美观地实现报表打印。如果使用浏览器的打印菜单打印的话,将把网页上的一些无用的东西打到报表上,比如应用菜单等。因为选择打印菜单打印网页将会把网页中的所有内容全部打印出来,如果你的应用有分帧则打印内容将包括各帧中的内容,而你实际要的内容只是其中一部分。所以有很多应用就只能把打印功能放到后台完成了。 针对这种情况,我们该怎么办?其实可以有多种方法实现网页打印功能。一种方法就是使用专业的打印工具,如Crys
4、tal Reports(水晶报表)。用过Visual Studio 5.0的朋友肯定记得这个工具,不过那时的版本只有4.几。现在的最新版本已达9了,近几个版本的水晶报表都支持WEB打印。最简单的方法是先用水晶报表制作好模板,然后使用ASP带参数调用制作好的模板即可。水晶报表在网页上生成报表后,可以直接打印,也可以转存为其它的比较通过的文件如Excel文件。使用水晶报表可以制作出非常漂亮的样式,关键在你对水晶报表的开发能力上,但由于水晶报表价格较高,只有当项目很赚钱时才买得起。第二种方法是购买第三方的网上打印控件,费用同水晶报表相比便宜,但效果性能到底如何则仁者见仁了。第三种方法是利用样式表及J
5、avaScript自定义函数实现。通过样式表及JavaScript,实现网页打印,效果也还可以。在此有一个实例请大家看看。下面是打印函数实现详解:script language=JavaScript type=text/JavaScript!-function DP() if (window.print) var Div1 = document.all.Div1.innerHTML;var Div2 = document.all.Div2.innerHTML; / */ Div1、Div2即为你在打印的区域/ 这里根据你要打印的哪些内容,从原显示页面中用/ div id=Div1Div1./d
6、ivdiv id=Div2Div2./div/ 等标示出来,要打印多少项目就标示多少/ * var css = style type=text/css media=all +p line-height: 120% +.ftitle line-height: 120%; font-size: 18px; color: #000000 +td font-size: 10px; color: #000000 +/style ;/ */ 定义打印用的CSS,具体你想打印出什么样的格式全看你自己/ 了,但要注意:如果此处有什么同网页中不一致的,可能打印/ 出来的页面同网页格式、字体可能会有所不同/ *v
7、ar body =table width=640 border=0 cellspacing=0 cellpadding=5 + tr + td class=fbody + div align=center class=ftitle + Div1 + /div + Div2 + /td + /tr +/table;/ */ 在此处重新设置的打印格式,根据你的打印要求,将原显示的/ 网页的DIV内容重新组合,可以根据你原来的表格内容,去掉/ 不要打印的,你也可以能下面定义的noprint忽略掉你不想打/ 印的东西,只调用你要打印的内容,但这样被忽略掉的地方将/ 打印出空,不是很美观。表格宽度要同打
8、印的纸张宽度匹配。/ *document.body.innerHTML = center + css + body + /center;/ */ 重设document.body,打印文档准备就绪/ *window.print();window.history.go(0);/ */ 调用打印命令,打印当前窗口内容。当你打印时其实是一张新/ 的网页了,但网页文件还是原先的。紧接着调用/ window.history.go(0),再回到打印前的页面,效果相当不差/ *-/scriptstylemedia print .noprint display:none/style!-/.noprint 定义了
9、noprint,在以下不需要打印的地方加入class=noprint后,用window.print()打印就会忽略-好了,一切就绪了,现在要做的就是调用DP函数,如果你将实现调用的按钮设计在同一张网页上,则直接调用即可;如果你用了分帧方法,实现调用的按钮是在另一张网页上,则在DP函数的第一行加入window.focus()命令,否则打印的只是有按钮的网页。第四种方法,实现是一种取巧的方法。一样还是通过调用window.print()实现,只是将你要打印的内容专门生成一张网页,而打印按钮在另一帧上。假设报表网页在mainFrame上,按钮在topFrame上,按钮调用PrintReports()
10、函数,PrintReports()函数如下即可实现打印工作。function PrintReports() /topFrame网页中的函数try/ */ 错误处理,如果在mainFrame中的网页没有DP函数则不打印/ *window.parent.frames(mainFrame).DP();catch(e)alert(no object to print!); function DP() / mainFrame网页中函数window.focus();if (window.print)window.print();1、控制纵打、 横打”和“页面的边距。(1) function SetPrin
11、tSettings() / - advanced features factory.printing.SetMarginMeasure(2) / measure margins in inches factory.SetPageRange(false, 1, 3) / need pages from 1 to 3 factory.printing.printer = HP DeskJet 870C factory.printing.copies = 2 factory.printing.collate = true factory.printing.paperSize = A4 factory
12、.printing.paperSource = Manual feed/ - basic features factory.printing.header = This is MeadCo factory.printing.footer = Advanced Printing by ScriptX factory.printing.portrait = false factory.printing.leftMargin = 1.0 factory.printing.topMargin = 1.0 factory.printing.rightMargin = 1.0 factory.printi
13、ng.bottomMargin = 1.0 (2) function printsetup() / 打印页面设置wb.execwb(8,1); function printpreview() / 打印页面预览wb.execwb(7,1); function printit() if (confirm(确定打印吗?) wb.execwb(6,6) - 关于这个组件还有其他的用法,列举如下:WebBrowser.ExecWB(1,1) 打开Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口Web.ExecWB(4,1) 保存网页Web.ExecWB(6,1) 打印Web.Ex
14、ecWB(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、分页打印 P page-break-after: always 3、ASP页面打印时如何去掉页面底部的路径和顶端的页码编号(1)ie的文件-页面设置-讲里面的页眉和页脚里面的东西都去掉,打印就不出来了。(2) New Document dim hkey_root,hkey_path,hkey_key
15、 hkey_root=HKEY_CURRENT_USER hkey_path=/Software/Microsoft/Internet Explorer/PageSetup /设置网页打印的页眉页脚为空function pagesetup_null() on error resume next Set RegWsh = CreateObject(WScript.Shell) hkey_key=/headerRegWsh.RegWrite hkey_root+hkey_path+hkey_key, hkey_key=/footer RegWsh.RegWrite hkey_root+hkey_p
16、ath+hkey_key, end function /设置网页打印的页眉页脚为默认值function pagesetup_default() on error resume next Set RegWsh = CreateObject(WScript.Shell) hkey_key=/headerRegWsh.RegWrite hkey_root+hkey_path+hkey_key,&w&b页码,&p/&P hkey_key=/footer RegWsh.RegWrite hkey_root+hkey_path+hkey_key,&u&b&d end function 4、浮动帧打印 fu
17、nction button1_onclick() var odoc=window.iframe1.document; var r=odoc.body.createTextRange(); var stxt=r.htmlText; alert(stxt) var pwin=window.open(,print); pwin.document.write(stxt); pwin.print(); 4、用FileSystem组件实现WEB应用中的本地特定打印 function print_onclick /打印函数dim label label=document.printinfo.label.va
18、lue /获得HTML页面的数据set objfs=CreateObject(Scripting.FileSystemObject) /创建FileSystem组件对象的实例set objprinter=objfs.CreateTextFile (LPT1:,true) /建立与打印机的连接objprinter.Writeline(_) /输出打印的内容objprinter.Writeline(| |) objprinter.Writeline(| 您打印的数据是:&label& |”) objprinter.Writeline(| |) objprinter.Writeline(|_|) o
19、bjprinter.close /断开与打印机的连接set objprinter=nothing set objfs=nothing / 关闭FileSystem组件对象end function 服务器端脚本: /与数据库进行交互HTML页面编码: id=print name=print /调用打印函数INPUT type=hidden id=text1 name=label value= /保存服务器端传来的数据可以控制打印区域打印代码先写入以下代码:function doPrint()var str=;var article;var css;var strAdBegin=;var strAdEnd=;var strFontSize=【大 中 小】var strdoPrint=doPrint();var strTmp;css=+bodyfont-family:宋体+td,.f12font-size:12px+.f24 font-size:24px;+.f14 font-size:14px;+.title14 font-size:14px;line-height:130%+.l17 line-height:170%;+;str += css;str += ;str += +document.title+;str +=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1