web網(wǎng)站怎樣實現(xiàn)打印功能?
Web系統(tǒng)中,打印功能一直是個老大難問題,所以產(chǎn)生了很多第三方控件,大部分都是收費的,和自己的系統(tǒng)結(jié)合起來很麻煩。
系統(tǒng)采用J2EE技術(shù),OA中也存在jsp打印問題。有三種打印方法:
一種是直接用javascript調(diào)用()print,不做任何修改。
第二,根據(jù)客戶要求的報表格式,編寫相應(yīng)格式的html,加載數(shù)據(jù)進行打印,也可以調(diào)用()進行打印,但html的格式要求更高。
第三,通過客戶提供的word格式,將數(shù)據(jù)庫中的數(shù)據(jù)與xml配置文件關(guān)聯(lián)起來,將數(shù)據(jù)自動加載到word中進行打印。這里,客戶端的word用于打印。
第一種最簡單快捷,幾乎不需要寫程序。這里有幾個問題。你只能打印表格的內(nèi)容,但是按鈕不能。;我不想被印刷。頁眉和頁腳不我不想被印刷;IE瀏覽器的標題。;我不想打印它。
解決方法:將按鈕放在表格或div中,打印時隱藏,完成后顯示。系統(tǒng)中的javascript打印代碼如下:
函數(shù)print(){vartiti文檔。標題文檔。標題#34#34#34#34無#34()文檔。tittiti#34#34}但是,它只能起到印刷的作用,印刷效果一般比較庸俗。
無論如何,系統(tǒng)的大部分模塊都可以盡快打印出來。
第二種是根據(jù)每份報表的格式,開發(fā)定制的html和java程序,這需要更多的時間。html中要注意表格的樣式控制。瀏覽IE里看起來很細的邊框,打印出來有的線條會粗一些,有的線條會細一些,很難看。
在表格中直接使用bordercolor會使線條看起來很粗,而使用BorderColorLight和BorderColorDark一起使用可以表現(xiàn)出細膩的線條。lthtmlgtltheaddgtlt/headgtltbodygtlttableborder#341#34bordercolorlight#34red#34bordercolordark#34FFFFFF#34cellpadding#343#34cellspacing#340#34gtlttbodygtlttgtlttlttlttlttlttlttDGT名稱lt/tdgtlttdgtltdgt下屬部門lt/lt/tdgtlt/trgtlttrgtlttgtlttdgt陳lt/tdgtt技術(shù)部lt/tdgtlt/trgtlt/tbodygtlt/tabl:1px這樣的重疊的地方。
這種方案耗能很大,打印時很難控制分頁,也無法根據(jù)客戶的需求隨時調(diào)整字體邊框顏色。
第三種方案:從服務(wù)器生成word、excel等文檔發(fā)送到瀏覽器打印:先將需要打印的數(shù)據(jù)導(dǎo)入到word或excel中,然后利用word或excel的打印功能實現(xiàn)web打印。以excel為例,實現(xiàn)如何打印。有許多方法可以將網(wǎng)頁中的數(shù)據(jù)導(dǎo)入excel。這里有一個使用ActiveX控件的方法,就是這個控件是MS為excel提供的一個編程接口,很多編程語言都可以通過這個接口操作excel表格。讓讓我們使用javascript腳本來實現(xiàn)一個簡單的例子。Lt腳本語言#34Javascript#34gt函數(shù)Excelprint(){varExcelapp//存儲Excel對象varexcelBook//存儲Excel工作簿文件varexcelSheet//保存Excel活動表try{ExcelnewActiveXobject(#34Excel。application#34)//創(chuàng)建excel對象}catch(e){alert(#34請啟用ActiveX控件設(shè)置!#34)return}excelBook()//創(chuàng)建Excel工作簿文件excelSheet//激活Excel工作表的行數(shù)varrowLen//table對象for(vari0IltrowLenI){varcollen(I)。cells.length//表格對象的列數(shù)for(varj0jltcolLenj)//將excelShe分配給Excel表格的單元格。et。細胞(i1,J1)。值(I)。單元格(j)。innerText}//將表格中每個單元格的innerText導(dǎo)入excel的單元格中。true//將Excel對象設(shè)置為可見()//打印工作表(true)//關(guān)閉文檔excelApp。quit()//Endexcelobjectexcelappnull//releaseexcelobject}}lt/scriptgt注意:運行此程序的前提條件是IE應(yīng)允許未標記為安全的Activex控件的初始化和腳本運行。設(shè)置方法如下:打開控制面板→互聯(lián)網(wǎng)選項→安全→自定義級別→初始化未標記為安全的ActiveX控件并運行腳本→選擇啟用,這樣我們的程序就可以運行了。如果ActiveX控件設(shè)置未啟用,程序?qū)⒃趧?chuàng)建Excel對象時引發(fā)異常。此時,您可以通過catch()語句捕獲這個異常,并對其進行相應(yīng)的處理。要運行該程序,客戶端必須安裝MSEXCEL,否則無法驅(qū)動Activ
input設(shè)置只讀;input設(shè)置不可編輯?
設(shè)計網(wǎng)頁時,有時需要將輸入框設(shè)置為只讀狀態(tài),即里面的內(nèi)容不可編輯。實現(xiàn)這種設(shè)計有兩種方法:使用輸入的disable和readonly屬性。讓讓我們先來看看兩者的區(qū)別:ltinput類型。