以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  网络打印机不能设置纸张。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101718)

--  作者:baicaocao
--  发布时间:2017/6/6 10:06:00
--  网络打印机不能设置纸张。
 同志们,咨询个问题。。网络打印机用vba设置纸张的时候,为什么不能设置啊


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170606100523.png
图片点击可在新窗口打开查看


 Dim App As New Excel.Application
                App.Visible = True
                Dim Wb As Excel.Workbook = App.Workbooks.Open(fl)
                Dim Ws As Excel.Worksheet = Wb.Worksheets(1)
                App.Visible = False
                Dim ps As New Printing.PrinterSettings
                ps.PrinterName = drp("打印机")
                \'For Each ps1 As PaperSize In ps.PaperSizes
                \'    If ps1.PaperName = drp("纸张") Then
                \'        Ws.PageSetup.PaperSize = ps1.RawKind
                \'    End If
                \'Next

                Ws.PrintOut(ActivePrinter:=drp("打印机"))
                Wb.Save()
                App.Quit()

--  作者:有点色
--  发布时间:2017/6/6 10:16:00
--  

 你没有把网络打印机设置成默认打印机吧?

 

Dim obj As object = CreateObject("WScript.Network")
obj.SetDefaultPrinter(drp("打印机"))


--  作者:baicaocao
--  发布时间:2017/6/6 10:22:00
--  
必须设置成默认打印机才可以?
--  作者:有点色
--  发布时间:2017/6/6 11:00:00
--  
以下是引用baicaocao在2017/6/6 10:22:00的发言:
必须设置成默认打印机才可以?

 

你可以先记录之前的默认打印机,然后把默认打印机改成新的,打印后,再改回来。

 

也可以用下面的方法,处理,先设置activeprinter

 

on error resume Next

Dim App As New MSExcel.Application
Dim Wb  = App.Workbooks.Open("g:\\test.xls")
Dim Ws  = Wb.Worksheets(1)
Dim pname As String = "fax"
For i As Integer = 0 To 10
    app.activeprinter = pname & " 在 Ne" & Format(i, "00") & ":"
Next
output.show(app.activeprinter)

App.Quit()


--  作者:baicaocao
--  发布时间:2017/6/6 11:59:00
--  
试试先。。。