YaST Printer

(重定向自 )
跳转到:导航搜索
yast2-printer

YaST2 - 打印机配置

openSUSE 下载

供应商: openSUSE
开发者: User:JsmeixopenSUSE:YaST_team
许可: GPL



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

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

关于

YaST 打印机模块是 YaST 的一部分,用于在 openSUSE 中安装和配置打印机。YaST 打印机模块可以在 YaST 控制中心中的 硬件 -> 打印机 下找到。

如果您没有可用的图形界面,也可以在文本模式下使用 YaST 并配置相同的功能,尤其是在通过慢速纯文本连接从远程登录时。

自 openSUSE 11.1 起,YaST 打印机模块被完全重写,请参阅 Archive:YaST 打印机重新设计。其中,请特别注意“基本设计理念”和“基本实施原则”部分。

特性

  • 设置直接连接的打印机(通常是 USB 打印机)
  • 设置网络打印机(具有内置网络接口的打印机)
  • 配置如何在网络中打印(也包括非 Linux 系统)
  • 安装 openSUSE 打印机驱动程序软件包

打印基础

打印设备不直接被用户应用程序程序使用,而是通过打印队列使用。当各种应用程序程序同时提交打印作业时,这些作业被放入队列中,并逐个发送到打印设备。

通用 Unix 打印系统 (CUPS) 是用户和打印机之间的服务器。应用程序程序将它们的打印输出发送到 CUPS,CUPS 将打印作业排队并逐个处理它们。

对于每个打印作业,CUPS 运行打印机驱动程序并将打印机驱动程序的输出发送到打印设备。打印机驱动程序生成最终的特定于打印机的的数据,从而使打印机能够打印。

为此,CUPS 必须知道哪个打印机驱动程序属于打印设备以及打印设备如何连接到计算机,以便 CUPS 可以将打印数据发送到打印设备。

因此,“设置打印机”意味着“设置打印队列”并告诉 CUPS 针对特定队列

  • 打印设备如何连接到计算机。
  • 哪个打印机驱动程序属于打印设备。

请参阅 Concepts printing 以获取有关打印基础知识的更多信息。

打印要求

自动打印机配置

直到 openSUSE 13.2,YaST 打印机模块在安装 openSUSE 系统时运行。此时,YaST 打印机模块尝试以自动方式设置打印机。自 openSUSE Leap 起,YaST 打印机模块不应在安装 openSUSE 系统时自动运行。自 openSUSE 11.4 起,自动打印机配置也可以通过运行系统中的 YaST 打印机模块中的“自动配置”来触发。对于每个自动检测到的本地连接的打印机,YaST 会测试是否已经存在配置。如果尚未配置,YaST 会尝试为打印机找到匹配的驱动程序,如果找到,则配置打印机。生成的配置与在“添加新打印机配置”对话框中选择自动检测到的打印机并接受所有预选值(如下所示)基本相同。

直接连接的打印机也可能被其他软件和/或打印机设置工具完全自动配置。

有两个其他软件软件包实现了在 USB 打印机连接到系统以及从系统断开连接时,完全自动化的打印机设置。

  • 直到 openSUSE 11.1,存在一个名为 cups-autoconfig 的软件包,它不是 CUPS 的一部分,而是一个用于为 CUPS 配置自动检测到的 USB 打印机的独立工具。
  • 自 openSUSE 11.2 起,cups-autoconfig 被 udev-configure-printer 替换,其中通过“70-printers.rules”文件中的 udev 规则实现完全自动化的 USB 打印机设置。

完全自动化的打印机设置取决于安装了哪些软件软件包。如果不需要完全自动化的打印机设置,则应删除相应的软件软件包。

有各种打印机设置工具。

  • YaST 打印机模块
  • Gnome 打印机设置工具 (system-config-printer)
  • KDE 打印机设置工具
  • CUPS Web 前端 (https://:631/admin)
  • CUPS 命令行工具 (lpadmin 和 lpinfo)
  • 惠普的 HPLIP 驱动程序设置工具“hp-setup”(仅适用于惠普设备)

哪些工具可以自动启动取决于安装了哪些软件软件包、正在运行哪些打印机自动检测软件以及正在运行的桌面环境。

使用 YaST 打印机模块进行手动打印机配置

YaST 打印机模块的主要目的是手动配置。 “手动”意味着您拥有完全的控制权,可以设置什么。 没有静默工作的隐藏自动化,它会产生自动化“认为”对您最好的结果。 但是,“手动”并不意味着您完全被抛弃。 当有多种选择可用时,YaST 打印机模块会尽力预先选择似乎最合适的项目。 在大多数情况下,接受预选内容应该可以很好地工作,但您仍然可以自由选择另一个选项。 只有当尽力尝试未能确定合适的选择时,您才被迫做出决定。 这看起来可能很烦人,但它至少会使您意识到实际设置的内容,从而避免您在打印不起作用时对设置出现问题一无所知。

如果任何类型的自动打印机设置都没有产生有效的工作打印机配置,则自动化可能会让您独自一人。 在这种情况下,您应该尝试使用 YaST 打印机模块进行手动配置。 它至少可以指示故障点,如果它无法预先选择任何似乎合适的内容。

打印机配置对话框

当 YaST 打印机模块启动时,它会显示打印机配置。 此对话框一目了然地显示了所有可用的打印队列(本地和远程队列),以及所有可能的配置任务。

“本地/远程队列”和“本地/远程打印机”之间存在差异

  • “本地队列”是指配置在本地计算机上(严格来说,是 YaST 打印机模块运行的计算机)的打印队列,通常是用户坐在其前的计算机。
  • “远程队列”是指存在于网络中的任何计算机或任何网络打印机上的打印队列。
  • “本地打印机”是指直接连接到本地计算机(通常是 USB 打印机)的打印机设备。
  • “远程打印机”是指未直接连接到本地计算机的打印机设备(通常是具有内置网络接口的打印机)。

只能使用 YaST 打印机模块配置本地打印队列。 但是,本地打印队列可以设置为本地打印机和远程打印机。 打印机设备如何连接并不重要,重要的是在 YaST 打印机模块运行的计算机上是否存在打印队列配置。

每个打印队列都有一个任意的队列名称。 通常,队列名称在某种程度上类似于打印机型号名称或打印机型号名称的缩写,再加上提示打印输出类型或其他附加信息,例如

  • ACME_FunPrinter_1000
  • FP1000_mono
  • FP1000_color
  • FP1000_duplex
  • FP1000_mono_room123
  • FP1000_color_room123
  • FP1000_mono_room456
  • FP1000_color_duplex_room456

队列名称仅允许字母(a-z 和 A-Z)、数字(0-9)和下划线“_”,并且必须以字母开头。 CUPS 不区分大小写,例如,“FP1000_mono”和“fp1000_mono”被视为相同的名称。

可选地,打印队列可以具有文本描述。 通常,这描述了打印机型号和使用的打印机驱动程序或其他可用功能,例如

  • ACME FunPrinter 1000 PCL
  • ACME FunPrinter 1000 PostScript
  • ACME FunPrinter 1000 PostScript with duplex unit

可选地,打印队列可以具有文本位置。 这描述了打印机设备的位置,例如

  • 一楼 23 号房间
  • 四楼 56 号房间

应用程序程序可能既不显示文本描述也不显示文本位置。 因此,仅队列名称应提供足够的信息,以便用户可以注意到产生的打印输出类型以及打印机设备所在的特定位置(尤其是在大型位置)。

可以将其中一个打印队列设置为默认使用。 应用程序程序应使用这样的系统默认打印队列,除非用户指定了其他打印队列。 但是,没有“唯一”的默认队列。 除了系统默认队列之外,任何用户都可以维护自己的默认队列设置,此外,任何应用程序程序都可以实现其自己特定的默认队列设置方式(例如,应用程序程序可以记住先前使用的队列),请参阅 SDB:Print Settings with CUPS

打印队列状态如下之一

  • 就绪:队列接受打印作业并且已启用打印。
  • 打印输出禁用:队列接受打印作业但不打印它们。
  • 拒绝打印作业:队列不接受新的打印作业,但继续打印已在队列中的作业。
  • 拒绝打印作业,打印输出禁用:队列既不接受新的打印作业,也不打印已在队列中的作业。

特别是对于大型位置,许多用户持续提交打印作业时,当需要进行打印机设备维护时,管理员只会禁用打印,以便用户仍然可以提交打印作业,然后进行打印机设备维护,最后重新启用打印。 相比之下,如果需要删除打印机设备及其打印队列,管理员只会拒绝打印作业,以便用户无法提交新的打印作业,但继续打印已在队列中的作业,直到队列为空。 然后可以删除队列,最后可以删除打印机设备。 如果出现未识别的打印队列或打印机设备问题,管理员首先拒绝打印作业并禁用打印以停止任何活动,然后查看实际问题是什么。

可以从打印机配置对话框执行以下配置任务

  • 单击“添加”按钮以设置新的打印队列。 这将启动“添加新打印机配置”对话框。
  • 选择现有的本地打印队列,然后单击“编辑”按钮以修改打印队列配置。 这将启动“修改”对话框。
  • 选择现有的本地打印队列,然后单击“删除”按钮以删除打印队列。
  • 选择“通过网络打印”以配置如何在网络中的远程队列或远程打印机上从本地计算机打印。
  • 选择“共享打印机”以配置其他使用远程计算机的用户如何通过网络访问您的本地打印队列。

每个配置任务都返回到打印机配置对话框,您可以在其中执行更多配置任务或通过“确定”按钮退出 YaST 打印机模块。

添加新打印机配置对话框

记住打印基础知识:设置打印机意味着设置打印队列并告诉 CUPS

  • 打印机设备如何连接。
  • 哪个打印机驱动程序属于打印设备。
  • 应该使用哪个队列名称。

因此,在添加新打印机配置对话框中,您必须

  1. 选择匹配打印机设备的连接。
  2. 找到并分配合适的打印机驱动程序。
  3. 设置队列名称。

连接

连接确定数据如何发送到打印机设备。 如果选择了错误的连接,则无法将任何数据发送到设备,因此无法进行任何打印输出。 如果选择了不正确的连接,则可能无法可靠地发送数据到设备,因此打印输出可能会中断。

对于一个相同的物理连接(例如,USB 或网络电缆),可能有几种连接方法。 如果可以通过多种连接方法自动检测到打印机设备,则可以针对每种连接方法显示它。 这意味着相同的打印机设备可以通过多种方式列出,当它可以通过多种方式访问时。

特别是 HP USB 打印机通常可以通过通用“usb:/...”和 HP 特定的“hp:/...”连接访问。 后者由 HP 的驱动程序包 HPLIP 提供。 对于纯打印,两种连接方法都应该可以工作,但对于其他任何内容(例如,通过 HP 的“hp-toolbox”进行设备状态,或使用 HP 一体机进行扫描),必须使用“hp:/...”连接。

YaST 打印机模块不会实现任何打印机自动检测。 它仅显示 CUPS 已经自动检测到的打印机连接(即,当您以 root 身份运行 CUPS 命令行工具“lpinfo -l -v”时显示的内容,请参阅 SDB:CUPS in a Nutshell)。 如果 CUPS 无法检测到本地打印机连接,则它无法将数据发送到它,因此无法打印。 因此,YaST 打印机模块以某种方式显示 CUPS 未自动检测到的本地打印机连接是没有意义的。

最初仅显示本地打印机连接(即可以通过通用“usb:/...”连接访问的USB打印机,以及可以通过HP特定“hp:/...”连接访问的打印机),并且对于HP设备,优先选择“hp:/...”连接。单击“检测更多”按钮会显示CUPS自动检测到的所有连接。特别是,一些通过USB连接但行为不符合常规USB打印机的“特殊”打印设备无法通过通用的“usb:/...”连接方法访问,而是需要其他特殊的连接方法。这些连接方法由所谓的CUPS后端提供(参阅SDB:CUPS in a Nutshell中的“什么是CUPS后端以及它的工作原理?”)。当对于“特殊”打印设备存在匹配的“特殊”CUPS后端时,该后端可以自动检测到这些设备。最终,这意味着对于“特殊”打印设备,单击“检测更多”按钮可能会显示它们。

如果在单击“检测更多”按钮后未显示本地打印机,则CUPS无法自动检测到该设备。在这种情况下,通常是设备存在低级别通信问题(也许打印机只需要打开电源)。例如,如果CUPS未自动检测到USB打印机,但“lsusb”命令的输出中列出了该打印机,则可能的原因之一是内核模块“usblp”未加载,请参阅SDB:Installing a Printer

CUPS是否可以自动检测网络打印机取决于特定的打印机型号。通常,这仅适用于可以通过本地网络环境中的一些通用SNMP查询检测到的网络打印机(通常适用于具有制造商内置网络接口的HP和京瓷打印机)。

自动检测到的网络打印机显示为“socket:/...”连接,这是向网络打印机发送数据最简单、最快且通常最可靠的方法,请参阅SDB:Printing via TCP/IP network

如果CUPS无法自动检测到网络打印机,或者您希望通过打印服务器机器打印(例如,通过Windows或Samba服务器打印,或通过传统的Unix服务器打印),则必须通过“连接向导”手动指定连接。不幸的是,它的名称有些不恰当,因为YaST打印机模块中既没有“向导”,也没有其他任何晦涩的“魔法”,请参阅Archive:YaST Printer redesign

驱动程序

驱动程序决定为特定打印机型号生成正确的数据。如果分配了错误的驱动程序,则会向打印机发送错误的数据,导致打印输出看起来很糟糕、混乱或根本无法打印。

最初,驱动程序搜索输入字段预设为当前所选连接的自动检测到的型号名称,并且默认情况下会显示驱动程序描述与型号名称匹配的那些驱动程序。如果驱动程序描述与自动检测到的型号名称匹配,并且所有匹配的驱动程序描述似乎都属于同一型号,则驱动程序描述将以特殊方式排序,以便将最合理的驱动程序列在最上方并自动预先选择该驱动程序。

如果未自动预先选择驱动程序,则必须手动查找并选择合适的驱动程序。另一方面,即使自动预先选择了驱动程序,也不一定意味着该驱动程序适合您的特定需求。严格来说,自动预先选择的驱动程序可能根本无法用于您的特定打印机型号。原因是自动驱动程序选择只能基于字符串比较(自动检测到的型号名称和驱动程序描述),因此结果只能是对如何设置您的特定打印机型号的最佳猜测。因此,请检查当前预选值是否合理,并随时尝试修改设置,以了解最适合您的打印机的工作方式。如果没有任何驱动程序描述与自动检测到的型号名称匹配,也不一定意味着该型号没有可用的驱动程序。通常,驱动程序描述中的型号名称与自动检测到的型号名称不同。因此,您可以输入任何内容作为驱动程序搜索字符串,并搜索所有可用的驱动程序描述。

如果您找不到看起来适合您的打印机型号的驱动程序描述,或者您期望可用的驱动程序描述,您可以单击“驱动程序包”按钮来检查您是否需要安装更多的打印机驱动程序软件包。请参阅Concepts printing其中的“openSUSE打印机驱动程序软件包”部分。有关“打印机驱动程序软件包的版本升级”,请参阅SDB:Installing a Printer

如果您有PostScript打印机,则不需要打印机驱动程序软件,请参阅Concepts printing。PostScript打印机只需要与特定型号匹配的PostScript打印机描述(PPD)文件。对于PostScript打印机,制造商为每个特定打印机型号提供一个PPD文件。要设置PostScript打印机,请使用制造商的PPD文件。许多这样的PPD文件由openSUSE提供,其可用方式与所有其他驱动程序相同。如果openSUSE未为您的特定PostScript打印机提供PPD文件,则应从您的打印机制造商处获取匹配的PPD文件。通常,制造商会在其打印机软件包中或在其网站上提供PPD文件以供下载。当您从打印机制造商处获得PPD文件后,单击“驱动程序包”按钮。在新对话框中,有一个“使打印机描述文件可用”选项。如果PPD文件未位于/usr/share/cups/model/目录中,则无法使用它来设置打印机配置。因此,您可以指定PPD文件的完整路径,该路径可以位于系统上的其他位置,以便将其安装到/usr/share/cups/model/目录中。之后,您的PPD文件将与所有其他驱动程序一样可用。要使用您的PPD文件设置您的PostScript打印机,您可能需要手动搜索所有可用的驱动程序描述,以便您可以像分配任何其他驱动程序一样分配PPD文件(参见上文)。

通常,默认驱动程序选项设置应该是合理的,以便驱动程序适用于您的特定打印机型号。一些驱动程序选项设置必须与您的特定打印机匹配。特别是,驱动程序的默认纸张大小设置必须与实际装载在打印机中的纸张匹配。您可以显式选择A4或Letter作为默认纸张大小,也可以选择不选择任何内容,以使用驱动程序的内置默认纸张大小,该大小也是驱动程序既不支持A4也不支持Letter时的回退选项(例如,小型照片打印机的驱动程序)。如果您想调整A4或Letter以外的其他驱动程序选项,则必须先设置队列,然后在第二步中可以通过“修改”对话框调整所有驱动程序选项。

队列名称

应用程序程序不显示打印机设备,而是显示打印队列。队列名称仅允许字母(a-z和A-Z)、数字(0-9)和下划线“_”,并且必须以字母开头,请参见上文。

默认队列

可以设置其中一个打印队列作为默认使用的队列。但请记住,没有“唯一”的默认队列,请参见上文。

HP设备

设置HP设备的另一种方法是运行“hp-setup”。HP自己的工具“hp-setup”为HP打印机和HP一体机提供设置支持,特别是那些需要从HP下载并正确安装在特定用户系统上的专有驱动程序插件的设备。此外,“hp-setup”可以为HP网络打印机和HP网络一体机提供更好的设置支持,因为HP自己的工具可以为特殊的HP网络设备实现特殊处理。有关详细信息,请参阅SDB:How to set-up a HP printer

修改对话框

在修改对话框中,您可以以与“添加新的打印机配置”对话框中相同的方式更改打印队列的连接和驱动程序,但无法修改打印队列名称。

CUPS不支持更改打印队列名称,YaST打印机模块符合CUPS,请参阅Archive:YaST Printer redesign其中的“严格遵守CUPS”部分。

队列名称是一个与其它内容关系过于密切的值,因此在合理努力下,很难更改此值。考虑以下问题:

  • 当前正在排队的打印作业,
  • 队列中的待处理作业,
  • 将队列作为成员的类,
  • 队列的实例,
  • ...

(类和实例是此处未描述的高级主题。)

似乎有些打印机配置工具假装可以重命名队列,但实际上它们所做的是删除它并创建一个新队列,但尚不清楚在上述情况下会发生什么。

连接、驱动程序和驱动程序选项

当您将当前使用的连接更改为另一个连接时,驱动程序搜索输入字段预设为新选择的连接的自动检测到的型号名称,并且默认情况下会显示驱动程序描述与型号名称匹配的那些驱动程序。您可以输入任何内容作为驱动程序搜索字符串,并搜索所有可用的驱动程序描述。

您可以选择另一个驱动程序并稍后修改其驱动程序选项设置,也可以保留当前使用的驱动程序并修改其驱动程序选项设置。

当您将当前使用的驱动程序更改为另一个驱动程序时,必须先将此更改应用于打印队列,以便新驱动程序用于该队列(即,您必须首先完成“修改”对话框),然后在第二步中可以通过再次使用“修改”对话框来调整所有驱动程序选项。

通常,最好保留驱动程序选项的默认设置,因为默认设置应该适用于常规打印。此外,常规应用程序程序中的打印对话框也显示驱动程序选项,以便每个用户可以为每个单独的打印输出指定正确的驱动程序选项。

当您修改当前使用的驱动程序的驱动程序选项时,将启动“驱动程序选项”对话框,该对话框将返回到“修改”对话框。一些驱动程序选项设置必须与您的特定打印机匹配。例如,驱动程序的默认纸张大小设置必须与实际装载在打印机中的纸张匹配。对于其他驱动程序选项设置,您可以选择您喜欢的设置。例如,可用打印分辨率的任何选择都应该适用于特定的驱动程序。但是,您的特定打印机可能无法以高分辨率打印。例如,当您拥有一台内置内存不足以处理高分辨率页面的激光打印机时,请参阅SDB:Laser Printer Does Not Print Properly Or Does Not Print At All

描述和位置

与您必须选择正确的连接和驱动程序不同,您可以为描述文本和位置输入任意字符串。应用程序程序通常在打印对话框中显示描述和位置。为了确保这些字符串在任何特定应用程序程序的特定用户可能使用的语言中看起来都正确,仅使用纯ASCII文本而不使用特殊字符(例如,仅ASCII字母(a-z和A-Z)、ASCII数字(0-9)和ASCII空格字符(20 hex))是安全的。请参阅SDB:Plain Text versus Locale

默认队列和状态

最后,有以下复选框:

  • 用作默认
  • 接受打印作业
  • 启用打印

请参阅上述打印机配置对话框描述,了解其含义。

通过网络打印对话框

通常使用CUPS通过网络打印。默认情况下,CUPS使用其所谓的“浏览”模式来通过网络提供打印机,请参阅SDB:CUPS in a Nutshell其中的“CUPS <= 1.5 的固有设计用于网络打印”。在这种情况下,远程CUPS服务器将通过网络发布其打印机,并且您的主机上的CUPS守护进程(cupsd)必须运行,该守护进程正在侦听传入的有关已发布打印机的信息。

如果您可以访问远程 CUPS 服务器进行打印,但这些服务器没有通过网络发布其打印机信息,或者您无法接受有关已发布打印机的传入信息(例如,因为您必须为发布打印机的网络区域提供防火墙保护),您可以从 CUPS 服务器请求打印机信息(前提是 CUPS 服务器允许您访问)。对于每个请求的 CUPS 服务器,CUPS 守护进程 (cupsd) 会在您的主机上启动一个 cups-polld 进程。有关防火墙,请参阅 SDB:CUPS 和 SANE 防火墙设置

如果您仅通过网络打印,并且只使用一个 CUPS 服务器,则无需使用 CUPS 浏览功能并在您的主机上运行 CUPS 守护进程。相反,直接指定 CUPS 服务器并直接访问它会更简单。

如果您的网络中没有 CUPS 服务器,或者您必须直接访问网络打印机,或者您使用其他类型的打印服务器(例如,通过 Windows 或 Samba 服务器打印,或通过传统的 Unix 服务器打印),您必须在您的主机上设置适当的打印队列。

共享打印机对话框

通常,CUPS 应该设置为使用其所谓的“浏览”模式,以便通过网络提供打印机,请参阅上述通过网络打印对话框的描述。在这种情况下,CUPS 服务器通过网络发布其本地打印队列,因此 CUPS 客户端系统上的 CUPS 守护进程 (cupsd) 必须运行,并监听有关已发布打印机的传入信息。

首先,必须允许 CUPS 客户端系统访问 CUPS 服务器。

然后,指定是否应该将打印机发布给客户端。

在任何情况下,发布打印机都不是必需的。如果您只有一个 CUPS 服务器,则无需使用 CUPS 浏览功能。相反,直接在客户端系统上指定 CUPS 服务器(通过“通过网络打印”对话框)会更简单,以便客户端直接访问服务器。

有关防火墙,请参阅 SDB:CUPS and SANE Firewall settings

参见

Portal:Printing