我设置了一个简单的节点服务器,用于自动图像打印。
代码:
var directory = process.env['USERPROFILE'] + '\\Downloads\\';
var command = 'rundll32 C:\\Windows\\System32\\shimgvw.dll ImageView_PrintTo /pt "' + directory + imageName + '" "EPSON TM-C3500"';
exec(command, function(error, stdout, stderr){});
命令字符串:
rundll32 C:\Windows\System32\shimgvw.dll ImageView_PrintTo /pt "C:\Users\gperry\Downloads\badge_0_12968249.jpg" "EPSON TM-C3500"
如果我在cmd.exe进程中运行该命令它可以正常工作,但exec命令似乎什么都不做...运行其他命令与exec像“mspaint / pt”工作得很好,所以我不喜欢我知道这里发生了什么。
非常感谢帮助!感谢。
答案 0 :(得分:1)
我为任何关心的人找到了解决方案。
我更改了命令以执行对批处理脚本的调用,然后调用打印命令。
var directory = process.env['USERPROFILE'] + '\\Downloads\\';
var command = 'start cmd.exe /C ' + __dirname + '\\print.bat ' + directory + imageName + ' "EPSON TM-C3500"';
exec(command, {}, function(error, stdout, stderr){});
然后批处理脚本无效......为什么?我不知道。我知道在批处理脚本中添加一个TIMEOUT 0来修复它。
TIMEOUT 0
rundll32 C:\\Windows\\System32\\shimgvw.dll ImageView_PrintTo /pt %*