代码之家  ›  专栏  ›  技术社区  ›  Roy Tang

Word Doc document.printout无法打印到特定打印机

  •  0
  • Roy Tang  · 技术社区  · 16 年前

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

    1 回复  |  直到 16 年前
        1
  •  0
  •   Roy Tang    16 年前

    结果发现问题在于objdoc.printout中字符串中的空格(false,false,0,“”,“”,“”,0);调用。移除这些空间解决了问题。

    推荐文章