<%@ Language=vbscript %>
<%
Option Explicit
Dim strSubmit 'Form中用來儲存提交按鈕的值
Dim strPrinterPath 'Form中儲存網路印表機路徑的值
Dim strUsername 'Form中使用者名稱的值
Dim strPassword 'Form中密碼的值
Dim strMessage 'Form列印內容的值
Dim objFS 'VBScript中的檔案系統對象
Dim objWS.NET 'WSH中的網路對象
Dim objPrinter '列印對象
strSubmit = Request.Form(Submit)
%>
<HTML>
<HEAD>
<META NAME=GENERATOR Content=microsoft Visual Studio 6.0>
</HEAD>
<BODY>
<%
If strSubmit = Then
%>
注意的是:
由於這是演示,其中有關NT的帳號和密碼都是使用了不加密的手段在ASP中傳遞的
真正的運用中應該對該登入流程進行安全處理。
<FORM action=ASPPrint.asp method=POST id=form name=form>
<TABLE WIDTH=100% ALIGN=center BORDER=0 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD ALIGN=right NOWRAP>網路印表機路徑:</TD>
<TD ALIGN=left NOWRAP><INPUT type=text id=printerpath name=printerpath
value=< domain >< Printer >></TD>
</TR>
<TR>
<TD ALIGN=right NOWRAP>登入帳號:</TD>
<TD ALIGN=left NOWRAP><INPUT type=text id=username name=username
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=right NOWRAP> </TD>
<TD ALIGN=left NOWRAP><INPUT type=submit value=Submit
id=submit name=submit></TD>
</TR>
</TABLE>
</FORM>
當以上資訊提交後,就可以按照下面的程式碼進行列印了。
<%
Else
' 從form取得回應訊息。
strPrinterPath = Request.Form(printerpath)
strUsername = Request.Form(username)
strPassword = Request.Form(password)
strMessage = Request.Form(message)
We will now use the VBScript FileSystemobject object and the WSH Network object. The Network object will
give us the methods we need to open a printer connection, and the FileSystemObject will allow us to stream our
output to the printer. We create these objects in the following code example:
Set objFS = CreateObject(Scripting.FileSystemObject)
Set objWSHNet = CreateObject(WScript.Network)
' 使用WSH連接網路印表機
objWSHNet.AddPrinterConnection LPT1, strPrinterPath, False, strUsername, strPassword
' 使用檔案系統物件將列印設備作為一個檔案使用
Set objPrinter = objFS.CreateTextFile(LPT1:, True)
' 給列印設備發送文本
objPrinter.Write(strMessage)
'關閉列印設備物件並進行錯誤陷阱處理
On Error Resume Next
objPrinter.Close
' 若發生錯誤,關閉列印連接,並輸出錯誤訊息
If Err Then
Response.Write (Error # & CStr(Err.Number) & & Err.Description)
Err.Clear
Else
' 操作成功,輸出確認訊息
Response.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>)
Response.Write(</TABLE>)
Response.Write(</CENTER>)
End If
' 取消列印連線
objWSHNet.RemovePrinterConnection LPT1:
Set objWSHNet = Nothing
Set objFS = Nothing
Set objPrinter = Nothing
End If
%>
</BODY>
</HTML>