我正在尝试使用包含文本(而不是文本文档)的变量从VBS打印到默认打印机。出于优化原因,我试图不使用命令行或文本文档。
我找到了一个脚本,该脚本解释了一种在网络打印机上执行此操作的方法,这是最佳选择,但是我无法使其正常工作。
此外,它的端口标记为LPT,这令人困惑,因为它应该是TCP端口。另外我也不知道为什么端口只能是1到4,而端口应该是9100。
sPrtName = "\\xxx.xxx.xxx.xxx\Printer"
nPort = 9100 ' pick 1 to 4
Set oPrt = GetPrtPort(sPrtName, nPort)
oPrt.Write "'" & strFileText & "'"
oPrt.Close
RemovePort nPort
Function GetPrtPort(sPrtSpec, nPortNumb)
Dim sPort: sPort = "TCP" & nPortNumb
With CreateObject("WScript.Network")
On Error Resume Next
.RemovePrinterConnection sPort
.AddPrinterConnection sPort, sPrtSpec
On Error Goto 0
Set GetPrtPort = CreateObject("Scripting.FileSystemObject").OpenTextFile("\\xxx.xxx.xxx.xxx\label.txt", 1)
strFileText = GetPrtPort.ReadAll()
strFileText = Replace(strFileText, "QUANTITY", "9999999999" )
End With
End Function
Sub RemovePort(nPortNumb)
Dim sPort: sPort = "TCP" & nPortNumb
On Error Resume Next
CreateObject("WScript.Network").RemovePrinterConnection sPort
On Error Goto 0
End Sub