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

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

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

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



国产精品免费精品自在线观看,欧美日韩精品免费观看视欧美高清免费大片,久久精品一区二区三区中文字幕,国产视频网站一区二区三区
人人草在线视频| 国产精品115| 国产精品99在线观看| 国产日产一区| 日本精品久久| 日韩福利视频网| 亚洲一级影院| 欧美成人综合| 99视频一区| 亚洲男女自偷自拍| 久久午夜影视| 91精品国产自产精品男人的天堂| 日韩精品五月天| 欧美亚洲网站| 国产精品久久久久久久久久齐齐 | 欧美亚洲tv| 丝袜av一区| 国产日韩视频| 国产乱子精品一区二区在线观看| 国产精品中文字幕制服诱惑| 免费亚洲一区| 国产婷婷精品| 鲁鲁在线中文| 国产乱论精品| 亚洲女人av| 日韩不卡一二三区| 国产精品资源| 日本精品黄色| 日韩视频免费| 日韩欧美美女在线观看| 日本色综合中文字幕| 国产精品扒开腿做爽爽爽软件| 国产欧美高清视频在线| 麻豆久久久久久久| 99精品电影| 激情视频一区二区三区| 国产精品社区| 国产精品色婷婷在线观看| 麻豆精品在线| 99免费精品| 综合亚洲自拍| 精品亚洲自拍| 黄色精品网站| 日本视频一区二区| 国产在线观看www| 亚洲一区亚洲| 国产一区 二区| 在线天堂资源www在线污| 精品一区欧美| 日韩va欧美va亚洲va久久| 国产精品成人**免费视频| 韩国精品主播一区二区在线观看| 中文在线不卡| 国产高清视频一区二区| 亚洲五月婷婷| 日韩av网站免费在线| 国产中文在线播放| 日韩中文字幕区一区有砖一区| 青青在线精品| 最近高清中文在线字幕在线观看1| 亚洲国产一区二区在线观看| 欧美精品中文| 欧美日韩亚洲在线观看| 国产精品中文| 日韩午夜高潮| 国产精品蜜月aⅴ在线| 亚洲天堂黄色| 国产日产高清欧美一区二区三区| 日韩精品永久网址| 午夜天堂精品久久久久| 欧美日韩视频免费观看| 婷婷综合电影| 成人羞羞在线观看网站| 日韩国产欧美一区二区三区| 日本韩国欧美超级黄在线观看| 天堂va在线高清一区| 日本蜜桃在线观看视频| 亚洲人亚洲人色久| 国产一在线精品一区在线观看| 国产无遮挡裸体免费久久 | 蜜臀久久99精品久久久久久9| 国产精品jk白丝蜜臀av小说| 波多野结衣一区| 国产一区二区三区亚洲综合| 一区二区国产精品| 久久要要av| 国产精品久久观看| 亚久久调教视频| 亚洲国产一区二区在线观看| 久久久国产精品入口麻豆| 亚洲欧美日韩在线观看a三区| 国产精品777777在线播放| 视频一区中文字幕| 国产精品黑丝在线播放| 日韩精品视频网站| 久久大逼视频| 久久精品国产www456c0m| 国产欧美一区二区三区国产幕精品| 欧美日韩国产传媒| 日韩88av| 欧美国产另类| 亚洲精品女人| 99re国产精品| 免费高潮视频95在线观看网站| 欧美亚洲三级| 日本亚洲三级在线| 三级在线观看一区二区| 欧美日韩国产一区精品一区| 日韩中文欧美| 精品视频高潮| 国产精品久久国产愉拍| 日本欧美在线| 亚州av一区| 中文不卡在线| 伊人久久大香伊蕉在人线观看热v| 精品欧美久久| 99久久久久| 蜜桃成人av| 亚洲天堂成人| 欧美日韩国产高清| 婷婷激情图片久久| 激情六月综合| 国产日韩一区二区三免费高清 | 精品国产成人| 国产精品啊啊啊| 国产精品v日韩精品v欧美精品网站| 亚洲精品中文字幕99999| 亚洲一二三区视频| 亚洲欧美久久精品| 中文字幕亚洲精品乱码| 日韩欧美中文字幕一区二区三区| 亚洲精品影视| 日韩高清在线不卡| 久久国内精品视频| 国产精品资源| 欧美日一区二区在线观看| 欧美精品中文| 国产精品玖玖玖在线资源| 麻豆中文一区二区| 国产精品13p| 久久久人人人| 精品一区三区| 爽好多水快深点欧美视频| 免播放器亚洲一区| 日韩中文字幕在线一区| 国产精一区二区| 丰满少妇一区| 亚洲天堂一区二区| 一区在线视频观看| 亚洲日本免费电影| 日韩一区二区三区免费视频| 日韩精品五月天| 欧美aa在线视频| 理论片午夜视频在线观看| 麻豆精品蜜桃| 石原莉奈一区二区三区在线观看| 日本a级不卡| 精品精品99| 欧美粗暴jizz性欧美20| 另类av一区二区| 日本91福利区| a国产在线视频| 欧美日韩国产综合网| 婷婷精品久久久久久久久久不卡| 国产精品美女在线观看直播| 国产91欧美| 国产传媒av在线| re久久精品视频| 日韩欧美中文字幕一区二区三区| 国产精品3区| 日韩精品欧美| 亚洲免费毛片| 岛国av在线网站| 国产精品免费看| 婷婷精品在线观看| 97国产成人高清在线观看| 日韩一区二区免费看| 911精品国产| 日韩电影免费网址| 中文字幕一区二区精品区| 精品视频91| 欧美一级精品| 91精品视频一区二区| 精品捆绑调教一区二区三区| 亚洲久久一区| 日韩免费小视频| 日韩在线观看中文字幕| 日韩精品1区| 日韩av中文字幕一区二区| 91综合网人人| 亚洲精品极品| 日韩欧美一区免费| 亚洲精品少妇| 另类中文字幕国产精品| 日韩免费精品| 精品日韩视频| 日韩av一二三| 亚洲福利精品| 国产精品一区二区美女视频免费看 | 99国产精品|