script language="VBScript">
dim path, reg
'path存放IE打印设置的注册表地址, reg存放WScript.Shell组件的对象
path = "HKEY_CURRENT_USER\Software\Micro-soft\Internet Explorer\PageSetup"
'通过注册表修改打印设置,只修改页眉、页脚和各边界的值
'参数说明:header--页眉,footer--页脚,margin_left--左边界
'margin_top--上边界,margin_right--右边界,margin_bottom--下边界
'页边距的设置中 1对应25.4mm,即margin_left=1表示实际值的25.4mm
function pagesetup(header, footer, margin_left, margin_top, margin_right, margin_bottom)
On Error Resume Next
Set reg = CreateObject("WScript.Shell")
if err.Number>0 then
MsgBox "不能创建WScript.Shell对象!"
exit function
end if
reg.RegWrite path+"\header", header'设置页眉
reg.RegWrite path+"\footer", footer '设置页脚
reg.RegWrite path+"\margin_left", margin_left'设置左边界
reg.RegWrite path+"\margin_top", margin_top'设置上边界
reg.RegWrite path+"\margin_right", margin_right'设置右边界
reg.RegWrite path+"\margin_bottom", margin_bottom'设置下边界
end function
/script>
程序中可以再写一个函数(可用VBscript或javascript脚本写)先调用该函数,然后再调用window.print()实现打印,这里就不给出代码了。细心的读者一定发现了这样打印出来的页面会有打印按钮在上面,而且分页是IE打印控件根据纸张大小分出来的,下面我们介绍一种方法来控制分页和打印按钮的显示。该方法是利用CSS样式表来控制这些设置,因为在样式表中有一个“media=print”属性,该属性只有在打印的时候才会起作用,因此可以实现对打印按钮和分页的控制,具体做法如下:
style media=print>
.noprint{display:none}
.pagenext{page-break-after: always}
/style>
只要在打印按钮中加入代码class="noprint",而在需要分页的地方加入代码 div class="pagenext">/div>就可以了。到目前为止我们的打印功能已经比较完善了,但是还没有打印预览和直接打印的功能,一般用户在打印之前都会预览一下,如果没有问题就直接打印了。下面我们通过IEWebBrowser组件来实现这两个功能。
首先创建IEWebBrowser对象:
object id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 width=0 height=0>/object >
然后通过不同参数调用ExecWB方法实现打印预览和直接打印功能:
WebBrowser.ExecWB(6,1)//打印
WebBrowser.ExecWB(6,6)//直接打印
WebBrowser.ExecWB(7,1)//打印预览
首先要说明一下:
px 是像素,相对于屏幕的分辨率,是相对值
mm 是即毫米,是绝对值,
因为,不同屏幕有不同的像素密度比,所以两者是不可转换的。
A4纸的尺寸是210*297mm。竖向打印,你需要把html页面的内容设置成210mm的宽度。
下面如何设置CSS:
选中要打印的的DIV,点击右侧的CSS属性面板“+”号,新建样式
输入CSS样式名,确定
在CSS样式分类处选择“方框”,在右侧的“width”后填入“210”,后面的单位一定要选择“mm”。确定。
我们查看代码视图里的原代码多了“width:210mm”这里再打印,就可以正常显示了。
1。把你的css里的长度单位改成毫米(mm),不要用像素(px),用磅(pt)也行.如果是默认没写单位就是像素(px),也是要改的。因为像素是浏览器的单位也就是窗口的单位,而毫米或者磅是打印后的纸面上单位。2。在页面打印的时候要设置浏览器的纸张参数,就是点文件-〉页面设置。把上下左右宽度间距设置好。还要去掉标题页头页角之类的,要不打印会把url都打出来。3。设置css的时候可以加上 media="print" ,css 默认值是both,最好写两套css。一套是print,一套是screen.因为print的 意思是在打印的时候会采用的css样式,screen就是浏览器显示的样式。所以,有的时候都是用显示与打印不一样的样式。例如:<link href="print.css" rel="stylesheet" type="text/css" media="print" /><link href="screen.css" rel="stylesheet" type="text/css" media="screen" />这样,浏览器在显示的时候会使用screen.css,在打印的时候会使用print.css。4。自己再多试试,页面打印其实不难,就是要仔细。