如果我使用 CUPS,客户端是否应该在本地安装驱动程序?
示例:假设我们有 1 台装有 Linux 的联网 PC、1 台打印服务器(或 CUPS、Samba 打印服务器)
如果Linux PC想要通过打印服务器打印文档,Linux PC是否需要安装其要使用的打印机的驱动程序?
或者它使用一些通用的API?
答案1
运行 CUPS 的打印服务器是唯一需要安装驱动程序的机器。读关于 Wikipedia 上的 CUPS例如 - 在概述部分它非常清楚地说明了这一点:
CUPS 允许打印机制造商和打印机驱动程序开发人员更轻松地创建在打印服务器上本机工作的驱动程序。处理发生在服务器上,与其他 Unix 打印系统相比,可以更轻松地进行基于网络的打印。安装 Samba 后,用户可以对远程 Windows 计算机上的打印机进行寻址,并且可以使用通用 PostScript 驱动程序通过网络进行打印。
否则,运行 CUPS 的真正好处是什么?
答案2
如果您使用 Samba/CUPS 作为基于 Windows 的客户端的打印服务器,那么客户端通常会有该打印机的驱动程序,尽管在某些情况下 CUPS 可以进行自己的转换。例如,可以设置 Ghostscript 并渲染 postscript 以在非 PS 打印机上显示,尽管 Windows 客户端需要一个与之配合良好的 PS 驱动程序。
对于 Linux 客户端来说,答案是:很复杂,但其实并不复杂。传统的 Unix/Linux 没有相当于 Windows GDI 的标准本机打印或渲染 API,尽管诸如开罗可以为使用它们的应用程序提供此功能。大多数传统的 UNIX 应用程序只是将 ASCII 打印到标准输出或本地生成 Postscript 文件。与设备无关的渲染库(例如 Cairo)将仅通过其自己的驱动程序渲染到 Postscript,该驱动程序将与库捆绑在客户端上。
您几乎肯定会在 CUPS 或较旧的 lpr/lpd 打印系统的工作流程中的某个位置找到 Postscript。通常,客户端将生成 ASCII 或 Postscript 输出。 ASCII 输出将通过 a2ps 和 Postscript 之类的东西进行转换。 Postscript 将传递到打印机或基于 Ghostscript 的渲染层。
自从我设置基于 Linux 的打印子系统以来已经有一段时间了,但是 IIRC PS 驱动程序非常通用,只有目标打印机的 PPD 文件。客户不一定需要了解太多。传统上,您只需设置以不同方式打印的队列(例如双面打印、非双面打印或信头纸),它们就会成为单独的打印目的地。
如果您使用的应用程序具有本地打印机控制功能,例如使用GNOME 打印API,或直接打印文件lpr -o
选项,然后打印设备可以对实际打印机目标进行更多控制。例如,可以选择特定的托盘或双面打印选项。如果 CUPS 服务器上安装的打印机有正确的 PPD 文件,那么这些选项应该可以在客户端上运行,而不需要客户端安装其他驱动程序软件。
编辑:就你的情况而言,我认为问题可能在于 LBP810 是一个 winprinter,并且从来没有为其制作任何 Linux 驱动程序。您最好的选择可能是购买一台不同的打印机,如果方法正确的话,这可以非常便宜地完成。
二手激光打印机在 Ebay 上非常便宜,您可以花 10 美元购买 Laserjet 4100 或类似的打印机约100美元,取决于您所在的位置。所有中端 HP 激光器均支持 Postscript 或 PCL5/6,并且可以与 Linux 和 CUPS 良好配合。您应该可以轻松地使用其中一个,而且二手的非常便宜,您可以将它们视为一次性物品。