VBScript中的共享打印机打印命令

时间:2013-01-29 05:48:16

标签: c# .net vb.net vbscript

我正在尝试创建一个批处理文件(使用VB脚本)以打印doc文件,但我面临的问题是,打印机是我们办公室的共享打印机,当我运行以下代码时,它说“由于当前打印机设置有问题,Windows无法打印”。这是我的代码

Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("C:\Users\Iqbaltaj\Downloads\Test.docx")

objDoc.PrintOut()
objWord.Visible        = False
objWord.ScreenUpdating = False
objWord.ActiveDocument.PrintOut False
objWord.ActiveDocument.Close 0 
objWord.Quit
Set objWord = Nothing

我的共享打印机的位置是“\\ cap003 \ HP LaserJet P3005 PCL6”。 请告诉我应该添加哪些代码行,以便打印文档。 谢谢。

2 个答案:

答案 0 :(得分:0)

尝试objWord.PrintOut()代替objDoc.PrintOut() 您也可以添加打印机设置,试试这个:

Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("C:\Users\Iqbaltaj\Downloads\Test.docx")

objWord.WordBasic.FilePrintSetup(Printer:="HP LaserJet P3005 PCL6", DoNotSetAsSysDefault:=1)
objWord.PrintOut()
...
objWord.Documents.Close()
objWord.Quit()

这是假设“HP LaserJet P3005 PCL6”是该打印机的名称(当然)。
您可以通过PrinterSettings.InstalledPrinters检查安装的打印机。

答案 1 :(得分:0)

如果我发现这个example code是正确的,那么语法就是......

objWord.WordBasic.FilePrintSetup "HP LaserJet P3005 PCL6", , , 1

好吧,如果没有任何帮助,这里有更多可以尝试......

Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections

strPrinterName = "HP LaserJet P3005 PCL6"
strPrinterPath = "\\cap003\" & strPrinterName
bIsMapped = False

For i = 0 to oPrinters.Count - 1 Step 2
    If strPrinterName = oPrinters.Item(i+1) Then
        bIsMapped = True
        Exit For
    End If
Next

WScript.Echo "Mapped: " & bIsMapped

If Not bIsMapped Then
    WshNetwork.AddWindowsPrinterConnection strPrinterPath
End If