使用到的技術:
ASP、WSH、VBScript
檔案ASPPrint.asp程式碼如下:
<%@ 語言=VBScript %>
<%
Option Explicit
Dim strSubmit ' Form中用來儲存提交按鈕的值
Dim strPrinterPath ' 表單中儲存網路印表機路徑的值
Dim strUsername ' 表單中使用者名稱的值
Dim strPassword ' Form中密碼的值
Dim strMessage ' 表單列印內容的值
Dim objFS ' VBScript中的檔案系統對象
Dim objWSHNet ' WSH中的網路對象
Dim objPrinter ' 列印對象
strSubmit = Request.Form("提交")
%>
<HTML>
<頭>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</頭>
<身體>
<%
如果 strSubmit = "" 那麼
%>
注意事項:
由於我是簡報入門,其中有關NT的帳號和密碼都使用了不加密的手段,在ASP中傳遞的真正的安全運用應該在登入過程中處理。
<FORM 操作=“ASPPrint.asp”方法=POST id=表單名稱=表單>
<表寬度=100% 對齊=中心邊框=0 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD ALIGN=right NOWRAP> 網路印表機路徑:</TD>
<TD ALIGN=left NOWRAP><INPUT type="text" id=printerpath name=printerpath value="\< 域 >< 印表機 >"></TD>
</TR>
<TR>
<TD ALIGN=right NOWRAP>登入帳號:</TD>
<TD ALIGN=left NOWRAP><INPUT type="text" id=使用者名稱 name=使用者名
value="<% = strUsername %>"></TD>
</TR>
<TR>
<TD ALIGN=right NOWRAP>登入口令:</TD>
<TD ALIGN=left NOWRAP><INPUT type="password" id=password name=password></TD>
</TR>
<TR>
<TD ALIGN=right NOWRAP>請輸入您想要列印的文字:</TD>
<TD ALIGN=left NOWRAP><TEXTAREA rows=2 cols=20 id=message name=message></TEXTAREA></TD>
</TR>
<TR>
<TD ALIGN=右NOWRAP> </TD>
<TD ALIGN=left NOWRAP><INPUT type="submit" value="提交" id=submit name=submit></TD>
</TR>
</表>
</FORM>
當以上資料提交後,就可以按照下面的程式碼列印了。
<%
別的
' 從表單中取得回應資訊。
strPrinterPath = Request.Form("印表機路徑")
strUsername = Request.Form("使用者名稱")
strPassword = Request.Form("密碼")
strMessage = Request.Form("message")
我們現在將使用 VBScript FileSystemObject 物件和 WSH Net work 物件。網路物件將
為我們提供開啟印表機連線所需的方法,FileSystemObject 將允許我們串流傳輸
輸出到印表機。我們在下面的程式碼中創建這些對象
例子:
' 使用WSH連接網路印表機
設定 objWSHNet = CreateObject("WScript.Network")
objWSHNet.AddPrinterConnection“LPT1”,strPrinterPath,False,strUsername,strPassword
'使用檔案系統物件將列印設備作為一個檔案使用
設定 objFS = CreateObject("Scripting.FileSystemObject")
設定 objPrinter = objFS.CreateTextFile("LPT1:", True)
' 給列印設備發送文本
objPrinter.Write(strMessage)
'關閉列印設備物件並進行錯誤陷阱處理
出錯時繼續下一步
objPrinter.關閉
' 若發生錯誤,關閉列印連接,並輸出錯誤訊息
如果出錯那麼
Response.Write ("錯誤#" & CStr(Err.Number) & " " & Err.Description)
錯誤清除
別的
' 操作成功,輸出確認訊息
回應.Write("<CENTER>")
Response.Write("<TABLE WIDTH=100% ALIGN=center BORDER=0 CELLSPACING=1 CELLPADDING=1>")
Response.Write("<TR><TD ALIGN=RIGHT><B>列印訊息傳送出:</B></TD>")
Response.Write("<TD ALIGN=LEFT>" & strMessage & "</TD></TR>")
Response.Write("<TR><TD ALIGN=RIGHT><B>網路印表機路徑:</B></TD>")
Response.Write("<TD ALIGN=LEFT>" & strPrinterPath & "</TD></TR>")
Response.Write("<TR><TD ALIGN=RIGHT><B>登入帳號:</B></TD>")
Response.Write("<TD ALIGN=LEFT>" & strUsername & "</TD></TR>")
回應.Write("</TABLE>")
回應.Write("</CENTER>")
結束如果
' 取消列印連線
objWSHNet.RemovePrinterConnection“LPT1:”
設定 objWSHNet = 無
設定 objFS = 無
設定 objPrinter = 無
結束如果
%>
</正文>
</HTML>