0

我正在尝试创建一个批处理文件(使用 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”。请告诉我应该添加哪一行代码才能打印文档。谢谢。

4

2 回答 2

0

如果我发现的这个示例代码是正确的,那么看起来语法是......

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
于 2013-01-29T17:26:13.040 回答
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
检查安装的打印机。

于 2013-01-29T06:08:41.783 回答