1、控制"縱打"、 橫打”和“頁面的邊距。
(1)<script defer>
function SetPrintSettings() {??
// -- 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.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.printing.bottomMargin = 1.0??
}??
</script>??
(2)
<script language="javascript">
function printsetup(){
// 打印頁面設置
wb.execwb(8,1);
}
function printpreview(){
// 打印頁面預覽
wb.execwb(7,1);
}
function printit()
{
if (confirm(''確定打印嗎?'')) {
wb.execwb(6,6)
}
}
</script>
</head>
<body>
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"
height=0 id=wb name=wb width=0></OBJECT>
<input type=button name=button_print value="打印"
onclick="javascript:printit()">
<input type=button name=button_setup value="打印頁面設置"
onclick="javascript:printsetup();">
<input type=button name=button_show value="打印預覽"
onclick="javascript:printpreview();">
<input type=button name=button_fh value="關閉"
onclick="javascript:window.close();">
------------------------------------------------
關于這個組件還有其他的用法,列舉如下:
WebBrowser.ExecWB(1,1) 打開
Web.ExecWB(2,1) 關閉現在所有的IE窗口,并打開一個新窗口
Web.ExecWB(4,1) 保存網頁
Web.ExecWB(6,1) 打印
Web.ExecWB(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、分頁打印
<HTML>
<HEAD>
<STYLE>
P {page-break-after: always}
</STYLE>
</HEAD>
<BODY>
<%while not rs.eof%>
<P><%=rs(0)%></P>
<%rs.movenext%>
<%wend%>
</BODY>
</HTML>
3、ASP頁面打印時如何去掉頁面底部的路徑和頂端的頁碼編號
(1)ie的文件-〉頁面設置-〉講里面的頁眉和頁腳里面的東西都去掉,打印就不出來了。
(2)<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="YC">
<script language="VBscript">
dim hkey_root,hkey_path,hkey_key
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="\header"
RegWsh.RegWrite hkey_root+hkey_path+hkey_key,""
hkey_key="\footer"
RegWsh.RegWrite hkey_root+hkey_path+hkey_key,""
end function
''//設置網頁打印的頁眉頁腳為默認值
function pagesetup_default()
on error resume next
Set RegWsh = CreateObject("Wscript.Shell")
hkey_key="\header"
RegWsh.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
</script>
</HEAD>
<BODY>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/><p align=center>
<input type="button" value="清空頁碼" onclick=pagesetup_null()> <input type="button" value="恢復頁嗎" onclick=pagesetup_default()><br/>
</p>
</BODY>
</HTML>
補充:javasript的寫法:
?? <script language="javascript">
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 pagesetup_default(){
try{
var RegWsh = new ActiveXObject("WScript.Shell")
hkey_key="header"
RegWsh.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")
}catch(e){}
}
</script>
4、浮動幀打印
<script LANGUAGE=javascript>
function 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();
}
</script>
4、用FileSystem組件實現WEB應用中的本地特定打印
<script Language=VBscript>
function print_onclick //打印函數
dim label
label=document.printinfo.label.value //獲得HTML頁面的數據
set objfs=CreateObject("scripting.FileSystemObject") //創建FileSystem組件對象的實例
set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立與打印機的連接
objprinter.Writeline("__________________________________") //輸出打印的內容
objprinter.Writeline("| |")
objprinter.Writeline("| 您打印的數據是:"&label& " |”)
objprinter.Writeline("| |")
objprinter.Writeline("|_________________________________|")
objprinter.close //斷開與打印機的連接
set objprinter=nothing
set objfs=nothing // 關閉FileSystem組件對象
end function
</script>
服務器端腳本:
<%………
set conn=server.CreateObject ("adodb.connection")
conn.Open "DSN=name;UID=XXXX;PWD=XXXX;"
set rs=server.CreateObject("adodb.recordset")
rs.Open(“select ……”),conn,1,1
……….%> //與數據庫進行交互
HTML頁面編碼:
<HTML>
………
<FORM ID=printinfo NAME="printinfo" >
<INPUT type="button" value="打印>>" id=print name=print > //調用打印函數
<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服務器端傳來的數據
………
</HTML>
首先在網頁中添加:
???? <OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"
??????VIEWASTEXT>
???? </OBJECT>
然后就可以依次加入功能按鈕了:
<input onclick="document.all.WebBrowser.ExecWB(6,1)" type="button" value="打印"> <input onclick="document.all.WebBrowser.ExecWB(6,6)" type="button" value="直接打印">
???? <input onclick="document.all.WebBrowser.ExecWB(8,1)" type="button" value="頁面設置">
???? <input onclick="document.all.WebBrowser.ExecWB(7,1)" type="button" value="打印預覽"> <INPUT type="button" value="關閉窗口" onclick="javascript:window.close()">
將這兩塊東西放到<center class=noprint></center>就不會打印這些按鈕了。當然要定義noprint了:
<style media="print">.Noprint { DISPLAY: none }</style>只要把不想打印的東西的css設置成noprint就可以了。
現在就實現了基本的web打印,需要注意的情況如下:
必須將ie的internet選項的安全設置中對于沒有標記為安全的ActiveX控件進行...設置成提示或者啟用,否則會報錯,導致不可用。
如果在vs.net編輯環境下編輯該頁面,它經常自動的給object添加多余的參數,有了這些東西,打印就會出錯,所以要記得最后保存的時候刪除它們。
為了簡便并且達到最好的效果,我們可以在一個頁面實現編輯和打印,這時候會需要很多的textbox,我們把它的css設置成.edittext
{
overflow-y:visible;
width: 100%;
border-top: none;
border-right: none;
border-bottom: none;
border-left: none;
}就可以實現在打印的時候不顯示邊框和multiline的textbox不顯示滾動條了。
還有一些小經驗就是在設置標格寬度的時候,對于A4紙張,橫打用920,豎打用640,效果最好。
<html>
<style media="print">.Noprint { DISPLAY: none }</style>
<head>
</head>
<body>
第一行
<p>
第二行直接打印
<center class=noprint>
<OBJECT id="WebBrowser" height="0" width="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" VIEWASTEXT>
</OBJECT>
<p>
這行不打印
<p>
<input onclick="document.all.WebBrowser.ExecWB(6,1)" type="button" value="打印">
<input onclick="document.all.WebBrowser.ExecWB(6,6)" type="button" value="直接打印">
<input onclick="document.all.WebBrowser.ExecWB(8,1)" type="button" value="頁面設置">
<input onclick="document.all.WebBrowser.ExecWB(7,1)" type="button" value="打印預覽">
<INPUT type="button" value="關閉窗口" onclick="javascript:window.close()">
</center>
</body>
</html>