SDB:Purchasing a Printer and Compatibility

跳转到:导航搜索

问题

您打算购买一台打印机,或者您已经有一台打印机,并且想知道该打印机是否可以与 Linux 一起使用。

本文适用于 Linux 下 CUPS 版本高达 2.x,以及那里的传统过滤系统和后端。

如今的无驱动程序打印工作流程则大不相同。

流程

请查阅支持数据库文章 SDB:安装打印机 中列出的信息来源。

这些来源的准确性无法保证,因为 Linux 支持信息通常基于客户和用户的陈述。此外,“受支持”通常意味着“平均性能”,而不是“完全支持所有功能”。即使在受支持的打印机上,也通常无法使用制造商指定的最高分辨率或速度。

此外,即使在受支持的打印机上,打印输出在纸张上的大小和位置也可能存在细微差异,或者存在轻微的偏色,或轻微的视觉伪影,例如色带。

如果您需要桌面出版级别的打印质量,请考虑购买高质量的 PostScript 打印机(见下文)。PostScript 打印机可以直接打印应用程序的 PostScript 打印输出,而无需打印机驱动程序软件(通常“驱动程序”指特定设备型号的软件和数据)。这消除了打印输出可能与应用程序的 PostScript 打印输出不符的主要原因。

由于我们不希望偏袒任何制造商,因此我们无法提供任何特殊的硬件推荐。此外,理想的打印机始终取决于用户的个人需求。

常规信息

打印机平稳运行的最重要前提是使用合适的打印机。

打印系统 (CUPS) 的问题通常可以通过修改配置来解决。虽然可能无法满足所有愿望,但可以为大多数问题配置一个适当的解决方案。相比之下,由不合适的打印机引起的问题通常无法通过修改打印服务器的配置来消除。

技术信息

非 PostScript 打印机必须至少支持一种标准打印机语言,因为常用的免费软件打印机驱动程序只支持已建立且众所周知的标准打印机语言(请参阅 打印概念)。

打印质量(DPI 与 CPU 和内存使用)

许多黑白激光打印机支持 PCL5e 打印语言,但大多数低端打印机不支持。对于 PCL5e 打印机,Ghostscript 驱动程序 ljet4 和 lj4dith 可以工作,并且可以用于黑白打印的 600 dpi 分辨率,前提是打印机内部内存至少为 4 MB。如果内存不足,请参阅文章 SDB:激光打印机无法正常打印或根本不打印

为了在黑白激光打印机上高效地以 1200 dpi 打印复杂页面,打印机应具有至少 16 MB 的内部内存并支持 PCL6 或 PCLXL,从而能够使用 Ghostscript 驱动程序 lj5mono、lj5gray 或 pxlmono。

虽然 1200 dpi 相对于 600 dpi 几乎没有任何可见的改进,但它消耗的 CPU 性能和内存是 600 dpi 的四倍。与 300 dpi 相比,600 dpi 提供了更好的效果。因此,就打印质量以及 CPU 和内存使用而言,600 dpi 是一个不错的选择。

PostScript 打印机

根据其基本概念,PostScript 打印机是最佳选择,因为 PostScript 是 Unix/Linux 中的标准打印机语言(请参阅 打印概念)。然而,这仅适用于具有成熟 PostScript 实现和足够内存和计算能力以合理速度渲染复杂页面的高质量 PostScript 打印机。

通常,PostScript 打印机也支持 PCL5e 和 PCL6/PCLXL 打印语言,因此即使有问题 PostScript 文件也可以通过 PCL5e 或 PCL6/PCLXL 至少以黑白打印。通常,PostScript 打印机的最佳质量无法在 PCL5e 或 PCL6/PCLXL 模式下达到(例如,分辨率可能限制为 PCL5e 中的 600 dpi,或者在 PCL 模式下无法进行彩色打印)。尽管如此,PostScript + PCL5e (+ PCL6/PCLXL) 打印机是最通用的解决方案,因为此类设备几乎可以以可接受的质量打印任何可打印的内容。

一些 PostScript 打印机甚至可以直接处理 PDF 数据。上述内容也适用于 PostScript + PDF 打印机。

然而,为了规避驱动程序问题而购买高质量的 PostScript 打印机是不必要的,因为 PCL5e 或 PCL6/PCLXL 打印机也能提供出色的黑白打印效果。

相比之下,彩色激光打印机通常需要 PostScript 才能获得良好的打印质量。

尽管如此,如果设备支持以下功能,高质量的 PostScript 打印机与 CUPS 打印系统相结合是很有意义的:

  • 双面打印
    • 长边装订
    • 短边装订
  • 多个纸盒
    • 多个打印输出纸盒
    • 多个进纸盒
    • 多个不同尺寸纸张的纸盒
  • 各种内部打印设置
    • 分辨率
      • 300 dpi
      • 600 dpi
      • 1200 dpi
    • 每像素的颜色深度或灰度
      • 1(内存使用 1 位/像素)
      • 256(内存使用 8 位/像素)
      • 65536(内存使用 16 位/像素)
    • 饱和度
      • 少量墨粉(省墨模式)
      • 正常

一台不错的 PostScript 打印机总是附带制造商提供的合适 PPD 文件。CUPS 打印系统将 PPD 文件中定义的设置提供给所有用户和每个打印作业。

PostScript 打印机的潜在问题

在 PostScript + PCL5e (+ PCL6/PCLXL) 打印机上,上述选项通常仅在 PostScript 模式下可用并可组合。在 PCL5e 或 PCL6/PCLXL 模式下,选项受到限制。虽然可以设置分辨率并使用合适的驱动程序设置灰度类型(ljet4/lj4dith 或 lj5mono/lj5gray)和双面打印(ljet4/ljet4d),但这些选项不能自由组合。

PostScript 打印机通常在处理高度复杂的 PostScript 文件时遇到问题,特别是当 PostScript 打印机没有足够的内存来处理 PostScript 文件中嵌入的位图图形时。如果 PostScript 文件包含嵌入图形,则应通过降低 PostScript 文件本身的分辨率和颜色深度来解决问题(而不是打印机的分辨率设置)。一个 1200 x 1200 dpi 的位图图像消耗的内存是 300 x 300 dpi 的 16 倍。32 位颜色深度(例如 4 * 8 位 CMYK)消耗的内存是 1 位黑白模式的 32 倍。因此,一个 1200 x 1200 dpi 和 32 位颜色深度的位图图像消耗的内存是 300 x 300 dpi 分辨率下 1 位黑白模式下相同图像的 500 倍。

如果内置 PostScript 解释器支持的 PostScript 级别过低,PostScript 打印机也会出现故障。大多数较旧的 PostScript 打印机支持 PostScript level 2。然而,现在越来越多的应用程序默认生成 PostScript level 3。如果使用了特殊的 PostScript level 3 命令,PostScript level 2 打印机无法正常或完全无法打印这些数据。

如果内置字符集(字体)不包含所有必需的字符(字形),PostScript 打印机将输出错误。例如,大多数较旧的 PostScript 打印机无法直接打印欧元符号。如果应用程序提供 PostScript 输出中嵌入的必需字符集(字体),则可以解决此问题。

要打印什么

激光打印机与喷墨打印机

一台支持 PCL5e 打印语言且内部内存至少为 4 MB 的坚固黑白激光打印机是作为标准打印机(不带任何特殊扩展,如纸盒等)的良好选择。

您可能希望购买一个更复杂的型号,它允许以下扩展:

  • 双面打印单元
  • 附加纸盒
  • 网络连接
  • PostScript 模块 + 附加内存

届时,此类打印机可以升级为高质量的 PostScript 打印机。或者,您可以推迟购买带有所需所有扩展的完整高质量 PostScript 打印机,直到您真正需要它。

对于彩色打印,坚固的喷墨打印机可能是一个合适的选择。另外,彩色激光打印机应该真正支持 PostScript 才能获得良好的彩色打印效果。如果您需要照片级质量,喷墨打印机应至少由以下驱动程序之一支持:

HPLIP 和 Gutenprint 从 openSUSE 发布以来一直包含在内,自 openSUSE 12.1 起,"Epson Inkjet Printer Driver (ESC/P-R) for Linux" 以 RPM 包 epson-inkjet-printer-escpr 的形式提供。

关于支持状态的信息

请参阅文章 SDB:安装打印机 中列出的 URL。

您也可以直接向制造商获取有关打印机型号 Linux 支持状态的信息,因为制造商最能测试 Linux 下的型号(特别是新型打印机型号)。这将揭示各个打印机制造商在 Linux 支持级别上的差异。

如果制造商无法提供有关您的打印机型号的任何 Linux 相关信息,请按以下步骤操作:

检查您的打印机是否与 Linux 支持的型号兼容,并使用相应兼容型号的 Ghostscript 驱动程序。

“在 Linux 下兼容”意味着您的打印机可以使用与兼容打印机型号相同的二进制控制序列进行正确寻址,即不需要特殊的驱动程序(例如,适用于 Windows)来模拟打印机语言,请参阅文章 SDB:GDI 打印机

相似的打印机名称不一定意味着兼容性。即使名称相似的打印机也可能无法直接理解相同的打印机语言。打印机语言通常在打印机手册的打印机规格下指定。如有必要,请咨询制造商您的打印机直接支持哪种打印机语言。

拥有准确的型号名称至关重要!

准确的型号名称是强制性的,因为型号名称上的微小差异可能会导致支持状态的巨大差异。

例如,当设备标记为“ACME FunPrinter 1000 XL+”时,请使用其全名,而不是任何形式的缩写,例如“ACME 1000 XL”,因为可能存在不同的型号“ACME FancyPrinter 1000 XL”,即使是像“+”这样微小的细节也可能决定特定型号是否工作,例如,“ACME FunPrinter 1000 XL+”可能是一台 PostScript 打印机,而“ACME FunPrinter 1000 XL”可能是一台所谓的 GDI 打印机,因为微小的“+”表示“支持 PostScript”。

一些示例(有关详细信息,请参阅 http://hplipopensource.com 上的“支持的打印机”)

  • HP LaserJet 1018 仅在 HPLIP 2.7.10 版之后才受支持,并且需要从 HP 下载专有的仅二进制驱动程序插件。相比之下,HP LaserJet 1015 是一款 PCL 打印机,长期以来一直受 HPLIP 以及可能受多个适用于 PCL 打印机的 Ghostscript 驱动程序支持。
  • HP Color LaserJet 2600 仅在 HPLIP 3.9.2 版之后才受支持,并且需要从 HP 下载专有的仅二进制驱动程序插件。相比之下,HP Color LaserJet 2605 是一款 PostScript 打印机,不需要 HPLIP 或任何其他驱动程序。

特别注意,更高的型号数字并不总是意味着更好的支持状态。

更糟糕的是,曾出现过一些特别糟糕的案例,打印机制造商推出了一个同名但使用不同打印机语言的后续型号,因此需要不同的驱动程序,或者没有现有驱动程序能够工作,参见 https://en.opensuse.net.cn/SDB:Printer_buying_guide#Windows_.2F_GDI_printers

标准打印机语言示例

  1. ASCII 文本
    通常,每台打印机都应该能够直接打印 ASCII 文本。然而,专门为 Windows 设计的 GDI 打印机无法打印 ASCII 文本或以下任何一种标准打印机语言的数据。此外,有些打印机无法直接打印 ASCII 文本,但可以通过以下某种标准打印机语言进行寻址。
  2. PostScript level 2 或 level 3
    虽然相对昂贵,但直接理解 PostScript level 2 或 level 3 的打印机最易于使用,因为 PostScript 是 Unix/Linux 中的标准打印机语言。
    为了确保打印复杂文档不会太慢,请检查打印机内置 PostScript 解释器的运行速度。如果使用非 PostScript 打印机,则打印输出将通过 Ghostscript 以以下其中一种标准打印机语言生成。
  3. PCL5e 或 PCL6
    直接理解 PCL5e(通常简称为 PCL5)或 PCL6 的打印机应与 Ghostscript 驱动程序 ljet4 配合使用,最高分辨率为 600 x 600 dpi。
  4. PCL4 或 PCL5
    直接理解 PCL4 或 PCL5 的打印机应与 Ghostscript 驱动程序 laserjet、ljetplus、ljet2p 或 ljet3 配合使用。但是,分辨率限制为 300 x 300 dpi。
  5. PCL3
    直接理解 PCL3 的打印机应与 Ghostscript 驱动程序(如 deskjet、hpdj、pcl3、cdjmono、cdj500、cdj550 等)配合使用。
  6. ESC/P2 或 ESC/P
    直接理解 ESC/P2 或 ESC/P 的打印机应与 Ghostscript 驱动程序(如 epson 或 stcolor)配合使用。
  7. ESC/P-R
    直接理解 ESC/P-R 的打印机应与精工爱普生公司开发并由 AVASYS 公司在 GPL 下分发的“Epson Inkjet Printer Driver (ESC/P-R) for Linux”配合使用。

如果您的打印机不受支持

如果您的打印机没有可用的 Linux 驱动程序,请通知制造商并提请他们注意文章 SDB:致打印机制造商关于 Linux 支持的信息

更多信息