我正在尝试与第三方支持合作开发一款名为 Mercury 的财务程序。该程序表示已通过其“调度程序”成功打印了一份报告,但实际上从未打印过任何内容。大约一年前它还能正常工作,但从那以后就不行了。它以一种复杂的方式访问打印机,甚至支持人员似乎都无法向我解释,但基本上它没有显示托管软件的服务器、共享打印机的服务器或运行该软件的计算机上正在通过假脱机/队列的作业。如果有作业创建,它似乎要么立即被拒绝而没有警告,要么消失得像已经打印一样。支持团队希望我证明这不是权限问题,但我发现打印机权限没有问题,打印过程中的任何时候都没有错误。
有没有一个好的方法可以证明软件在没有看到队列中的作业的情况下是否正在尝试正确打印?我愿意查找日志、运行第三方工具等。
我在服务器或计算机上的 Microsoft-Windows-PrintService/Operational 中也没有看到任何事件日志。
这是带有 Windows7/8 工作站的 Windows Server 2012 环境。
答案1
你可以尝试这个:
将驱动程序(在执行打印的 PC 上)连接到 FILE:,从打印机属性 > 端口。然后它会要求输入文件名,然后您就可以检查该文件。
您还可以尝试阻止删除正常打印队列文件。选择正常端口后,转到设备和打印机。右键单击打印机并选择打印机属性。单击高级选项卡,然后勾选“保留打印文档”复选框。这样,打印作业就不会从队列中删除。无论队列是什么系统,都需要执行此操作。如果 PC 通过服务器打印,则服务器就是服务器。如果 PC 直接打印(TCP/IP、USB、并行等),则需要在该 PC 上执行此操作。
当然,所有这些都假设该程序使用 Windows 驱动程序进行打印。如果不是,那么一切都将不复存在。