我有一个用户需要打印大约 220 份文档,平均每份 2-3 页。使用 Windows 标准方法“全选 - 右键单击 - 打印”进行打印时,打印服务器或打印机本身会不堪重负。我正在寻找一个实用程序,可以让我一次处理 5 份文档,并处理给定目录中的所有文档。我希望这可以减轻打印服务器的压力,也让用户不必照看打印作业。我找到了一个可以让您在特定时间安排打印作业的程序,但(也许这不是一个大问题)程序中的拼写太糟糕了。
答案1
回答一个老问题来积累声誉点数:P
此 VBS 打开并打印一个 word 文档:
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("c:\scripts\inventory.doc")
objDoc.PrintOut()
objWord.Quit
此 VBS 循环遍历文件夹中的文件:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\Scripts"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
Wscript.Echo objFile.Name
Next
此 VBS 使 PC 等待 60 秒,以免打印服务器过载:
WScript.sleep 60000
综合起来:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\Scripts"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open(objFile)
objDoc.PrintOut()
objWord.Quit
WScript.sleep 60000
Next
将“objStartFolder”更改为 Word 文档所在的文件夹,并确保该文件夹中只有 Word 文档。将该代码保存到文本文件并将扩展名更改为“vbs”。它可以通过双击或通过 Windows 调度程序启动,因此您可以在半夜或晚上启动它。
答案2
(假设您说的是 MS Word)我绝对不是 Word 专家,但您可以使用一些 VBA 来实现这个目的,即从脚本启动 winword.exe。我见过有人这样做,但从未深入研究过,因此无法提供更多信息。