用ASP进行网络打印功能

1@ Language=VBScript 
 1   
 2Option Explicit   
 3  
 4Dim strSubmit 'Form中用来保存提交按钮的值   
 5Dim strPrinterPath 'Form中保存网络打印机路径的值   
 6Dim strUsername 'Form中用户名的值   
 7Dim strPassword 'Form中密码的值   
 8Dim strMessage 'Form打印内容的值   
 9Dim objFS 'VBScript中的文件系统对象   
10Dim objWSHNet 'WSH中的网络对象   
11Dim objPrinter '打印对象   
12  
13strSubmit = Request.Form("Submit")   
1<html>
2<head>
3<meta content="Microsoft Visual Studio 6.0" name="GENERATOR"/>
4</head>
5<body>   
6  

If strSubmit = "" Then

 1  
 2注意的是:   
 3由于这是演示,其中有关NT的帐号和密码都是使用了不加密的手段在ASP中传递的   
 4真正的运用中应该对该登录过程进行安全处理。   
 5<form action="ASPPrint.asp" id="form" method="POST" name="form">
 6<table align="center" border="0" cellpadding="1" cellspacing="1" width="100%">
 7<tr>
 8<td align="right" nowrap="">网络打印机路径:</td>
 9<td align="left" nowrap=""><input id="printerpath" name="printerpath" type="text" value="\\\&lt; Domain &gt;\&lt; Printer &gt;"/></td>
10</tr>
11<tr>
12<td align="right" nowrap="">登录帐号:</td>
13<td align="left" nowrap=""><input id="username" name="username" type="text" value="```
14 = strUsername 
15```"/></td>
16</tr>
17<tr>
18<td align="right" nowrap="">登录口令:</td>
19<td align="left" nowrap=""><input id="password" name="password" type="password"/></td>
20</tr>
21<tr>
22<td align="right" nowrap="">请输入你想打印的文字:</td>
23<td align="left" nowrap=""><textarea cols="20" id="message" name="message" rows="2"></textarea></td>
24</tr>
25<tr>
26<td align="right" nowrap=""> </td>
27<td align="left" nowrap=""><input id="submit" name="submit" type="submit" value="Submit"/></td>
28</tr>
29</table>
30</form>   
31  
32当以上信息被提交后,就可以按照下面的代码进行打印了。   

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 # " &amp; CStr(Err.Number) &amp; " " &amp; Err.Description)
Err.Clear
Else
' 操作成功,输出确认信息
Response.Write("<center>")
Response.Write("<table align="center" border="0" cellpadding="1" cellspacing="1" width="100%">")
Response.Write("<tr><td align="RIGHT"><b>打印消息送出:</b></td>")
Response.Write("<td align="LEFT">" &amp; strMessage &amp; "</td></tr>")
Response.Write("<tr><td align="RIGHT"><b>网络打印机路径:</b></td>")
Response.Write("<td align="LEFT">" &amp; strPrinterPath &amp; "</td></tr>")
Response.Write("<tr><td align="RIGHT"><b>登录帐号:</b></td>")
Response.Write("<td align="LEFT">" &amp; strUsername &amp; "</td></tr>")
Response.Write("</table>")
Response.Write("</center>")
End If
' 取消打印连接
objWSHNet.RemovePrinterConnection "LPT1:"
Set objWSHNet = Nothing
Set objFS = Nothing
Set objPrinter = Nothing
End If

1</body>
2</html>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus