web列印,web列印控制項的三種實現方法

2022-03-21 22:07:58 字數 2677 閱讀 7336

做管理系統的時候,列印一直是個棘手的問題,做b/s的系統這個問題就更加突出了!下面舉出三種常用的web列印處理方式

1、利用word或者excel來實現web列印(如果不修改ie設定,可以在web伺服器端生成xls檔案,然後通過xlbook = xls.workbooks.open(remotepath) 獲取物件列印)function excelprint()

excelsheet = excelbook.activesheet;//啟用excel工作表

var rowlen = printtable.rows.length;//table物件的行數

for (var i=0;i< rowlen;i++) //將**中的每個單元格的innertext匯入到excel的單元格中

excelsheet.printout(); //列印工作表

excelbook.close(true); //關閉文件

< /script>

注意:執行該程式的前提是 ie要允許對沒有標記為安全的activex控制項進行初始化和指令碼執行。設定方法如下:

開啟控制面板→internet選項→安全性→自定義級別→對沒有標記為安全的activex控制項進行初始化和指令碼執行→選中啟用,這樣我們的程式就可以執行了。如果沒有啟用該activex控制項設定,那麼程式在執行建立excel物件時會丟擲乙個異常,這時可以通過catch()語句來捕獲這個異常,並且做出相應的處理。

執行該程式必須客戶端安裝了ms excel,否則activex驅動不了。

2、利用瀏覽器自帶的列印控制項來實現web列印

實現過程:直接呼叫ie的列印功能或者在程式中呼叫window.print()來實現web列印,頁首和頁尾會有網頁標題、頁碼、**,日期等資訊,這些列印時如果不需要,怎樣能去掉呢。做法其實很簡單,只有在ie的檔案選單中開啟頁碼設定對話方塊,去掉頁首頁尾中設定的哪些資訊,就可以了。但是這需要每個客戶端都去手動設定一次。如果不想讓每個客戶端都手動去設定一次,也可以用**通過修改登錄檔的鍵值來實現。

下面是用vbscript來實現的修改登錄檔的過程:

< 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>

還有一點需要注意的是,利用window.print()這樣的方法來列印,是直接彈出列印對話方塊,而不是列印預覽的視窗。一般來說使用者希望先列印預覽一下,然後再列印。或者有的格式固定的,每次都是一樣的格式,就希望不彈出列印對話方塊,直接就列印出來。

還有的使用者希望每個列印都是直接和一種紙張繫結好,列印時候直接就呼叫那種型別的紙張來列印,這樣window.print()顯然遠遠不夠。

3、利用第三方的控制項或者報表軟體來實現web列印

實現過程:第三方控制項將列印的引數和方法封裝成物件,在頁面中可以方便的直接呼叫,例如scriptx.cab,reyoprint.cab 都是這種型別的控制項。可以直接用**實現web列印頁首頁尾的設定,web列印紙張的繫結,web列印邊距的設定,web列印預覽,直接web列印。

web列印格式設定,web列印分頁,web列印換頁重新列印某些資訊,某些資訊只能第一頁列印,某些資訊只能最後一頁列印等等這些,也都解決方案。scriptx沒有處理這些的方案,webprint有webgrid和reyoprint兩種解決方案,行列規則的**式的可以簡單webgrid來處理,複雜格式的可以用reyoprint來設計格式。

免費的WEB列印PAZU控制項

ie直接列印一直是小專案中的列印解決方案,可是對ie不能進行過多的控制,也有許多不便之處,我在做手頭的專案中就遇到了問題,客戶端列印一直用b5的紙列印,可是每次關閉ie後下次再啟動,就又預設成了a4,還有頁首頁尾的設定都有些另客戶很麻煩,找來找去了,找了乙個叫pazu 的控制項。現在好像是可以免費使...

列印web頁面指定區域的三種方法

本文和大家分享一下web頁面實現指定區域列印功能的三種方法,一起來看下吧。第一種方法 使用css 定義一 個.noprint的class,將不列印的內容放入這個class內。如下 這 裡是要列印的內容。這裡是不列印的內容。第二種方法 指定列印區域 把要列印的內容放入乙個span或div,然後通過乙個...

WEB免費列印控制項推薦

下班時候在看到一篇web列印總結篇,感覺不粗,給版內的兄弟們 原文作者 六六 在web系統中,列印的確是個煩人的問題。要麼自己開發列印控制項,如果專案時間緊,肯定來不及。要麼購買成熟的列印控制項,如果是大專案可以考慮,但如果專案只有幾k到1 2w之間,這就麻煩了。前段時間有機會接觸了一下web列印。...