




已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1網(wǎng)頁打印實(shí)例網(wǎng)頁打印按鈕的源代碼:javascript:window.print();可以用css控制media print.a display:block.b display:hidden好像是這樣。把你不想打印的部分class設(shè)為b首先在網(wǎng)頁中添加:然后就可以依次加入功能按鈕了: 將這兩塊東西放到就不會(huì)打印這些按鈕了。當(dāng)然要定義noprint了:.Noprint DISPLAY: none 只要把不想打印的東西的css設(shè)置成noprint就可以了。現(xiàn)在就實(shí)現(xiàn)了基本的web打印,需要注意的情況如下:1. 必須將ie的internet選項(xiàng)的安全設(shè)置中對(duì)于沒有標(biāo)記為安全的ActiveX控件進(jìn)行.設(shè)置成提示或者啟用,否則會(huì)報(bào)錯(cuò),導(dǎo)致不可用。2. 如果在編輯環(huán)境下編輯該頁面,它經(jīng)常自動(dòng)的給object添加多余的參數(shù),有了這些東西,打印就會(huì)出錯(cuò),所以要記得最后保存的時(shí)候刪除它們。為了簡便并且達(dá)到最好的效果,我們可以在一個(gè)頁面實(shí)現(xiàn)編輯和打印,這時(shí)候會(huì)需要很多的textbox,我們把它的css設(shè)置成.edittext overflow-y:visible;width: 100%;border-top: none;border-right: none;border-bottom: none;border-left: none;就可以實(shí)現(xiàn)在打印的時(shí)候不顯示邊框和multiline的textbox不顯示滾動(dòng)條了。還有一些小經(jīng)驗(yàn)就是在設(shè)置標(biāo)格寬度的時(shí)候,對(duì)于A4紙張,橫打用920,豎打用640,效果最好。相信用B/S方式做過應(yīng)用的人都可能會(huì)遇到這樣一個(gè)問題,如何方便、美觀地實(shí)現(xiàn)報(bào)表打印。如果使用瀏覽器的打印菜單打印的話,將把網(wǎng)頁上的一些無用的東西打到報(bào)表上,比如應(yīng)用菜單等。因?yàn)檫x擇打印菜單打印網(wǎng)頁將會(huì)把網(wǎng)頁中的所有內(nèi)容全部打印出來,如果你的應(yīng)用有分幀則打印內(nèi)容將包括各幀中的內(nèi)容,而你實(shí)際要的內(nèi)容只是其中一部分。所以有很多應(yīng)用就只能把打印功能放到后臺(tái)完成了。 針對(duì)這種情況,我們?cè)撛趺崔k?其實(shí)可以有多種方法實(shí)現(xiàn)網(wǎng)頁打印功能。一種方法就是使用專業(yè)的打印工具,如Crystal Reports(水晶報(bào)表)。用過Visual Studio 5.0的朋友肯定記得這個(gè)工具,不過那時(shí)的版本只有4.幾?,F(xiàn)在的最新版本已達(dá)9了,近幾個(gè)版本的水晶報(bào)表都支持WEB打印。最簡單的方法是先用水晶報(bào)表制作好模板,然后使用ASP帶參數(shù)調(diào)用制作好的模板即可。水晶報(bào)表在網(wǎng)頁上生成報(bào)表后,可以直接打印,也可以轉(zhuǎn)存為其它的比較通過的文件如Excel文件。使用水晶報(bào)表可以制作出非常漂亮的樣式,關(guān)鍵在你對(duì)水晶報(bào)表的開發(fā)能力上,但由于水晶報(bào)表價(jià)格較高,只有當(dāng)項(xiàng)目很賺錢時(shí)才買得起。第二種方法是購買第三方的網(wǎng)上打印控件,費(fèi)用同水晶報(bào)表相比便宜,但效果性能到底如何則仁者見仁了。第三種方法是利用樣式表及JavaScript自定義函數(shù)實(shí)現(xiàn)。通過樣式表及JavaScript,實(shí)現(xiàn)網(wǎng)頁打印,效果也還可以。在此有一個(gè)實(shí)例請(qǐng)大家看看。下面是打印函數(shù)實(shí)現(xiàn)詳解: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即為你在打印的區(qū)域/ 這里根據(jù)你要打印的哪些內(nèi)容,從原顯示頁面中用/ div id=Div1Div1./divdiv id=Div2Div2./div/ 等標(biāo)示出來,要打印多少項(xiàng)目就標(biāo)示多少/ * 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,具體你想打印出什么樣的格式全看你自己/ 了,但要注意:如果此處有什么同網(wǎng)頁中不一致的,可能打印/ 出來的頁面同網(wǎng)頁格式、字體可能會(huì)有所不同/ *var 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;/ */ 在此處重新設(shè)置的打印格式,根據(jù)你的打印要求,將原顯示的/ 網(wǎng)頁的DIV內(nèi)容重新組合,可以根據(jù)你原來的表格內(nèi)容,去掉/ 不要打印的,你也可以能下面定義的noprint忽略掉你不想打/ 印的東西,只調(diào)用你要打印的內(nèi)容,但這樣被忽略掉的地方將/ 打印出空,不是很美觀。表格寬度要同打印的紙張寬度匹配。/ *document.body.innerHTML = center + css + body + /center;/ */ 重設(shè)document.body,打印文檔準(zhǔn)備就緒/ *window.print();window.history.go(0);/ */ 調(diào)用打印命令,打印當(dāng)前窗口內(nèi)容。當(dāng)你打印時(shí)其實(shí)是一張新/ 的網(wǎng)頁了,但網(wǎng)頁文件還是原先的。緊接著調(diào)用/ window.history.go(0),再回到打印前的頁面,效果相當(dāng)不差/ *-/scriptstylemedia print .noprint display:none/style!-/.noprint 定義了noprint,在以下不需要打印的地方加入class=noprint后,用window.print()打印就會(huì)忽略-好了,一切就緒了,現(xiàn)在要做的就是調(diào)用DP函數(shù),如果你將實(shí)現(xiàn)調(diào)用的按鈕設(shè)計(jì)在同一張網(wǎng)頁上,則直接調(diào)用即可;如果你用了分幀方法,實(shí)現(xiàn)調(diào)用的按鈕是在另一張網(wǎng)頁上,則在DP函數(shù)的第一行加入window.focus()命令,否則打印的只是有按鈕的網(wǎng)頁。第四種方法,實(shí)現(xiàn)是一種取巧的方法。一樣還是通過調(diào)用window.print()實(shí)現(xiàn),只是將你要打印的內(nèi)容專門生成一張網(wǎng)頁,而打印按鈕在另一幀上。假設(shè)報(bào)表網(wǎng)頁在mainFrame上,按鈕在topFrame上,按鈕調(diào)用PrintReports()函數(shù),PrintReports()函數(shù)如下即可實(shí)現(xiàn)打印工作。function PrintReports() /topFrame網(wǎng)頁中的函數(shù)try/ */ 錯(cuò)誤處理,如果在mainFrame中的網(wǎng)頁沒有DP函數(shù)則不打印/ *window.parent.frames(mainFrame).DP();catch(e)alert(no object to print!); function DP() / mainFrame網(wǎng)頁中函數(shù)window.focus();if (window.print)window.print();1、控制縱打、 橫打”和“頁面的邊距。(1) 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 (2) function printsetup() / 打印頁面設(shè)置wb.execwb(8,1); function printpreview() / 打印頁面預(yù)覽wb.execwb(7,1); function printit() if (confirm(確定打印嗎?) wb.execwb(6,6) - 關(guān)于這個(gè)組件還有其他的用法,列舉如下:WebBrowser.ExecWB(1,1) 打開Web.ExecWB(2,1) 關(guān)閉現(xiàn)在所有的IE窗口,并打開一個(gè)新窗口Web.ExecWB(4,1) 保存網(wǎng)頁Web.ExecWB(6,1) 打印Web.ExecWB(7,1) 打印預(yù)覽Web.ExecWB(8,1) 打印頁面設(shè)置Web.ExecWB(10,1) 查看頁面屬性Web.ExecWB(15,1) 好像是撤銷,有待確認(rèn)Web.ExecWB(17,1) 全選Web.ExecWB(22,1) 刷新Web.ExecWB(45,1) 關(guān)閉窗體無提示2、分頁打印 P page-break-after: always 3、ASP頁面打印時(shí)如何去掉頁面底部的路徑和頂端的頁碼編號(hào)(1)ie的文件-頁面設(shè)置-講里面的頁眉和頁腳里面的東西都去掉,打印就不出來了。(2) New Document dim hkey_root,hkey_path,hkey_key hkey_root=HKEY_CURRENT_USER hkey_path=/Software/Microsoft/Internet Explorer/PageSetup /設(shè)置網(wǎng)頁打印的頁眉頁腳為空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_path+hkey_key, end function /設(shè)置網(wǎng)頁打印的頁眉頁腳為默認(rèn)值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、浮動(dòng)幀打印 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(); 4、用FileSystem組件實(shí)現(xiàn)WEB應(yīng)用中的本地特定打印 function print_onclick /打印函數(shù)dim label label=document.printinfo.label.value /獲得HTML頁面的數(shù)據(jù)set objfs=CreateObject(Scripting.FileSystemObject) /創(chuàng)建FileSystem組件對(duì)象的實(shí)例set objprinter=objfs.CreateTextFile (LPT1:,true) /建立與打印機(jī)的連接objprinter.Writeline(_) /輸出打印的內(nèi)容objprinter.Writeline(| |) objprinter.Writeline(| 您打印的數(shù)據(jù)是:&label& |”) objprinter.Writeline(| |) objprinter.Writeline(|_|) objprinter.close /斷開與打印機(jī)的連接set objprinter=nothing set objfs=nothing / 關(guān)閉FileSystem組件對(duì)象end function 服務(wù)器端腳本: /與數(shù)據(jù)庫進(jìn)行交互HTML頁面編碼: id=print name=print /調(diào)用打印函數(shù)INPUT type=hidden id=text1 name=label value= /保存服務(wù)器端傳來的數(shù)據(jù)可以控制打印區(qū)域打印代碼先寫入以下代碼: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 += ;str += 新浪首頁 > 新聞中心 > 正文返回打印;str += ;article=document.getElementById(article).innerHTML;if(article.indexOf(strAdBegin)!=-1)str +=article.substr(0,article.indexOf(strAdBegin);strTmp=article.substr(article.indexOf(strAdEnd)+strAdEnd.length, article.length);elsestrTmp=articlestr +=strTmpstr += window.location.hrefstr += ;str += ;document.write(str);document.close();利用文章正文 實(shí)際是通過設(shè)置id為article的區(qū)域來控制打印區(qū)域的大小.打印按鈕:【打印】WebBrowser是IE內(nèi)置的瀏覽器控件,無需用戶下載。本文檔所討論的是有關(guān)IE6.0版本的WebBrowser控件技術(shù)內(nèi)容。其他版本的IE應(yīng)該也支持。與其相關(guān)的技術(shù)要求有:打印文檔的生成、頁面設(shè)置、打印操作的實(shí)現(xiàn)等幾個(gè)環(huán)節(jié)。本文以asp為例,但是他可以容易的移植到其他web技術(shù)中。一、WebBrowser控件二、WebBrowder控件的方法/打印WebBrowser1.ExecWB(6,1);/打印設(shè)置WebBrowser1.ExecWB(8,1);/打印預(yù)覽WebBrowser1.ExecWB(7,1);三、實(shí)現(xiàn)打印的設(shè)置,打印數(shù)據(jù)的生成,打印的預(yù)覽,和打印。實(shí)現(xiàn)打印的設(shè)置,打印數(shù)據(jù)的生成,打印的預(yù)覽,和打印我一般這樣做,假如查詢結(jié)果在a.asp中,那么在a.asp中放置打印設(shè)置、打印預(yù)覽、打印三個(gè)按鈕。單擊打印設(shè)置按鈕則在js中執(zhí)行WebBrowser1.ExecWB(8,1),以打開打印設(shè)置窗口。單擊打印預(yù)覽按鈕則打開一個(gè)b.asp,在b.asp中重新生成打印數(shù)據(jù),然后在b.asp中自動(dòng)執(zhí)行WebBrowser1.ExecWB(7,1),以打開用戶預(yù)覽界面。單擊打印按鈕則也打開b.asp,在b.asp中重新生成打印數(shù)據(jù),然后在b.asp中自動(dòng)執(zhí)行WebBrowser1.ExecWB(6,1),以自動(dòng)打印數(shù)據(jù)。四、代碼a.asp調(diào)用數(shù)據(jù)的程序就不給出了。只給出幾個(gè)按鈕的代碼:function exePrint()liu= window.open(b.asp?do=1,_blank,left=2000,top=2000,fullscreen=3);function exePreview()window.open(b.asp?do=2,_blank,left=2000,top=2000,fullscreen=3);function exeSetting()WebBrowser.ExecWB(8,1);代碼中打印設(shè)置的代碼很簡單,大家很容易理解。打印預(yù)覽和打印的按鈕需要告訴b.asp我們將要執(zhí)行的是打印還是打印預(yù)覽。另外,還要將查詢字符串傳遞過去。當(dāng)然web高手可以嘗試其他方法,以避免反復(fù)重服務(wù)器調(diào)數(shù)據(jù),當(dāng)然初學(xué)者只能通過多次查詢,以犧牲性能來解決打印了。假設(shè)本例中a.asp通過傳遞一個(gè)查詢串打開了b.asp,則在b.asp中將重新載入數(shù)據(jù)。在這里載入數(shù)據(jù)后將數(shù)據(jù)顯示在網(wǎng)頁上需要知道每個(gè)頁要顯示多少條(PageSize)。顯示的時(shí)候彈出打印窗口,去掉網(wǎng)址顯示.function window.onload() factory.printing.header = -factory.printing.footer = -factory.printing.Print(true)factory.printing.leftMargin = 0.2factory.printing.topMargin = 0.5factory.printing.rightMargin = 0.2factory.printing.bottomMargin = 1.5WEB打印,去頁眉和頁腳作者: 未知日期:1. IE瀏覽器. 文件-頁面設(shè)置.把頁腳去掉就行了.2.用代碼./有提示的. New Document dim hkey_root,hkey_path,hkey_key hkey_root=HKEY_CURRENT_USER hkey_path=/Software/Microsoft/Internet Explorer/PageSetup /設(shè)置網(wǎng)頁打印的頁眉頁腳為空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 /設(shè)置網(wǎng)頁打印的頁眉頁腳為默認(rèn)值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 2網(wǎng)頁打印實(shí)例第三種方法是利用樣式表及JavaScript自定義函數(shù)實(shí)現(xiàn)。通過樣式表及JavaScript,實(shí)現(xiàn)網(wǎng)頁打印,效果也還可以。在此有一個(gè)實(shí)例請(qǐng)大家看看。下面是打印函數(shù)實(shí)現(xiàn)詳解: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即為你在打印的區(qū)域/ 這里根據(jù)你要打印的哪些內(nèi)容,從原顯示頁面中用/ div id=Div1Div1./divdiv id=Div2Div2./div/ 等標(biāo)示出來,要打印多少項(xiàng)目就標(biāo)示多少/ * 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,具體你想打印出什么樣的格式全看你自己/ 了,但要注意:如果此處有什么同網(wǎng)頁中不一致的,可能打印/ 出來的頁面同網(wǎng)頁格式、字體可能會(huì)有所不同/ * var 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; / * / 在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工廠合伙退股協(xié)議書
- 市容環(huán)境服務(wù)協(xié)議書
- 電商管理協(xié)議書
- 生產(chǎn)部門協(xié)議書
- 工程運(yùn)輸保潔協(xié)議書
- 燃?xì)馔泄軈f(xié)議書
- 小吃技術(shù)轉(zhuǎn)讓協(xié)議書
- 注塑模具協(xié)議書
- 市場(chǎng)燒烤轉(zhuǎn)讓協(xié)議書
- 禁毒企業(yè)協(xié)議書
- 軍隊(duì)文職-新聞專業(yè) (軍隊(duì)文職)真題庫-5
- 2025年下半年保山市消防救援支隊(duì)防火監(jiān)督科招聘消防文員4名易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 以患者為中心的醫(yī)療數(shù)據(jù)管理系統(tǒng)-基于區(qū)塊鏈技術(shù)
- 2025至2030中國寺廟經(jīng)濟(jì)市場(chǎng)深度調(diào)研與未來前景發(fā)展研究報(bào)告
- 食用菌品牌形象塑造策略-全面剖析
- 上海公務(wù)員筆試真題2024
- 2025-2030中國寵物凍干主糧市場(chǎng)需求量預(yù)測(cè)與營銷戰(zhàn)略規(guī)劃研究報(bào)告
- 流媒體播放器性能優(yōu)化-全面剖析
- 移動(dòng)護(hù)理管理平臺(tái)建設(shè)方案
- 新能源汽車充電系統(tǒng)故障診斷與維修技術(shù)研究
- 廣西壯族自治區(qū)2025年4月高三畢業(yè)班診斷學(xué)考試生物試卷及答案(廣西三模)
評(píng)論
0/150
提交評(píng)論