国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
web打印,web打印控件的三種實(shí)現(xiàn)方法

web打印,web打印控件的三種實(shí)現(xiàn)方法

做管理系統(tǒng)的時(shí)候,打印一直是個(gè)棘手的問(wèn)題,做B/S的系統(tǒng)這個(gè)問(wèn)題就更加突出了!下面舉出三種常用的web打印處理方式

1、利用word或者excel來(lái)實(shí)現(xiàn)web打?。ㄈ绻恍薷膇e設(shè)置,可以在web服務(wù)器端生成xls文件,然后通過(guò)xlBook = xls.Workbooks.Open(remotePath) 獲取對(duì)象打?。?/strong>
   實(shí)現(xiàn)過(guò)程:先將需要打印的數(shù)據(jù)導(dǎo)入到word或者excel中,再利用word或者excel的打印功能來(lái)實(shí)現(xiàn)web打印。
   下面以excel為例實(shí)現(xiàn)如何打印的過(guò)程
   將網(wǎng)頁(yè)中數(shù)據(jù)導(dǎo)入excel中的方法有很多,這里先介紹一種,利用ActiveX控件的方式,即 Excel.Application, 這個(gè)控件是MS為excel提供的編程接口,在很多種編程語(yǔ)言種都可以通過(guò)該接口來(lái)操縱excel表格。
   下面用javascript腳本來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的例子。
< script language="javascript">

function ExcelPrint(){

var excelApp;//存放Excel對(duì)象

var excelBook;//存放Excel工件簿文件

var excelSheet;//存放Excel活動(dòng)工作表

try{

excelApp = new ActiveXObject("Excel. Application");//創(chuàng)建Excel對(duì)象}

catch(e){

alert("請(qǐng)啟用ActiveX控件設(shè)置!");

return;}

excelBook = excelApp.Workbooks.Add();//創(chuàng)建Excel工作簿文件

excelSheet = excelBook.ActiveSheet;//激活Excel工作表

var rowLen = printTable.rows.length;//table對(duì)象的行數(shù)

for (var i=0;i< rowLen;i++){

var colLen = printTable.rows(i).cells.length;//table對(duì)象的列數(shù)

for (var j=0;j< colLen;j++)//為Excel表的單元格賦值

excelSheet.Cells(i+1,j+1).value = printTable.rows(i).cells(j).innerText;} //將表格中的每個(gè)單元格的innerText導(dǎo)入到excel的單元格中

excelApp.Visible = true;//設(shè)置Excel對(duì)象可見(jiàn)}

excelSheet.PrintOut(); //打印工作表

excelBook.Close(true); //關(guān)閉文檔

excelApp.Quit(); //結(jié)束excel對(duì)象

excelApp=null;  //釋放excel對(duì)象

< /script>
  
   注意:
   運(yùn)行該程序的前提是 IE要允許對(duì)沒(méi)有標(biāo)記為安全的Activex控件進(jìn)行初始化和腳本運(yùn)行。設(shè)置方法如下:
   打開(kāi)控制面板→Internet選項(xiàng)→安全性→自定義級(jí)別→對(duì)沒(méi)有標(biāo)記為安全的ActiveX控件進(jìn)行初始化和腳本運(yùn)行→選中啟用,這樣我們的程序就可以運(yùn)行了。如果沒(méi)有啟用該ActiveX控件設(shè)置,那么程序在執(zhí)行創(chuàng)建Excel對(duì)象時(shí)會(huì)拋出一個(gè)異常,這時(shí)可以通過(guò)catch()語(yǔ)句來(lái)捕獲這個(gè)異常,并且做出相應(yīng)的處理。
   運(yùn)行該程序必須客戶端安裝了MS EXCEL,否則Activex驅(qū)動(dòng)不了。
  
  
  
2、利用瀏覽器自帶的打印控件來(lái)實(shí)現(xiàn)web打印
   實(shí)現(xiàn)過(guò)程:直接調(diào)用IE的打印功能或者在程序中調(diào)用window.print()來(lái)實(shí)現(xiàn)web打印,頁(yè)眉和頁(yè)腳會(huì)有網(wǎng)頁(yè)標(biāo)題、頁(yè)碼、網(wǎng)址,日期等信息,這些打印時(shí)如果不需要,怎樣能去掉呢。做法其實(shí)很簡(jiǎn)單,只有在IE的文件菜單中打開(kāi)頁(yè)碼設(shè)置對(duì)話框,去掉頁(yè)眉頁(yè)腳中設(shè)置的哪些信息,就可以了。但是這需要每個(gè)客戶端都去手動(dòng)設(shè)置一次。如果不想讓每個(gè)客戶端都手動(dòng)去設(shè)置一次,也可以用代碼通過(guò)修改注冊(cè)表的鍵值來(lái)實(shí)現(xiàn)。
   下面是用VBScript來(lái)實(shí)現(xiàn)的修改注冊(cè)表的過(guò)程:
   < script language="VBScript">

dim path, reg

'path存放IE打印設(shè)置的注冊(cè)表地址, reg存放WScript.Shell組件的對(duì)象

path = "HKEY_CURRENT_USER\Software\Micro-soft\Internet Explorer\PageSetup"

'通過(guò)注冊(cè)表修改打印設(shè)置,只修改頁(yè)眉、頁(yè)腳和各邊界的值

'參數(shù)說(shuō)明:header--頁(yè)眉,footer--頁(yè)腳,margin_left--左邊界

'margin_top--上邊界,margin_right--右邊界,margin_bottom--下邊界

'頁(yè)邊距的設(shè)置中 1對(duì)應(yīng)25.4mm,即margin_left=1表示實(shí)際值的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 "不能創(chuàng)建WScript.Shell對(duì)象!"

exit function

end if

reg.RegWrite path+"\header", header'設(shè)置頁(yè)眉

reg.RegWrite path+"\footer", footer '設(shè)置頁(yè)腳

reg.RegWrite path+"\margin_left", margin_left'設(shè)置左邊界

reg.RegWrite path+"\margin_top", margin_top'設(shè)置上邊界

reg.RegWrite path+"\margin_right", margin_right'設(shè)置右邊界

reg.RegWrite path+"\margin_bottom", margin_bottom'設(shè)置下邊界

end function

< /script>

還有一點(diǎn)需要注意的是,利用window.print()這樣的方法來(lái)打印,是直接彈出打印對(duì)話框,而不是打印預(yù)覽的窗口。一般來(lái)說(shuō)用戶希望先打印預(yù)覽一下,然后再打印?;蛘哂械母袷焦潭ǖ?,每次都是一樣的格式,就希望不彈出打印對(duì)話框,直接就打印出來(lái)。
還有的用戶希望每個(gè)打印都是直接和一種紙張綁定好,打印時(shí)候直接就調(diào)用那種類型的紙張來(lái)打印,這樣window.print()顯然遠(yuǎn)遠(yuǎn)不夠。


3、利用第三方的控件或者報(bào)表軟件來(lái)實(shí)現(xiàn)web打印
   實(shí)現(xiàn)過(guò)程:第三方控件將打印的參數(shù)和方法封裝成對(duì)象,在頁(yè)面中可以方便的直接調(diào)用,例如ScriptX.cab,eprint.cab 都是這種類型的控件??梢灾苯佑么a實(shí)現(xiàn)web打印頁(yè)眉頁(yè)腳的設(shè)置,web打印紙張的綁定,web打印邊距的設(shè)置,web打印預(yù)覽,直接web打印。
   web打印格式設(shè)置,web打印分頁(yè),web打印換頁(yè)重新打印某些信息,某些信息只能第一頁(yè)打印,某些信息只能最后一頁(yè)打印等等這些,也都解決方案。Scriptx沒(méi)有處理這些的方案,webprint有webgrid和eprint兩種解決方案,行列規(guī)則的表格式的可以簡(jiǎn)單webgrid來(lái)處理,復(fù)雜格式的可以用eprint來(lái)設(shè)計(jì)格式。
  
   一般這種類型的打印控件都是需要收費(fèi)的,用戶可以從經(jīng)濟(jì)的角度來(lái)考慮。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服