我今天在工作中遇到了这个问题,但我没有好的答案。详细地说,我们有一个共享多台打印机的 Windows 打印服务器。如果您使用 Windows 客户端连接到此打印机共享,它会安装打印机驱动程序。这是为什么?打印服务器的吸引力之一是您可以向其发送文件,并在打印服务器上而不是在本地计算机上完成处理。
对于没有 64 位驱动程序的旧打印机来说,这个问题尤其严重。当我们迁移到 Windows 7 时,我们无法使用打印机,尽管打印服务器可以很好地与他们通信。Windows 7 无法使用它们,因为它无法获取 64 位驱动程序。
我能找到的唯一解决方法是设置一个 cups 服务器,以 postscript 形式接受所有内容,然后对每台打印机进行正确的处理。为什么 windows 会这样工作?我还有其他选择吗?
答案1
您自己已经回答了这个问题,因为您的 CUPS 服务器接受所有内容作为 PostScript。
每台打印机都有不同的功能、性能和支持,这就是不同打印机需要不同驱动程序的原因。请记住,Postscript 和 PCL 不是必需的。
在讨论文本和简单的黑白激光打印机时,很容易规避这个问题,但要将其发挥到极致。您在 MS Word 中有一本 50 页的小册子,并且想要打印到大型复杂的多功能打印机上。首先,您将在哪里配置双面打印,从哪个纸盘取纸?这些选项来自打印驱动程序 - 那么打印服务器是否应该解释这些选项并以某种方式将其显示给客户端?
其次,当你点击打印时,确切地MS Word 打算如何处理此文档?将其作为原始文档发送 - 想象一下处理开销?或者也许 MS 可以开发自定义通用驱动程序 - 完全有可能,但它不太可能支持复杂的功能,也不能保证成功。
One of the appeals of a print server is that you can send it a file, and have the processing done on the print server, rather than at your local machine
无论如何,我认为这是不正确的。打印服务器是为了集中管理和分发,而不是为了减轻工作负担。
您是否考虑过在打印服务器上简单地添加一个不同的基本 64 位 postrscript 驱动程序?这可能会让您获得与 CUPS 解决方案相同的结果,而且混乱程度更低。
答案2
客户端电脑上的驱动程序基本上将打印作业转换为打印机可以理解的内容 - 有时可能是 PCL 或 PS 之类的内容,但在某些情况下,它会是一些仅由该品牌/打印机使用的更晦涩的内容。
基本上,服务器只是保存这个准备好的打印作业,并将它们排队,然后才能将其发送到相关的打印机。但是,服务器还需要知道如何与打印机通信,并且能够从服务器打印很方便,因此需要服务器上的驱动程序。
我简要研究过的一个解决方法是设置一个 7x64 打印服务器,这似乎可以解决问题,但我最终使用的方法是为 win7x64 电脑创建图像,该电脑已经安装了我们组织中正在使用的所有打印驱动程序,因此在部署时,它需要连接到已经有驱动程序的打印机。
此外,我发现有大量驱动程序从 Server 2003/x86 服务器成功安装到 7x64 客户端,因此测试的 7x64 打印服务器实际上从未投入生产。
然而,这些方法最终会导致客户端和服务器上的驱动程序版本不匹配,这根本不是最佳实践,并且在 7x64 上使用 xp/x86 驱动程序也不能被视为最佳实践,但这节省了从 03 到 08 升级大量服务器的时间,这在当时是升级的最大原因,所以不幸的是我不得不求助于这些方法。
此外,通用的 PostScript 驱动程序并不总是像您希望的那样好 - 我们有大量与 7x64 不兼容的 HP 商务喷墨 2600/2800,尝试使用不适用于它们的 HP 通用 ps 驱动程序(我确保在测试之前为每台打印机添加一张 PS 卡)。
内置驱动程序 +1 - 我在制造商的网站上发现一些打印机不支持 win7,但 Win 7 本身可以毫无问题地加载驱动程序。