我一直在尝试使用记事本将文件打印到特定的打印机。当我将有问题的打印机设置为默认打印机时,我设法让它工作。
这是我用来实现此目的的代码:
Shell("NOTEPAD /P C:\Temp\test.txt")
我遇到的问题是,当它不是默认打印机时,我需要将文件发送到这台打印机。
某些应用程序(包括记事本)支持printto
命令。记事本是/pt printername
. 您可能需要进行一些试验才能使打印机名称恰到好处 - 我相信它是在控制面板中看到的打印机名称,但它可能是设备或驱动程序本身的名称。(一些快速测试应该可以帮助您确定哪个适用。)
Shell("NOTEPAD /PT MyLaserJet C:\Temp\test.txt")
当然,此问题的正确解决方案是更改您的应用程序,使其不用于Shell("notepad",...)
打印,而是将文本发送到打印机本身。然后,您可以让用户设置打印机一次,保存该配置,然后每次都自动将文本发送到正确的打印机。使用外部应用程序来完成您的应用程序应该完成的工作是一种解决方法,而不是解决方案。:-) 我不能建议你怎么做,因为你没有提供关于你的应用程序的信息。不过,这里有很多与几乎所有语言和平台的打印相关的问题 - 您可能会找到一个可以让您开始进行一些搜索的问题。
我无法从 excel 2013 中获得上述内容。不知道为什么。
以下对我有用:
外壳(“NOTEPAD /PT” & Chr(34) & “文件名” & Chr(34) & Chr(34) & “打印机名称” & Chr(34))