Word doc document.PrintOut不会打印到特定的打印机

时间:2009-12-12 07:46:49

标签: ms-word word-vba

我在Windows Vista上使用带有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中看到它)。对于我们的其他测试打印机,脚本可以正常工作。

我对这种类型的脚本有点新手(写这篇文章的人正在度假......),关于如何解决这个问题的任何建议?

编辑:我已经隔离了PrintOut调用,其余的脚本无关紧要,甚至从Word文档中调用ActiveDocument.PrintOut也会遇到与打印机相同的问题。

1 个答案:

答案 0 :(得分:0)

原来问题是objDoc.PrintOut中字符串中的空格(false,false,0,“”,“”,“”,0);呼叫。删除空格可以解决问题。