我在Windows Vista with Office 2007上使用CScript运行以下.js文件:
var err = 0;
var app = WScript.CreateObject("Word.Application");
try {
var filename = WScript.StdIn.ReadLine();
var enc = filename.toLowerCase().indexOf(".txt") >= 0 ? 65001 : 1252;
var objDoc = app.Documents.Open(filename, false, true, false, " ", " ", false, " ", " ", 0, enc, true, false, 0, true);
objDoc.PrintOut(false, false, 0, " ", " ", " ", 0);
} catch (e) {
err = 1;
} finally {
app.Quit(0);
}
WScript.Quit(err);
代码的要点是它将接受来自stdin的文件名,并使用word打印该文档。我的问题是,对于我们正在测试的特定打印机,文档无法打印。我可以跟踪它是否执行.printout,并且没有任何错误,Winword进程是否按预期启动和终止(我可以在TaskManager中看到)。对于其他测试打印机,脚本工作正常。
我对这种类型的脚本有点陌生(写它的人正在度假…),对于如何解决这个问题有什么建议吗?
编辑:我已经隔离了打印输出调用,脚本的其余部分是不相关的,即使从Word文档内部调用activedocument.printout也与打印机有相同的问题。