2009-12-12 116 views
0

我有以下的.js文件正在运行使用CSCRIPT在Windows Vista上使用Office 2007:Word文档document.PrintOut不会打印到特定打印机

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与打印机有相同的问题。

回答

0

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