http://ltww.pbworks.com/w/page/9112654/%E7%B6%B2%E9%A0%81%E5%88%97%E5%8D%B0
web列印1
相信用B/S方式做過應用的人都可能會遇到這樣一個問題,如何方便、美觀地實現報表列印。如果使用瀏覽器的列印菜單列印的話,將把網頁上的一些無用的東西打到報表上,比如應用菜單等。因為選擇列印菜單列印網頁將會把網頁中的所有內容全部列印出來,如果你的應用有分幀則列印內容將包括各幀中的內容,而你實際要的內容只是其中一部分。所以有很多應用就只能把列印功能放到後台完成了。 針對這種情況,我們該怎麼辦?其實可以有多種方法實現網頁列印功能。
一種方法就是使用專業的列印工具,如Crystal Reports(水晶報表)。用過Visual Studio 5.0的朋友肯定記得這個工具,不過那時的版本只有4.幾。現在的最新版本已達9了,近幾個版本的水晶報表都支援WEB列印。最簡單的方法是先用水晶報表製作好模板,然後使用ASP帶參數呼叫製作好的模板即可。水晶報表在網頁上產生報表後,可以直接列印,也可以轉存為其它的比較通過的檔案如Excel檔案。使用水晶報表可以製作出非常漂亮的樣式,關鍵在你對水晶報表的開發能力上,但由於水晶報表價格較高,只有當項目很賺錢時才買得起。
第二種方法是購買第三方的網上列印控件,費用同水晶報表相比便宜,但效果性能到底如何則仁者見仁了。
第三種方法是利用樣式表及JavaScript自定義函數實現。通過樣式表及JavaScript,實現網頁列印,效果也還可以。在此有一個實例請大家看看。下面是列印函數實現詳解:
好了,一切就緒了,現在要做的就是呼叫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();
}
}
這是一個朋友推薦得方法,不知道還有沒有別得更好得方法
web列印2
對一般的要求就夠了。
對一般的要求就夠了。