国产精品免费精品自在线观看,欧美日韩精品免费观看视欧美高清免费大片,久久精品一区二区三区中文字幕,国产视频网站一区二区三区

[門戶網站建設]_網站建設頁面打印實現方式

網站建設防止被掛馬,中毒的辦法

爐火工作室建站公司,專業15年企業網站建設一站式服務公司,已為眾多企業提供網站建設,網站設計,網站制作,小程序開發,模板建站等服務,是一家專業的網站建設公司,技術先進,值得信賴!

WEB打印實例教程
 做Web開發的人員一定都會面臨一個共同的難題,那就是打印。的確,相對于Windows桌面應用程序來講,Web應用程序的打印有種種限制,技術人員在項目開發過程中經常會遇到用戶這樣或那樣的需求. 做過桌面應用開發的人都會非常熟悉水晶報表、Active Report之類的報表控件,它們不僅有簡單靈活的設計界面,更具有非常強大的報表功能,能滿足各種報表的打印需求。而Web應用則因為其特殊的呈現方式,只能尋求其他的解決方案。現在我們來分析一下目前已經成形的Web打印方案:
  現有的Web打印控制技術分成幾種方案:
   一.自定義控件完成打印
  利用IE 自帶的WebBrowser 控件實現打印
  利用第三方控件實現打印
  1、自定義控件方式
  自定義控件方式就是利用VB 或VC 等工具生成COM 組件,用定義好的打印格式來分析打印源文件從而實現打印。只有將生成的組件下載并注冊到客戶機上,才能實現在客戶端的
打印。
  難點主要是定義打印格式、如何來分析打印源文件。現有的比較好的方法是利用XML 技術來全面的解決問題,利用XML 可以非常容易地定義打印目標的文本、表格等內容的格式。
但對程序員的開發要求高,難度比較大。
  2、利用WebBrowser 實現Web打印
  WebBrowser是IE 內置的瀏覽器控件,無需用戶下載。本文檔所討論的是有關IE6.0 版本 的WebBrowser 控件技術內容。與其相關的技術要求有:打印文檔的生成、頁面設置、打印操作的實現等幾個環節。
  (一)、打印文檔的生成
  1、客戶端腳本方式
  客戶端腳本分為VBScript、JavaScript、JScript 幾種腳本語言。在IE 下開發應用使用的語法為JScript 的語法,由于它和JavaScript 幾乎沒有什么區別,所以也可以稱其為JavaScript(下面簡寫為JS)。一般情況下,主要使用JS 來實現DOM 文檔的分析,DOM 為微軟提出的一種Web文檔模型,主要用來實現Web腳本編程。
  利用JS 可以分析源頁面的內容,將欲打印的頁面元素提取出來,實現打印。通過分析源文檔的內容,可以生成打印目標文檔。
  優點:客戶端獨立完成打印目標文檔的生成,減輕服務器負荷;
  缺點:源文檔的分析操作復雜,并且源文檔中的打印內容要有約定;
  2、服務器端程序方式
  服務器端程序方式,主要是利用后臺代碼從數據庫中讀取打印源,生成打印目標文檔。當的頁面生成時,還應適當考慮使用CSS 來實現強制分頁控制。
  優點:可以生成內容非常的豐富的打印目標文檔,目標文檔的內容的可控性強。由于打印內容是從數據庫中獲取的,所以生成操作相對簡單;
  缺點:服務器端負載比較大;
   (二)、頁面設置
  頁面設置主要是指設置打印文檔的頁邊距、頁眉、頁腳、紙張等內容。頁面設置將直接影響到打印文檔版面的生成效果,所以它和打印文檔的生成有著密切的關系。比如:表格的
行數、大小、位置、字體的大小等。
  現有的技術是利用IE6.0 內置的打印模板方式來控制頁面設置,其可以對打印目標文檔產生非常大的影響。打印模板可以控制頁邊距、頁眉、頁腳、奇偶頁等內容,并可以將用戶的設置取得,還可以將設置發送到服務器端。
  打印模板技術可以自定預覽窗口和打印格式,最大限度地影響目標文檔和打印效果。
   (三)、打印操作的實現
  此功能的實現主要是利用WebBrowser控件的函數接口來實現打印、打印預覽(默認的)、
  頁面設置(默認的)。
<object ID='WebBrowser1' WIDTH=0 HEIGHT=0
CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'>
//打印
WebBrowser1.ExecWB(6,1);
//打印設置
WebBrowser1.ExecWB(8,1);
//打印預覽
WebBrowser1.ExecWB(7,1);
3、一個實例項目采用的打印方案
服務器端程序方式、打印預覽接口調用,下面為例, 主要參考項目中的:
pageErrorPrint.aspx.vb 文件
主調用頁
function PrintPage(iPageIndex,strQuery)
{
var strURL;
strURL = "PageErrorPrint.aspx?PageIndex=" iPageIndex "&QueryString="
strQuery;
winPrint=window.open(strURL,"","left=2000,top=2000,fullscreen=3");
}
打印頁HTML 源中的預覽控制
<SCRIPT language="javascript">
document.write("<object ID='WebBrowser' WIDTH=0 HEIGHT=0
CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>");
WebBrowser.ExecWB(7,1);
window.opener=null;
window.close();
</SCRIPT>
程序頭
'首先聲明表格容器
Protected WithEvents phContainer As System.Web.UI.WebControls.PlaceHolder
'每個表格中的記錄數量
Private Const ItemPerTable As Integer = 20
關鍵的實現部分
'創建一個符合打印要求的表格
tabPagePrint = NewPrintTable()
'將表頭添加到此表格中
Call AddTableTitle(tabPagePrint)
'初始化記錄器
i = 0
iItemIndex = iStartPoint
For Each clsItem In clsAllData.ErrorCollection
If i > 0 And i Mod ItemPerTable = 0 Then
'添加表格控件到頁面中
phContainer.Controls.Add(tabPagePrint)
'在頁面中添加一個換行符
Call AddPageBreak()
'創建新一輪的表格
tabPagePrint = NewPrintTable()
Call AddTableTitle(tabPagePrint)
End If
'將記錄添加到表格中
Call AddItemToTable(iItemIndex, tabPagePrint, clsItem)
iItemIndex = iItemIndex 1
i = i 1
Next
'添加表格控件到頁面中
phContainer.Controls.Add(tabPagePrint)
支持函數
'功能:添加頁的換行符
Private Sub AddPageBreak()
Dim ltBreak As LiteralControl
ltBreak = New LiteralControl("<p style='page-break-before:always'>")
phContainer.Controls.Add(ltBreak)
End Sub
  二、利用IE自身打印
  這種方式比較簡單,也常用的打印方式,只需要將報表頁面設計好,用戶通過IE菜單中的打印功能完成打印。優點是簡單,容易實現,缺點是不靈活,不能控制分頁,不能控制好頁眉和頁腳。
  三、將報表導出成Word,Excel或PDF形式打印
  這種方式需要將頁面導出成Office文檔或pdf,最低的要求是客戶端已經安裝用以打開Word、Excel或Pdf文檔的軟件。這種方式可以通過水晶報表組件或其他一些第三方控件非常容易地實現。導出成Pdf形式后打印質量和效果都很好,導出成Word或Excel后用戶可以自定義打印的內容和格式。
  總之,現有的打印方案各有所長,在開發過程中應根據用戶的需求作選擇,利用IE打印簡單,容易實現,在用戶需求簡單或打印內容較少的情況下采用此方案比較適宜。利用自定義控件打印可以實現完全自定義,但需要較高的技術要求和開發周期。利用導出的方式則可以滿足用戶需要一點自定義或打印內容有多頁的需求。
-------------------------------------------------------------
1、控制"縱打"、橫打”和“頁面的邊距。 
(1)<script defer> 
function SetPrintSettings() { 
 // -- advanced features 
 factory.printing.SetMarginMeasure(2) // measure margins in inches 
 factory.SetPageRange(false, 1, 3) // need pages from 1 to 3 
 factory.printing.printer = "HP DeskJet 870C" 
 factory.printing.copies = 2 
 factory.printing.collate = true 
 factory.printing.paperSize = "A4" 
 factory.printing.paperSource = "Manual feed" 
 // -- basic features 
 factory.printing.header = "This is MeadCo" 
 factory.printing.footer = "Advanced Printing by ScriptX" 
 factory.printing.portrait = false 
 factory.printing.leftMargin = 1.0 
 factory.printing.topMargin = 1.0 
 factory.printing.rightMargin = 1.0 
 factory.printing.bottomMargin = 1.0 

</script> 
(2) 
<script language="javascript"> 
  function printsetup(){ 
  // 打印頁面設置 
  wb.execwb(8,1); 
  } 
  function printpreview(){ 
  // 打印頁面預覽 
     
  wb.execwb(7,1); 
      
     
  } 
  function printit() 
  { 
  if (confirm('確定打印嗎?')) { 
  wb.execwb(6,6) 
  } 
  } 
  </script> 
</head> 
<body> 
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" 
height=0 id=wb name=wb width=0></OBJECT> 
<input type=button name=button_print value="打印" 
onclick="javascript:printit()"> 
<input type=button name=button_setup value="打印頁面設置" 
onclick="javascript:printsetup();"> 
<input type=button name=button_show value="打印預覽" 
onclick="javascript:printpreview();"> 
<input type=button name=button_fh value="關閉" 
onclick="javascript:window.close();"> 
------------------------------------------------ 
關于這個組件還有其他的用法,列舉如下: 
WebBrowser.ExecWB(1,1) 打開 
Web.ExecWB(2,1) 關閉現在所有的IE窗口,并打開一個新窗口 
Web.ExecWB(4,1) 保存網頁 
Web.ExecWB(6,1) 打印 
Web.ExecWB(7,1) 打印預覽 
Web.ExecWB(8,1) 打印頁面設置 
Web.ExecWB(10,1) 查看頁面屬性 
Web.ExecWB(15,1) 好像是撤銷,有待確認 
Web.ExecWB(17,1) 全選 
Web.ExecWB(22,1) 刷新 
Web.ExecWB(45,1) 關閉窗體無提示 
2、分頁打印 
<HTML> 
<HEAD> 
<STYLE>   
  P {page-break-after: always} 
</STYLE> 
</HEAD> 
<BODY> 
<%while not rs.eof%> 
<P><%=rs(0)%></P> 
<%rs.movenext%> 
<%wend%> 
</BODY> 
</HTML> 
3、ASP頁面打印時如何去掉頁面底部的路徑和頂端的頁碼編號 
(1)ie的文件-〉頁面設置-〉講里面的頁眉和頁腳里面的東西都去掉,打印就不出來了。 
(2)<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Generator" CONTENT="EditPlus"> 
<META NAME="Author" CONTENT="YC"> 
<script language="VBScript"> 
dim hkey_root,hkey_path,hkey_key 
hkey_root="HKEY_CURRENT_USER" 
hkey_path="SoftwareMicrosoftInternet ExplorerPageSetup" 
'//設置網頁打印的頁眉頁腳為空 
function pagesetup_null() 
  on error resume next 
  Set RegWsh = CreateObject("WScript.Shell") 
  hkey_key="header"   
  RegWsh.RegWrite hkey_root hkey_path hkey_key,"" 
  hkey_key="footer" 
  RegWsh.RegWrite hkey_root hkey_path hkey_key,"" 
end function 
'//設置網頁打印的頁眉頁腳為默認值 
function pagesetup_default() 
  on error resume next 
  Set RegWsh = CreateObject("WScript.Shell") 
  hkey_key="header"   
  RegWsh.RegWrite hkey_root hkey_path hkey_key,"&w&b頁碼,&p/&P" 
  hkey_key="footer" 
  RegWsh.RegWrite hkey_root hkey_path hkey_key,"&u&b&d" 
end function 
</script> 
</HEAD> 
<BODY> 
<br/> 
<br/> 
<br/> 
<br/> 
<br/> 
<br/><p align=center> 
<input type="button" value="清空頁碼" onclick=pagesetup_null()> <input type="button" value="恢復頁嗎" onclick=pagesetup_default()><br/> 
</p> 
</BODY> 
</HTML> 
4、浮動幀打印 
<SCRIPT LANGUAGE=javascript> 
function button1_onclick() { 
  var odoc=window.iframe1.document; 
  var r=odoc.body.createTextRange(); 
  var stxt=r.htmlText; 
  alert(stxt) 
  var pwin=window.open("","print"); 
  pwin.document.write(stxt); 
  pwin.print(); 

</SCRIPT> 
4、用FileSystem組件實現WEB應用中的本地特定打印 
<script Language=VBScript> 
function print_onclick //打印函數 
dim label 
label=document.printinfo.label.value //獲得HTML頁面的數據 
set objfs=CreateObject("Scripting.FileSystemObject") //創建FileSystem組件對象的實例 
set objprinter=objfs.CreateTextFile ("LPT1:",true) //建立與打印機的連接 
objprinter.Writeline("__________________________________") //輸出打印的內容 
objprinter.Writeline("| |") 
objprinter.Writeline("| 您打印的數據是:"&label& " |”) 
objprinter.Writeline("| |") 
objprinter.Writeline("|_________________________________|") 
objprinter.close //斷開與打印機的連接 
set objprinter=nothing 
set objfs=nothing // 關閉FileSystem組件對象 
end function 
</script> 
服務器端腳本: 
<%……… 
set conn=server.CreateObject ("adodb.connection") 
conn.Open "DSN=name;UID=XXXX;PWD=XXXX;" 
set rs=server.CreateObject("adodb.recordset") 
rs.Open(“select ……”),conn,1,1 
……….%> //與數據庫進行交互 
HTML頁面編碼: 
<HTML> 
……… 
<FORM ID=printinfo NAME="printinfo" > 
<INPUT type="button" value="打印>>" id=print name=print > //調用打印函數 
<INPUT type=hidden id=text1 name=label value=<%=………%>> //保存服務器端傳來的數據 
……… 
</HTML>

網站優化之網站設計

爐火工作室建站公司,專業15年企業網站建設一站式服務公司,已為眾多企業提供網站建設,網站設計,網站制作,小程序開發,模板建站等服務,是一家專業的網站建設公司,技術先進,值得信賴!



国产精品免费精品自在线观看,欧美日韩精品免费观看视欧美高清免费大片,久久精品一区二区三区中文字幕,国产视频网站一区二区三区
91av一区| 日韩激情啪啪| 精品国产精品国产偷麻豆| 人人精品久久| 亚洲精品日韩久久| 日韩高清在线一区| 欧美极品中文字幕| 黑人精品一区| 人人精品亚洲| 女人av一区| 亚洲女人av| 日本久久一区| 久久精品欧洲| 日韩中文影院| 91久久久精品国产| 久久九九电影| 性一交一乱一区二区洋洋av| 免费视频最近日韩| 日韩成人精品一区二区三区| 国产精品任我爽爆在线播放| 久久精品一区二区国产| 水蜜桃精品av一区二区| 精品日韩视频| 视频一区二区不卡| 国产亚洲欧美日韩在线观看一区二区| 欧美激情视频一区二区三区在线播放| 国产成人精品福利| 亚洲一级影院| 日韩综合小视频| 久久精品亚洲| 99久久久久久中文字幕一区| 日本大胆欧美人术艺术动态| 国产精品www.| 91精品一区二区三区综合在线爱| 视频一区中文字幕| 精品中国亚洲| 久久久久美女| 色综合视频一区二区三区日韩 | 国产精品欧美一区二区三区不卡| 久久不见久久见免费视频7| 久久婷婷一区| 日韩区欧美区| 日韩在线视频精品| 丝袜美腿一区二区三区| 麻豆国产欧美一区二区三区 | 色爱综合av| 亚洲综合图色| 国产一区二区三区四区五区| 国产精品女主播一区二区三区| 久久国产麻豆精品| 99视频精品全国免费| 日本不卡高清| 久久精品导航| 国产乱码精品一区二区三区四区| 中国字幕a在线看韩国电影| 午夜在线播放视频欧美| 国产精品亚洲产品| 午夜国产精品视频| 免费一级欧美片在线观看网站| 伊人久久大香线蕉av超碰演员| 日韩av电影一区| 久久精品青草| 久久av电影| 免费看日韩精品| 黄色aa久久| 香蕉久久一区| 激情久久久久久久| 久久一区视频| 亚洲综合图色| 久久精品二区三区| 国产乱人伦精品一区| 在线亚洲激情| 毛片在线网站| 国产精品亚洲片在线播放| 亚洲精品一区二区妖精| 精品久久中文| 日韩精品一区二区三区av| 激情婷婷久久| 中文av在线全新| 国产精品一区二区三区美女| 亚洲一区二区网站| 日韩毛片在线| 成人台湾亚洲精品一区二区| 日本综合视频| 亚洲一区国产一区| 久久激情婷婷| 97在线精品| 久久一区欧美| 国产毛片一区二区三区| 亚洲影视一区| 国产一级一区二区| 亚洲v在线看| 国产成人免费精品| 国产亚洲精品美女久久| 日韩精品一二三| 91成人精品视频| 亚洲精品在线影院| 国产传媒av在线| 欧美国产另类| 亚洲精品免费观看| 国产精品社区| 午夜亚洲一区| 宅男噜噜噜66国产日韩在线观看| 久久久久国产一区二区| 极品av在线| 欧美少妇精品| 日韩欧美在线中字| 高清精品久久| 精品日本视频| 国产一区调教| 国产激情在线播放| 国产精品蜜芽在线观看| 国产91在线精品| 日韩av片子| 国产一区日韩| 国产一区精品福利| 国产videos久久| av在线最新| 久久视频一区| 欧美日韩国产一区二区三区不卡| 日本精品不卡| 亚洲精品.com| 欧美日韩一二| 国产综合激情| 在线综合视频| 在线看片一区| 亚洲ab电影| 日韩黄色免费网站| 国产精品亚洲四区在线观看 | 无码日韩精品一区二区免费| 亚洲综合色婷婷在线观看| 亚洲精品欧美| 国产亚洲字幕| 成人精品国产亚洲| 日韩精品一区二区三区免费观影| 国产99久久久国产精品成人免费| 亚洲欧美日韩高清在线| 日韩专区在线视频| 97精品资源在线观看| 国产精品99久久免费| 精品国产不卡| 99精品在线| 男人的天堂久久精品| 亚洲一区二区三区四区电影| 亚洲精品伊人| 免费一级欧美在线观看视频| 成人美女视频| 久久不射网站| 国产乱码精品一区二区三区亚洲人 | 欧美亚洲国产激情| 好吊一区二区三区| 亚洲色图网站| 久久99视频| 伊人精品一区| 在线精品观看| 国产精品嫩模av在线| 日韩国产专区| 蜜乳av另类精品一区二区| 青青草国产成人99久久| 精品视频国内| 亚洲女同中文字幕| 911精品国产| 日韩国产激情| 美美哒免费高清在线观看视频一区二区 | 久久一区视频| 欧美精选一区二区三区| 亚洲综合婷婷| 激情不卡一区二区三区视频在线| 欧美1区2区3区| 国产日产一区| 久久国产毛片| 奇米狠狠一区二区三区| 天堂√8在线中文| 一区二区三区四区精品视频| 久久精品日韩欧美| 亚洲在线免费| 麻豆精品视频在线观看视频| 欧美午夜精彩| 国产亚洲高清在线观看| 999国产精品视频| 日本三级亚洲精品| 美女av在线免费看| 亚洲精选91| 在线精品亚洲欧美日韩国产| 美美哒免费高清在线观看视频一区二区| 国产精品免费不| 午夜欧美精品久久久久久久| 免费看久久久| 亚洲一区二区小说| 日韩精品不卡一区二区| 亚洲91在线| 在线日韩中文| 精品一区二区三区在线观看视频| 99视频一区| 高清日韩欧美| 91在线成人| 日韩视频在线一区二区三区| 麻豆91精品视频| 亚洲精品黄色| 亚洲婷婷在线|