91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

web打印的另類方法

admin
2010年8月18日 1:22 本文熱度 4333

相信用B/S方式做過應用的人都可能會遇到這樣一個問題,如何方便、美觀地實現報表打印。如果使用瀏覽器的打印菜單打印的話,將把網頁上的一些無用的東西打到報表上,比如應用菜單等。因為選擇打印菜單打印網頁將會把網頁中的所有內容全部打印出來,如果你的應用有分幀則打印內容將包括各幀中的內容,而你實際要的內容只是其中一部分。所以有很多應用就只能把打印功能放到后臺完成了。  針對這種情況,我們該怎么辦?其實可以有多種方法實現網頁打印功能。


  一種方法就是使用專業的打印工具,如Crystal Reports(水晶報表)。用過Visual Studio 5.0的朋友肯定記得這個工具,不過那時的版本只有4.幾。現在的最新版本已達9了,近幾個版本的水晶報表都支持WEB打印。最簡單的方法是先用水晶報表制作好模板,然后使用ASP帶參數調用制作好的模板即可。水晶報表在網頁上生成報表后,可以直接打印,也可以轉存為其它的比較通過的文件如Excel文件。使用水晶報表可以制作出非常漂亮的樣式,關鍵在你對水晶報表的開發能力上,但由于水晶報表價格較高,只有當項目很賺錢時才買得起。


  第二種方法是購買第三方的網上打印控件,費用同水晶報表相比便宜,但效果性能到底如何則仁者見仁了。


  第三種方法是利用樣式表及JavaScript自定義函數實現。通過樣式表及JavaScript,實現網頁打印,效果也還可以。在此有一個實例請大家看看。下面是打印函數實現詳解:


<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即為你在打印的區域


// 這里根據你要打印的哪些內容,從原顯示頁面中用


// <div id=Div1>Div1....</div><div id=Div2>Div2...</div>


// 等標示出來,要打印多少項目就標示多少


// ***************************************************** 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,具體你想打印出什么樣的格式全看你自己


// 了,但要注意:如果此處有什么同網頁中不一致的,可能打印


// 出來的頁面同網頁格式、字體可能會有所不同


// *****************************************************


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


// ******************************************************


// 在此處重新設置的打印格式,根據你的打印要求,將原顯示的


// 網頁的DIV內容重新組合,可以根據你原來的表格內容,去掉


// 不要打印的,你也可以能下面定義的noprint忽略掉你不想打


// 印的東西,只調用你要打印的內容,但這樣被忽略掉的地方將


// 打印出空,不是很美觀。表格寬度要同打印的紙張寬度匹配。


// ******************************************************


document.body.innerHTML = '<center>' + css + body + '</center>';


// ******************************************************


// 重設document.body,打印文檔準備就緒


// ******************************************************


window.print();


window.history.go(0);


// ******************************************************


// 調用打印命令,打印當前窗口內容。當你打印時其實是一張新


// 的網頁了,但網頁文件還是原先的。緊接著調用


// window.history.go(0),再回到打印前的頁面,效果相當不差


// ******************************************************


}


}


-->


</script>


<style>


@media print {


.noprint {display:none}


}


</style>


<!--//.noprint 定義了noprint,在以下不需要打印的地方加入 class="noprint"后,用window.print()打印就會忽略-->


  好了,一切就緒了,現在要做的就是調用DP函數,如果你將實現調用的按鈕設計在同一張網頁上,則直接調用即可;如果你用了分幀方法,實現調用的按鈕是在另一張網頁上,則在DP函數的第一行加入window.focus()命令,否則打印的只是有按鈕的網頁。


  第四種方法,實現是一種取巧的方法。一樣還是通過調用window.print()實現,只是將你要打印的內容專門生成一張網頁,而打印按鈕在另一幀上。假設報表網頁在mainFrame上,按鈕在topFrame上,按鈕調用PrintReports()函數,PrintReports()函數如下即可實現打印工作。


function PrintReports() //topFrame網頁中的函數


{


try


// *******************************************************


// 錯誤處理,如果在mainFrame中的網頁沒有DP函數則不打印


// *******************************************************


{


window.parent.frames("mainFrame").DP();


}


catch(e)


{


alert("no object to print!");


}


}


function DP() // mainFrame網頁中函數


{


window.focus();


if (window.print)


{


window.print();


}


}


我個人認為這是最方便的方法了。


  最后,如果你將IE瀏覽器的“文件--頁面設置”中的“頁眉、頁角”的設置去掉,則效果更佳了。(轉載)




該文章在 2010/8/18 1:22:01 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产在线一二三区 | 国产精美 | 69精品人人人人 | 日韩欧美国产电影 | 国产AⅤ精品 | 日产国产一区二区 | 国产精品最新地址 | 国产精品三区四区 | 乱伦日本亚洲中文 | 国产精品好 | 国产精品女| 日本午夜免费理论片 | 老司机精品福 | 99re在线这 | 国产美女极品粉 | 91精品国产秘入 | 欧美日韩综合网 | 国产a级自拍 | 美味a级片 | 无码操逼 | 日韩成人精品在线 | 午夜福利电影影院 | 国产人碰人摸人爱 | 91九色露脸 | 精品国语自产拍在线 | 福利秀视频在线播放 | 日韩男女午夜爆操 | 日韩在线免费看网站 | 国产美女极品在线 | 无码成人1000部免费视频 | 日韩在线一区 | 欧洲综合国产在线 | 加勒比东京 | 日本黄页网址在线 | 无码动漫精选在线播放 | 亚洲无码aⅴ中文字幕 | 精品国产一区二区 | 午夜福利免费体验 | 福利二区视频 | 国产乱子伦精品视频 | 欧美三级欧美一级 |