<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    靈魂-放水

    為學日益,為道日損。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks

    1、控制"縱打"、 橫打”和“頁面的邊距
    (1)
    <object? id="factory"? style="display:none"? viewastext? classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"?
    codebase=">
    <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="javascriptrintit()">
    <input type=button name=button_setup value="打印頁面設置"

    onclick="javascriptrintsetup();">
    <input type=button name=button_show value="打印預覽"

    onclick="javascriptrintpreview();">
    <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="\Software\Microsoft\Internet Explorer\PageSetup"
    '//設置網頁打印的頁眉頁腳為空
    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.document.close();
    ??? pwin.print();
    }
    </SCRIPT>
    5、用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>


    ?
    這個是調用WORD,進行打印
    在<head></head>之間加入如下代碼;
    <OBJECT Classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WB width=0></OBJECT>
    <script language=javascript>
    function doPrintSetup(){
    WB.ExecWB(8,1)
    }
    function doPrintPreview(){
    WB.ExecWB(7,1)
    }
    </script>

    在<body>中調用:
    <input type=button name=button1 value="打印設置" onclick="return doPrintSetup()">
    <input type=button name=button2 value="打印預覽" onclick="return doPrintPreview()">
    <input type=button name=button3 value="打印本頁" onclick="javascriptrint()">

    6、設置不想打印的部分
    <style>
    @media print{
    .xx {display:none}
    }
    </style>
    <table width="600" class="xx" border="0" cellspacing="0" cellpadding="0">
    ????????????? <tr>
    ??????????????? <td height="60" align="center">不想打印的表格</td>
    ????????????? </tr>?
    </table>
    7、利用word在客戶端打印web頁面

    以前在asp中也碰到過實現在瀏覽器中打印的問題,特別是用局域網中的一些應用,以前的實現定義一個打印開始的標記,和一個結束的標記,然后調用window.print()方法,還有涉及在使用frame時候的打印問題,在msdn的文檔中有關于這些的比較詳細的介紹,但是,控制起來都比較的麻煩,而且對與打印比較精確的控制都比較難以實現,有很多的朋友也碰到過這個問題,最近讀了一片文章,關于在web中的打印的實現(csdn),稍作修改,貼了出來,供大家參考一下,希望對大家有所幫助。
    可以調用客戶端的word進行打印前提是客戶端必須安裝word.
    方法如下:
    <%
    Response.ContentType = "application/msword"
    response.AddHeader "content-disposition", "inline; filename=report.doc"
    %>
    當把,一樣的內容添加到,asp的上面時候,會在客戶端自動調用word打開當前的文檔,不過不要忘記把,response.buffer的屬性設定為false。

    8、在WEB環境下打印報表的crystal的解決方案的實例

    <%@ LANGUAGE="VBSCRIPT" %>
    <%
    ' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
    ' 從ADO Recordset直接生成報表
    ' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
    '
    ' 概念:
    '
    ' 這個應用被設計成演示怎樣從ADO Recordset生成報表。我們首先建立ADO Connection和
    ' Recordset對象,然后用SQL語句從數據庫中生成一個記錄集。然后我們建立一個Crystal
    ' Reports對象,并把這個這個對象指向ADO recordset。最后我們將Crystal Reports
    ' Smart Viewer送到客戶端顯示這個報表。

    ' 第一步:建立ADO Connection and Recordset

    ' 一個ADO的數據庫連接就是通過你已經存在的ODBC數據源(DSN)從象ASP這樣的應用中來訪問
    ' 數據的連接。為了達到這個例子的目的,我們將使用到用一個叫做"Xtreme Sample Data"的
    ' 連到Access數據庫Xtreme.mdb系統DSN

    ' 建立ADO數據庫連接:

    Set oConn = Server.CreateObject("ADODB.Connection")

    '這里建立叫做"oConn"的ADO connection,我們將用這個ADO connection對象連接到上述的DSN

    '用 ADO connection 必須先要打開它:

    oConn.Open("Xtreme Sample Database")

    '這里打開我們的ODBC的數據源,這個數據源指向Access數據庫Xtreme.mdb

    '現在我們必須建立一個RecordSet對象:

    set session("oRs") = Server.CreateObject("ADODB.Recordset")

    '在上面我們建立了一個session("oRs"). 這個session中存放一個RecordSet對象
    '將要包含用SQL語句返回的數據

    '定義和生成 recordset:

    session("oRs").ActiveConnection = oConn
    '定義這個recordset將要使用的Connection 對象

    session("oRs").Open "SELECT [Product ID], [Product Name] FROM Product"

    '用SQL語句從Xtreme.mdb庫的"Product"表中取出兩個字段

    '===================================================================================
    '建立Crystal Reports 對象
    '===================================================================================
    '你可能注意到,Crystal Reports對象被設為session,這是因為已經需求就會被一個叫做
    '"rptserver.asp"的ASP處理,為了讓rptserver.asp能非常容易地訪問Crystal Report對象,
    '我們把這些對象都設為session。這樣任何ASP頁都運行在這個session中,都能夠直接訪問這些對象

    reportname = "ADORecordset.rpt"

    '這里建立一個字符串變量,指向Crystal Report文件(.rpt file),再用這段代碼的時候
    '換成你的Crystal Report文件名。

    '建立APPLICATION 對象
    If Not IsObject (session("oApp")) Then
    Set session("oApp") = Server.CreateObject("CrystalRuntime.Application")
    End If

    '這個"if/end if" 結構用來每個session只建立一次 Crystal Reports Application對象o
    '建立application對象 - session("oApp"),將Crystal Report Design Component
    'automation server (craxdrt.dll)載入內存。
    '
    '我們建立session變量是為了再asp session過程中都使用它們.這樣可以減少將craxdrt.dll
    '載入和卸載的系統開銷。在一個session中一旦建立了一個application對象我們就可以不必
    '重建對象運行更多的報表 。

    ' 建立REPORT 對象
    '
    '這個REPORT 對象被Application的OpenReport方法建立

    Path = Request.ServerVariables("PATH_TRANSLATED")
    While (Right(Path, 1) <> "\" And Len(Path) <> 0)
    iLen = Len(Path) - 1
    Path = Left(Path, iLen)
    Wend
    response.Write path
    '這個"While/Wend" 循環被用來將當前文件從虛擬路徑(eg: http://Domain/Dir)轉換成Crystal
    ' Report file的物理路徑(eg: C:\)

    '打開REPORT (先清除以前的任何對象)

    If IsObject(session("oRpt")) then
    Set session("oRpt") = nothing
    End if

    On error resume next

    Set session("oRpt") = session("oApp").OpenReport(path & reportname, 1)
    '這里用"PATH" 和 "reportname"變量計算出Crystal Report file的物理路徑, 并打開它。

    If Err.Number <> 0 Then
    Response.Write "Error Occurred creating Report Object: " & Err.Description
    Set Session("oRpt") = nothing
    Set Session("oApp") = nothing
    Session.Abandon
    Response.End
    End If

    '這個 On erro resume next 塊檢查在建立report對象時出現的任何錯誤,我們正明確的捕獲任何
    '錯誤如果視圖超過許可協議規定的最大并發用戶數。

    '注意,我們并不只建立一次report對象。這是因為有了ASP session 你可以處理更多的超過一個報表
    ' rptserver.asp將僅僅處理一個叫session("oRpt")的report對象。因此,你如果希望處理多個報表
    '的話,就要建立一個新的session("oRpt")對象。

    session("oRpt").MorePrintEngineErrorMessages = False
    session("oRpt").EnableParameterPrompting = False

    '這里不允許錯誤報告機制,包括Crystal Report Design Component automation server (craxdrt.dll)
    '內建的錯誤報告,這是因為兩個原因:
    '1. 打印引擎是在Web Server上執行的, 所以任何錯誤信息都將被顯示在服務端,如果在服務端報告出錯了,
    ' 打印引擎將停止運作,你的應用將被“掛起”
    '2. rptserver.asp 已經有一些錯誤處理邏輯在里面了,可以捕獲任何非致命錯誤,并顯示在客戶端。
    '
    '**重要** 即使我們禁止了服務端引擎的錯誤處理,但是致命錯誤還是會在Web Server服務端被捕獲,并
    '顯示出錯誤提示對話框。所以我們建議,你在"World Wide Web Publishing" service (IIS service)設置
    '"Allow Service to Interact with Desktop"選項。這樣如果你的ASP應用死了,你將能看到錯誤提示。

    '======================================================================================
    '======================================================================================

    '現在我們必須告訴report在ADO recordset中的數據

    'report建立在動態的ADO recordset的基礎,我們必須基于我們建立的recordset來建立report
    '然后在運行時我們告訴report數據在ADO Record set中。report通常依靠數據庫結構文件
    '(ADORecordset.ttx)建立,這個.ttx文件包含recordset的結構,不包含實際數據。

    '一個Crystal Report完全依賴將要使用的Report的數據結構,因此在運行時你的數據庫結構文件(ttx file)
    '或真實反應ADO recordset包含的數據的DSN是十分重要的

    session("oRpt").DiscardSavedData
    set Database = session("oRpt").Database
    '實例化report用到的數據庫

    set Tables = Database.Tables
    '實例化數據庫對象中的表

    set Table1 = Tables.Item(1)
    '實例化第一張表,在這個實例中這個表對象指向ADORecordset.ttx文件

    Table1.SetPrivateData 3, session("oRs")

    '"SetPrivateData"告訴report現在數據源是 recordset,現在report將要顯示的數據包含在session("oRs")中
    '如果你的report中包含子報表將提供不同的recordset來指向子報表的數據
    '
    '====================================================================================
    '重新得到記錄和建立"Page on Demand" Engine Object
    '====================================================================================

    On Error Resume Next
    session("oRpt").ReadRecords

    If Err.Number <> 0 Then
    Response.Write "Error Occurred Reading Records: " & Err.Description
    Set Session("oRpt") = nothing
    Set Session("oApp") = nothing
    Session.Abandon
    Response.End
    Else
    If IsObject(session("oPageEngine")) Then
    set session("oPageEngine") = nothing
    End If
    set session("oPageEngine") = session("oRpt").PageEngine
    End If

    ' 實例化 CRYSTAL REPORTS SMART VIEWER
    '
    '在ASP環境中使用Crystal Reports automation server, 我們用相同的頁來通過Crystal Web Report Server調用
    '"Smart Viewers"
    '有四個 Crystal Reports Smart Viewers:
    '
    '1. ActiveX Smart Viewer
    '2. Java Smart Viewer
    '3. HTML Frame Smart Viewer
    '4. HTML Page Smart Viewer
    '
    '你使用的Smart Viewer將與你數用的瀏覽器兼容的,例如你將不會使用Java viewer如果你的瀏覽器
    '不支持Java applets。為此,在這個DEMO中,我們已經選擇定義一個viewer,你可以通過代碼決定
    '提出要求的瀏覽器的支持兼容性,無論如何,這個功能繼承自Crystal Reports automation server,
    '超過了這個示例的范圍。

    '基于簡單的理由,我們已經選擇通過ASP服務端包含的功能來實現這個功能,你可以選擇不同的
    'SmartViewer*.asp文件送到不同的瀏覽器,簡單的用你想用的Smart Viewer asp文件來代替。

    '這些選擇是: SmartViewerActiveX.asp, SmartViewerJave.asp,SmartViewerHTMLFrame.asp,
    'and SmartViewerHTMLPAge.asp.注意,使用這些包含文件時,你必須把相應的.ASP文件放在同主
    'ASP文件相同的虛擬路徑中。
    '
    '*注意* 對于 SmartViewerHTMLFrame and SmartViewerHTMLPage,你必須在虛擬路徑中有framepage.asp
    '文件和toolbar.asp 文件

    viewer = Request.Form("Viewer")

    '上面讀取被使用的viewer的值,并放入變量"viewer"中

    If cstr(viewer) = "ActiveX" then
    %>
    <!-- #include file="SmartViewerActiveX.asp" -->
    <%
    ElseIf cstr(viewer) = "Netscape Plug-in" then
    %>
    <!-- #include file="ActiveXPluginViewer.asp" -->
    <%
    ElseIf cstr(viewer) = "Java using Browser JVM" then
    %>
    <!-- #include file="SmartViewerJava.asp" -->
    <%
    ElseIf cstr(viewer) = "Java using Java Plug-in" then
    %>
    <!-- #include file="JavaPluginViewer.asp" -->
    <%
    ElseIf cstr(viewer) = "HTML Frame" then
    Response.Redirect("htmstart.asp")
    Else
    Response.Redirect("rptserver.asp")
    End If
    '上面 If/Then/Else 被設計測試"viewer" 變量的值,基于這個值,送適當的Crystal Smart Viewer
    %>

    ?

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1441869

    主站蜘蛛池模板: 久久久久久久国产免费看| 国产高清不卡免费在线| 国产vA免费精品高清在线观看| 日本视频在线观看永久免费| 女人被弄到高潮的免费视频| 亚洲国产精品无码一线岛国| 亚洲日本一线产区和二线产区对比| 亚洲免费视频一区二区三区| 亚洲国产免费综合| 久久精品国产亚洲AV网站| 亚洲av永久中文无码精品| 最近中文字幕免费mv在线视频| 亚洲毛片网址在线观看中文字幕 | 亚洲欧洲精品成人久久奇米网| 亚洲AV无码男人的天堂| 98精品全国免费观看视频| 亚洲精品国产va在线观看蜜芽| 九九视频高清视频免费观看| 在线免费观看污网站| 色欲aⅴ亚洲情无码AV| 在线观看av永久免费| 亚洲天堂在线播放| 国产中文字幕在线免费观看| 亚洲高清最新av网站| 青柠影视在线观看免费高清| 亚洲毛片不卡av在线播放一区| 两性色午夜视频免费播放| 全部免费毛片免费播放| 亚洲精品动漫免费二区| 亚洲国产午夜福利在线播放 | 无码午夜成人1000部免费视频| 亚洲一区二区三区偷拍女厕| 免费无码午夜福利片| 免费日韩在线视频| 青青青亚洲精品国产| 亚洲国产一成人久久精品| 一级毛片免费播放试看60分钟| 亚洲av综合av一区| 日韩免费福利视频| 国产精品久久久久久亚洲影视| 亚洲精品你懂的在线观看|