以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何设置默认打印机或指定打印机  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174773)

--  作者:流水
--  发布时间:2022/2/2 17:38:00
--  [求助]如何设置默认打印机或指定打印机
求助:

批量打印附件(pdf格式,以后也可能会有图片或者其他格式),下面代码直接调用默认打印机,写了一个窗口用来选择打印机,但不知道如何指定打印,或者修改默认的打印机;

Dim Proc As New Process
Proc
.File = "C:\\test.xls"
Proc
.Verb = "Print" \'指定动作

Proc.Start()


系统变量 不能设置默认打印机,只能返回默认的打印机

DefaultPrinter返回默认打印机的名称。


还有,是否可以指定打开文件的软件,有的PDF软件用上面代码直接打印时会报错;是否可以判断指定的软件是否已安装(是否存在);

[此贴子已经被作者于2022/2/2 17:55:04编辑过]

--  作者:有点蓝
--  发布时间:2022/2/5 11:32:00
--  
使用vba打印:http://www.foxtable.com/webhelp/topics/2121.htm
--  作者:流水
--  发布时间:2022/2/5 16:53:00
--  
好吧,以后找时间试一下;谢谢
--  作者:流水
--  发布时间:2022/2/6 20:14:00
--  
默认打印机没有使用 VBA 方式,感觉excel应该打不开pdf文件, 百度找了个 VB 代码,自己看不懂,瞎改居然可以用,不懂的地方自己也懒得去百度了,能用就行;

Dim WshNetwork As Object
WshNetwork = CreateObject("WScript.Network") ‘这句不知道什么意思’
Dim sPrintName As String
sPrintName = "Gestetner DSc1225ex PCL 6" \'要设置默认的打印机名称
With WshNetwork
    \'直接以打印机名称为参数设置默认的打印机
    .SetDefaultPrinter(sPrintName) ‘这句不知道什么意思’
End With
[此贴子已经被作者于2022/2/6 20:15:35编辑过]