一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net 打印控件使用方法

asp.net 打印控件使用方法

2019-07-04 14:28服務器之家 ASP.NET教程

做過很多的Web項目,大多數在打印頁面內容的時候,采用的都是通過Javascript調用系統內置的打印方法進行打印,也就是調用 PrintControl.ExecWB(?,?)實現直接打印和打印預覽功能。

打印的效果及控制性雖然不是很好,但是也能勉強使用,應付一般的打印還是 可以的了。
代碼如下所示: 
代碼 
復制代碼代碼如下:

//調用PrintControl.ExecWB(?,?)實現直接打印和打印預覽功能。(直接用系統提供的print()方法打印無法隱藏某些區域) 
//preview:是否顯示預覽。null/false:不顯示,true:顯示 
function printPage(preview) 

try 

var content=window.document.body.innerHTML; 
var oricontent=content; 
while(content.indexOf("{$printhide}")>=0) content=content.replace("{$printhide}","style='display:none'"); 
if(content.indexOf("ID=\"PrintControl\"")<0) content=content+"<OBJECT ID=\"PrintControl\" WIDTH=0 HEIGHT=0 CLASSID=\"CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\"></OBJECT>"; 
window.document.body.innerHTML=content; 
//PrintControl.ExecWB(7,1)打印預覽,(1,1)打開,(4,1)另存為,(17,1)全選,(10,1)屬性,(6,1)打印,(6,6)直接打印,(8,1)頁面設置 
if(preview==null||preview==false) PrintControl.ExecWB(6,1); 
else PrintControl.ExecWB(7,1); //OLECMDID_PRINT=7; OLECMDEXECOPT_DONTPROMPTUSER=6/OLECMDEXECOPT_PROMPTUSER=1 
window.document.body.innerHTML=oricontent; 

catch(ex){ alert("執行Javascript腳本出錯。"); } 

function printConten(preview, html) 

try 

var content=html; 
var oricontent=window.document.body.innerHTML; 
while(content.indexOf("{$printhide}")>=0) content=content.replace("{$printhide}","style='display:none'"); 
if(content.indexOf("ID=\"PrintControl\"")<0) content=content+"<OBJECT ID=\"PrintControl\" WIDTH=0 HEIGHT=0 CLASSID=\"CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\"></OBJECT>"; 
window.document.body.innerHTML=content; 
//PrintControl.ExecWB(7,1)打印預覽,(1,1)打開,(4,1)另存為,(17,1)全選,(10,1)屬性,(6,1)打印,(6,6)直接打印,(8,1)頁面設置 
if(preview==null||preview==false) PrintControl.ExecWB(6,1); 
else PrintControl.ExecWB(7,1); //OLECMDID_PRINT=7; OLECMDEXECOPT_DONTPROMPTUSER=6/OLECMDEXECOPT_PROMPTUSER=1 
window.document.body.innerHTML=oricontent; 

catch(ex){ alert("執行Javascript腳本出錯。"); } 

上面兩個函數放在一個Js文件中,在頁面內容中通過應用該腳本文件并調用進一步封裝的函數即可打印指定部分的內容: 
復制代碼代碼如下:

<script language="javascript"> 
function Print(preview) { 
var text = document.getElementById("content").innerHTML; 
printConten(preview, text); 

打印的效果大致如下圖所示,如果打印的頁面在框架頁面中,那么需要選定“僅打印選定框架”的選項。 
asp.net 打印控件使用方法

采用此種方法,不需要安裝任何控件,具有很好的兼容優勢,不過出來的報表內容,好像控制起來會比較麻煩一些,特別對于一些報表方面的打印,需要輸出復雜的內容是,也有一定的缺陷,但總體來說,也是一個較好的選擇。

后來在需要做一些證件套打方面的工作,這個控件就做不到了,因此需要一種方法或者控件,能夠較好處理套打方面的事情。

無意間,發現一個比較好的打印控件,支持各種格式的打印,還有我關心的證件套打功能,功能強大,使用也很簡單的,非常值得推薦。

控件的相關地址:

控件博客介紹:http://blog.sina.com.cn/s/articlelist_1340389911_0_1.html

 

應用這個控件,普通報表的打印效果如下所示:

asp.net 打印控件使用方法

 

上面兩個報表的打印其實都差不多,都是打印部分的HTML內容,不過后者看起來要好一點,而且提供很完善的報表功能設置。

代碼大致如下所示。
代碼 

復制代碼代碼如下:

<script language="javascript"> 
function Print(preview) { 
var text = document.getElementById("content").innerHTML; 
printConten(preview, text); 

</script> 
<script language="javascript" src="http://www.cnblogs.com/Scripts/CheckActivX.js"></script> 
<object id="LODOP" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0> </object> 
<script language="javascript"> 
var LODOP = document.getElementById("LODOP"); //這行語句是為了符合DTD規范 
CheckLodop(); 
</script> 
<script language="javascript" type="text/javascript"> 
function Preview() {//打印預覽 
CreateLicenseData(); 
LODOP.SET_SHOW_MODE("PREVIEW_IN_BROWSE", 1); 
LODOP.PREVIEW(); 
}; 
function Setup() {//打印維護 給用戶調整位置 
CreateLicenseData(); 
LODOP.PRINT_SETUP(); 
}; 
function Design() {//打印設計 開發人員設置內容和位置 
CreateLicenseData(); 
LODOP.PRINT_DESIGN(); 
}; 
function CreateLicenseData() { 
LODOP.PRINT_INIT("查詢報表"); 
LODOP.ADD_PRINT_HTM(20, 40, 610, 900, document.all("content").innerHTML); 
LODOP.PREVIEW(); 

</script> 

很多時候,我們也沒的內容,都是通過CSS來控制美觀的,所以有時候,我們打印部分HTML,沒有這些樣式的話,那么出來的Table格式和字體,可能都會發生變化,不太好看。那么就需要進行HTML的樣式設置。 
asp.net 打印控件使用方法

 

如果給打印內容設置了樣式,那么出來的界面效果就好很多了。

asp.net 打印控件使用方法
設置樣式的代碼如下所示。 
代碼 

復制代碼代碼如下:

<script language="javascript" type="text/javascript"> 
function Preview() {//打印預覽 
CreateLicenseData(); 
LODOP.SET_SHOW_MODE("PREVIEW_IN_BROWSE", 1); 
LODOP.PREVIEW(); 
}; 
function CreateLicenseData() { 
LODOP.PRINT_INIT("申請處理單"); 
var strBodyStyle = "<link type='text/css' rel='stylesheet' href='http://www.cnblogs.com/Themes/Default/style.css' /><style><!--table { border:1;background-color: #CBCBCC } td {background-color:#FFFFFE;border: 1; } th { background-color:#F1F1F3;padding-left:5px;border:1}--></style>"; 
var strFormHtml = strBodyStyle + "<body>" + document.getElementById("content").innerHTML + "</body>"; 
LODOP.ADD_PRINT_HTM(20, 40, 610, 900, strFormHtml); 
LODOP.PREVIEW(); 

</script> 
 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品日韩一区二区三区 | www.日本黄色| 白丝女榨干蹂躏我 | 欧美精品一国产成人性影视 | 欧亚尺码专线欧洲s码wmy | 国产精品亚洲综合第一区 | 精品国产原创在线观看视频 | 描写细腻的高h肉 | 18hdxxxx中国| 2021最新国产成人精品视频 | 久久久精品日本一区二区三区 | 韩日一区二区三区 | 国产成人在线视频播放 | 欧美肥乳| 青苹果乐园影院免费观看完整版 | 精品久久99麻豆蜜桃666 | 蜜桃视频在线观看官网 | 婷婷精品| 国产精品免费小视频 | 明星ai人脸替换造梦在线播放 | 免费看a视频| 好硬好大好浪夹得好紧h | 国产精品欧美韩国日本久久 | 国产日韩欧美在线一二三四 | 亚洲国产99999在线精品一区 | 国产成人精选免费视频 | 色综合久久综合网欧美综合网 | 99自拍视频在线观看 | 亚洲视频日韩 | 精精国产xxxx视频在线播放器 | 日本中文字幕一区二区高清在线 | 亚洲六月丁香六月婷婷蜜芽 | 色噜噜 男人的天堂在线观看 | 国产成人8x视频一区二区 | 天天操天天做 | 视频在线91| 蜜月aⅴ免费一区二区三区 蜜桃影像传媒推广 | 好姑娘完整版在线观看中文 | xnxx18美女| 日本三不卡 | brazzers办公室 |