cmyk列印颜色

在你开始前

了解这些教程可以教给您什么以及如何从中获得最大收益。

关于本系列

Linux Professional Institute (LPI)在两个级别上对Linux系统管理员进行认证: 初级 (也称为“认证级别1”)和中级 (也称为“认证级别2”)。 要获得1级认证,您必须通过101和102考试; 要达到2级认证,您必须通过201和202考试。

developerWorks提供了教程,以帮助您为四门考试中的每门考试做准备。 每个考试涵盖几个主题,并且每个主题在developerWorks上都有一个相应的自学教程。 对于LPI 102考试,这9个主题和相应的developerWorks教程为:

表1. LPI考试102:教程和主题
LPI 102考试主题 developerWorks教程 教程总结
主题105 LPI 102考试准备:
核心
了解如何安装和维护Linux内核和内核模块。
主题106 LPI 102考试准备:
引导,初始化,关闭和运行级别
了解如何引导系统,设置内核参数以及关闭或重新引导系统。
主题107 LPI 102考试准备:
列印
(本教程)。 了解如何在Linux系统上管理打印机,打印队列和用户打印作业。 请参阅下面的详细目标 。
主题108 LPI 102考试准备:
文献资料
快来了。
主题109 LPI 102考试准备:
Shell,脚本,编程和编译
快来了。
主题111 LPI 102考试准备:
行政任务
快来了。
主题112 LPI 102考试准备:
网络基础
快来了。
主题113 LPI 102考试准备:
网络服务
快来了。
主题114 LPI 102考试准备:
安全
快来了。

要通过考试101和102(并达到1级认证),您应该能够:

  • 在Linux命令行上工作
  • 执行简单的维护任务:帮助用户,将用户添加到更大的系统,备份和还原以及关闭和重新启动
  • 安装和配置工作站(包括X)并将其连接到LAN,或通过调制解调器将独立PC连接到Internet

要继续准备1级认证,请参阅有关LPI考试101和102的developerWorks教程 ,以及整套developerWorks LPI教程 。

Linux Professional Institute不特别认可任何第三方考试准备材料或技术。 有关详细信息,请联系info@lpi.org 。

关于本教程

欢迎来到“ Linux中的打印”,这是为您准备LPI 102考试而设计的九个教程中的第三个教程。在本教程中,您将学习如何在Linux中配置打印机和管理打印作业。

本教程根据该主题的LPI目标进行组织。 粗略地说,对于体重较高的目标,应在考试中提出更多问题。

表2.打印:本教程涵盖的考试目标
LPI考试目标 客观体重 客观总结
1.107.2
管理打印机和打印队列
重量1 配置和监视打印服务器。 管理打印队列并对常规打印问题进行故障排除。
1.107.3
打印文件
重量1 从已配置的打印机队列中添加和删除作业。 将文本文件转换为PostScript以进行打印。
1.107.4
打印机安装和配置
重量1 安装和配置本地和远程打印机,包括打印机守护程序和打印过滤器。 使用本地和远程打印机,包括PostScript,非PostScript和Samba打印机。

先决条件

为了从本教程中获得最大收益,您应该具有Linux的基本知识以及可以在其中实践本教程中介绍的命令的Linux系统。

本教程建立在LPI系列以前的教程中介绍的内容的基础上,因此您可能需要首先查看101考试的教程 。

程序的不同版本可能会不同地格式化输出,因此您的结果可能看起来与本教程中的清单和图不完全相同。

在撰写本文时,该主题的已发布LPI目标主要针对通用UNIX打印系统(CUPS),带有早期LPD(行式打印机守护程序)和LPRng(下一代行式打印机或LPR)打印的痕迹。系统。 因此,本教程主要针对CUPS,仅对较早的技术进行了少量提及。 为了进行更完整的准备,您还应该查看有关LPD和LPRng打印技术的其他材料。

管理打印机和打印队列

本部分介绍了初中级管理(LPIC-1)考试102的主题1.107.2的材料。该主题的权重为1。

在本节中,学习如何:

  • 配置和监视打印服务器
  • 管理用户打印队列
  • 解决常规打印问题

介绍

在计算机的早期,打印是由行式打印机完成的, 行式打印机使用固定间距字符和单个字体一次打印一行文本。 为了提高整体系统性能,早期的大型计算机将工作速度较慢的外围设备(例如读卡器,打卡机和行式打印机)与其他工​​作交织在一起。 因此诞生了同时进行外围设备在线操作或假脱机 ,这个术语在谈论计算机打印时仍然很常用。

在UNIX®和Linux系统中,打印最初使用Berkeley软件分发(BSD)打印子系统,该子系统由作为服务器运行的行式打印机守护程序(lpd)和客户端命令(如lpr以提交打印作业。 此协议后来被IETF标准化为RFC 1179,“行式打印机守护程序协议”。

System V UNIX也有一个打印守护程序。 它在功能上类似于伯克利LPD,但具有不同的命令集。 您会经常看到两个具有不同选项的命令来完成相同的任务。 例如,来自Berkeley实现的lpr和来自System V实现的lp均用于打印文件。

随着打印机技术的进步,可以在页面上混合不同的字体并打印图像和文字。 可变间距字体和更高级的打印技术(例如字距调整和连字)都成为可能。 设计了对基本lpd / lpr打印方法的一些改进,例如LPRng(下一代LPR)和CUPS(通用UNIX打印系统)。

许多能够进行图形打印的打印机都使用Adobe PostScript语言。 PostScript打印机具有一个引擎,可解释打印作业中的命令并根据这些命令生成完成的页面。 PostScript通常用作原始文件(例如文本或图像文件)与适合于不具备​​PostScript功能的特定打印机的最终形式之间的中间形式。 使用过滤器可将打印作业(例如ASCII文本文件或JPEG图像)转换为PostScript,以及将PostScript转换为非PostScript打印机所需的最终光栅格式。

本教程的其余部分重点介绍通用UNIX打印系统(CUPS),该系统支持传统命令以及用于打印功能的较新图形界面。 假定为CUPS 1.1; 它包括早期版本中未提供的一些功能,例如摘要密码,以提高安全性。 许多发行版和台式机都提供CUPS的前端图形程序,因此此处介绍的内容并不详尽。 本教程介绍了主要概念,但特定实现可能有所不同。 还要注意,打印机的物理安装超出了本教程的范围。

打印服务器

CUPS服务器作为守护进程运行,cupsd在通常位于/etc/cups/cupsd.conf中的配置文件的控制下。 / etc / cups目录还包含与CUPS相关的其他配置文件。 它通常是在系统初始化期间启动的,但根据您的分布,它可以由/etc/rc.d/init.d或/etc/init.d中的cups脚本控制。 与大多数此类脚本一样,您可以停止,启动或重新启动守护程序,如清单1所示。

清单1.启动和停止cups守护程序
[root@attic4 ~]# /etc/rc.d/init.d/cups
Usage: cups {start|stop|restart|condrestart|reload|status}
[root@attic4 ~]# /etc/rc.d/init.d/cups stop
Stopping cups:                                             [  OK  ]
[root@attic4 ~]# /etc/rc.d/init.d/cups start
Starting cups:                                             [  OK  ]
[root@attic4 ~]# /etc/rc.d/init.d/cups restart
Stopping cups:                                             [  OK  ]
Starting cups:                                             [  OK  ]

配置文件/etc/cups/cupsd.conf包含一些参数,您可以设置这些参数来控制诸如访问打印系统,是否允许远程打印,假脱机文件的位置等内容。 在某些系统上,第二部分描述各个打印队列,通常由配置工具自动生成。 清单2显示了默认cupsd.conf文件的一些条目。 请注意,注释以#字符开头,因此从默认值更改的条目将删除开头的#字符。 还要注意,假脱机文件默认存储在/ var / spool文件系统中,这与文件系统层次结构标准(FHS)所期望的一样。

清单2.默认的/etc/cups/cupsd.conf的一部分
#
# RequestRoot: the directory where request files are stored.
# By default "/var/spool/cups".
##RequestRoot /var/spool/cups#
# RemoteRoot: the name of the user assigned to unauthenticated accesses
# from remote systems.  By default "remroot".
##RemoteRoot remroot#
# ServerBin: the root directory for the scheduler executables.
# By default "/usr/lib64/cups".
##ServerBin /usr/lib64/cups#
# ServerRoot: the root directory for the scheduler.
# By default "/etc/cups".
##ServerRoot /etc/cups

您还应该注意/ etc / printcap文件。 这是LPD打印服务器的配置文件的名称,许多应用程序仍在使用它来确定可用的打印机及其属性。 它通常是在CUPS系统中自动生成的,因此您可能不会自行对其进行修改。 但是,如果要诊断用户打印问题,则可能需要检查它。 清单3显示了一个示例。

清单3.自动生成的/ etc / printcap
# This file was automatically generated by cupsd(8) from the
# /etc/cups/printers.conf file.  All changes to this file
# will be lost.
xerox|Xerox Docuprint C20:rm=localhost.localdomain:rp=xerox:
anyprint|Pick any printer:rm=localhost.localdomain:rp=anyprint:
r220|Epson R220:rm=localhost.localdomain:rp=r220:

此处的每一行都有打印机名称和打印机说明,以及该计算机上的远程计算机(rm)和远程打印机(rp)的名称。 传统的/ etc / printcap文件也描述了打印机功能。

最后,CUPS 1.1引入了passwd.md5文件。 这允许使用lppasswd命令定义CUPS用户。 CUPS用户ID不必是系统用户ID。

打印队列

打印队列是用户将打印作业定向到的逻辑实体。 通常,特别是在单用户系统中,打印队列与打印机同义。 但是,CUPS允许没有连接打印机的系统将打印作业排队以便最终在远程系统上进行打印,并且通过使用类允许针对某个类的打印作业可以在该类的第一台可用打印机上打印。 这些将在本教程的最后一部分中详细讨论。

几个命令允许检查和操作打印队列。 尽管当前支持的选项通常是原始LPD打印系统支持的选项的有限子集,但是其中一些根源于LPD命令。 其他命令是CUPS的新增功能。 通常,用户可以操纵他或她自己的打印作业,但是通常需要root或其他授权用户才能操纵其他人的作业。 大多数CUPS命令都支持-E选项,用于CUPS客户端命令和CUPS服务器之间的加密通信。

您可以使用CUPS lpstat命令检查系统已知的队列。 表3中显示了一些常用选项。

表3. lpstat的选项
选项 目的
-一个 显示打印机的接受状态。
-C 显示打印类别。
-p 显示打印状态:启用或禁用。
-s 显示默认打印机,打印机和类。 等效于-d -c -v 。 请注意,必须分开多个选项,因为可以为许多选项指定值。
-s 显示打印机及其设备。

您也可以将LPD lpc命令(位于/ usr / sbin中)与status选项一起使用。 如果未指定打印机名称,则会列出所有队列。 清单4显示了这两个命令的一些示例。

清单4.显示可用的打印队列
[ian@attic4 ~]$ lpstat -d
system default destination: xerox
[ian@attic4 ~]$ lpstat -v xerox
device for xerox: lpd://192.168.0.10/PS-66D975-P1
[ian@attic4 ~]$ lpstat -s
system default destination: xerox
members of class anyprint:r220xerox
device for anyprint: ///dev/null
device for r220: smb://MSHOME/DEN/EPSON220
device for xerox: lpd://192.168.0.10/PS-66D975-P1
[ian@attic4 ~]$ lpstat -a r220
r220 accepting requests since Sat 12 Aug 2006 04:01:38 PM EDT
[ian@attic4 ~]$ /usr/sbin/lpc status xerox
xerox:printer is on device 'lpd' speed -1queuing is disabledprinting is enabledno entriesdaemon present

此示例显示了两个打印机xerox和r220,以及一个类anyprint,该类允许将打印作业定向到这两个打印机中的第一个可用打印机。

在上一个示例中,尽管启用了打印,但当前已禁用将打印作业排队到xerox上,这可能是为了在使打印机脱机进行维护之前排空队列。 启用或禁用排队是由acceptreject命令控制的。 是否启用打印由cupsenablecupsdisable命令控制。 在早期版本的CUPS中,这些被称为enabledisable ,这与bash shell内置的enable混淆。 清单5显示了如何在禁用打印的同时在打印机xerox上启用排队。 请注意,授权用户必须执行这些任务。 这可以是root或其他授权用户。 有关授权用户的更多信息,请参见cupsd.conf文件和lppasswd命令的手册页。

清单5.启用排队和禁用打印
[root@attic4 ~]# lpc status xerox
xerox:printer is on device 'lpd' speed -1queuing is enabledprinting is enabledno entriesdaemon present
[root@attic4 ~]# cupsdisable xerox
[[root@attic4 ~]# lpstat -p -a
printer anyprint is idle.  enabled since Sat 12 Aug 2006 04:07:46 PM EDT
printer r220 is idle.  enabled since Sat 12 Aug 2006 04:01:38 PM EDT
printer xerox disabled since Sat 12 Aug 2006 06:43:09 PM EDT -Paused
anyprint accepting requests since Sat 12 Aug 2006 04:07:46 PM EDT
r220 accepting requests since Sat 12 Aug 2006 04:01:38 PM EDT
xerox accepting requests since Sat 12 Aug 2006 06:43:09 PM EDT

管理打印队列上的打印作业

现在,您已经了解了如何检查打印队列和类的一些知识,让我们看一下如何管理打印机队列上的打印作业。 您可能要做的第一件事是查找是否有作业针对特定打印机或所有打印机排队。 您可以使用lpq命令执行此操作。 如果未指定任何选项,则lpq显示默认打印机的队列。 使用-P选项和打印机名称来指定特定的打印机,或-a选项来指定所有打印机,如清单6所示。

清单6.使用lpq检查打印队列
[ian@attic4 ~]$ lpq
xerox is not ready
Rank    Owner   Job     File(s)                         Total Size
1st     brendan 14      RobotPlayer.java                1024 bytes
2nd     ian     16      .bashrc                         1024 bytes
3rd     ian     17      .bashrc                         1024 bytes
[ian@attic4 ~]$ lpq
xerox is not ready
Rank    Owner   Job     File(s)                         Total Size
1st     brendan 14      RobotPlayer.java                1024 bytes
2nd     ian     16      .bashrc                         1024 bytes
3rd     ian     17      .bashrc                         1024 bytes
[ian@attic4 ~]$ lpq -P r220
r220 is ready
no entries
[ian@attic4 ~]$ lpq -a
Rank    Owner   Job     File(s)                         Total Size
1st     brendan 14      RobotPlayer.java                1024 bytes
2nd     ian     16      .bashrc                         1024 bytes
3rd     ian     17      .bashrc                         1024 bytes

在此示例中,三个作业(14、16和17)在名为xerox的打印机中排队。 请注意,当包含-P选项时,输出表明打印机尚未就绪。 还要注意,用户ian提交了两次作业,这是第一次不打印作业时的常见用户操作。 通过使用lprm命令从队列中删除作业,可以避免打印多余的副本。 通常的授权设置允许用户删除自己的工作,但不能删除其他用户的工作。 超级用户或其他授权用户可以删除其他用户的作业。 没有选项,当前作业将被删除。 使用-选项,将删除所有作业。 否则,您可以提供要删除的作业列表,如清单7所示。

清单7.使用lprm删除打印作业
[[ian@attic4 ~]$ lprm
Password for ian on localhost?
lprm: Unauthorized
[ian@attic4 ~]$ lprm 17
[ian@attic4 ~]$ lpq
xerox is not ready
Rank    Owner   Job     File(s)                         Total Size
1st     brendan 14      RobotPlayer.java                1024 bytes
2nd     ian     16      .bashrc                         1024 bytes

请注意,用户ian无法删除队列中的第一个作业,因为它是针对brendan用户的。 但是,他可以删除自己的工作编号17。

另一个可以帮助您处理打印队列上的作业的命令是lp命令。 您可以使用它来更改作业的属性,例如优先级或份数。 假设用户ian希望在用户brendan的工作之前进行打印,而他确实确实想要该工作的两个副本。 作业优先级的范围从最低优先级1到最高优先级100,默认值为50。用户ian可以使用-i-n-q选项指定要更改的作业以及新的副本数和优先级如清单8所示。请注意lpq命令的-l选项的使用,它提供了更详细的输出。

清单8.使用lp更改副本数和优先级
[ian@attic4 ~]$ lp -i 16 -n 2
[ian@attic4 ~]$ lpq -l
xerox is not readyian: 1st                               [job 16 localhost]2 copies of .bashrc                     1024 bytesbrendan: 2nd                               [job 14 localhost]RobotPlayer.java                        1024 bytes

最后, lpmove命令允许将作业从一个队列移至另一队列。 例如,我们可能要这样做,因为打印机xerox当前未在打印。 此命令需要授权用户。 清单9显示了如何将这些作业移动到另一个队列,首先按打印机和作业ID指定,然后按给定打印机的所有作业指定。 到我们再次检查队列时,已经打印了两个作业。

清单9.使用lpmove将作业移到另一个打印队列
[root@attic4 ~]# lpmove xerox-16 anyprint
[root@attic4 ~]# lpmove xerox r220
[root@attic4 ~]# lpq
xerox is not ready
no entries
[root@attic4 ~]# lpq -a
Rank    Owner   Job     File(s)                         Total Size
active  ian     18      fig1.gif                        26624 bytes

如果碰巧使用了不是CUPS的打印服务器(例如LPD或LPRng),则会发现我们刚才看过的许多队列管理功能都作为lpc命令的子命令处理。 例如,您可以使用lpc topq将作业移到队列的顶部。 其他的lpc命令可能包括disabledownenableholdmoveredirectreleasestart

故障排除

如果您在打印时遇到问题,请尝试以下技巧:

  • 确保cups服务器正在运行。 您可以使用lpstat命令,如果无法连接到cupsd守护程序,它将报告错误。 或者,您可以使用ps -ef命令并在输出中检查cupsd。
  • 如果您尝试将要打印的作业排队,并收到一条错误消息,指出打印机不接受作业结果,请使用lpstat -alpc status检查打印机是否接受作业。
  • 如果没有打印排队的作业,请使用lpstat -plpc status检查打印机是否正在接受作业。 您可能需要按照下一节中的说明将作业移至另一台打印机。
  • 如果打印机是远程打印机,则可能需要检查它在远程系统上是否仍然存在并且可以运行。
  • 您可能需要更新配置文件,以允许特定用户或远程系统在打印机上进行打印。
  • 您可能需要确保防火墙允许远程打印请求,从另一个系统到另一个系统,或者从一个系统到另一个(如果适用)。
  • 您可能需要验证驱动程序是否正确(如本教程最后一节中所述)。

如您所见,打印涉及系统和网络中多个组件的正确运行。 在这种长度的教程中,我们只能为您提供诊断的起点。 大多数CUPS系统还具有我们在此讨论的命令行功能的图形界面。 通常,可以使用指向端口631(http:// localhost:631或http://127.0.0.1:631)的浏览器从本地主机访问此接口,如图1所示。

图1.端口631上的CUPS主页

打印文件

本部分介绍了初级管理(LPIC-1)考试102的主题1.107.3的材料。该主题的权重为1。

在本节中,学习如何:

  • 从已配置的打印机队列中添加和删除作业
  • 将文本文件转换为PostScript以进行打印

打印

在上一节中,您学习了如何从打印队列中删除文件。 在这里,您将学习如何打印文件和更改作业选项。

许多图形程序通常在“ 文件”菜单选项下提供一种打印方法。 这些程序提供了图形工具,用于选择打印机,边距大小,彩色或黑白打印,份数,选择2张打印(每张纸2页,通常用于讲义),等等。 本节向您展示了用于控制这些功能的命令行工具,以及用于比较的图形化实现。

打印任何文件的最简单方法是使用lpr命令并提供文件名。 这将在默认打印机上打印文件。 清单10显示了一个简单的示例以及一个更复杂的示例。 下面将解释更复杂的命令。

清单10.使用lpr打印
[ian@attic4 ~]$ echo abc>abc.txt
[ian@attic4 ~]$ lpr abc.txt
[ian@attic4 ~]$ lpr -Pxerox -J "Ian's text file" -#2 -m -p -q -r abc.txt
[ian@attic4 ~]$ lpq -l
xerox is readyian: 1st                               [job 25 localhost]2 copies of Ian's text file             1024 bytes
[ian@attic4 ~]$ ls abc.txt
ls: abc.txt: No such file or directory

表4解释了上面更复杂的命令上使用的选项以及lpr可能使用的其他选项。

表4. lpr的选项
选项 目的
-C,-J或-T 设置工作名称。
-P 选择特定的打印机。
-# 指定份数。 注意,这与您在lp命令中看到的-n选项不同。
-米 完成工作后发送电子邮件。
-l 打印文件已被格式化以进行打印。 等效于-o raw
-o 设置作业选项。
-p 格式化带有阴影标题的文本文件。 等效于-o prettyprint
-q 保留(或排队)作业以供以后打印。
-r 假脱机打印文件后,将其删除。

因此,在我们的复杂示例中: lpr -Pxerox -J "Ian's text file" -#2 -m -p -q -r abc.txt ,用户ian正在请求特定的打印机,为作业指定名称,并请求2份副本,在打印后请求电子邮件确认,保留该作业,并在后台处理后删除文件abc.txt。 后续命令显示保留的作业以及该文件确实已被删除的事实。

除了lpr命令之外,上一部分中介绍的lp命令还可以用于打印作业以及对其进行修改。 如果在命令行上未指定文件名,则lplpr接受来自stdin的文件。 与此相反lpr ,它悄悄后台打印作业时, lp默认是显示脱机作业的作业数量,如图清单11.注意,并非所有的等效选项lplpr具有相同的名称; 例如, lp上的-n等效于lpr上的-#

清单11.使用lp从stdin打印
[ian@attic4 ~]$ lp
abc
request id is xerox-27 (1 file(s))

因此,我们现在在xerox打印队列中有一个待处理的作业。 该怎么办? lp命令具有使用-H选项的各种值来保留和释放作业的选项。 清单12显示了如何释放保留的作业。 有关其他选项的信息,请检查lp的手册页。

清单12.恢复打印保留的打印作业
[ian@attic4 ~]$ lp -i 25 -H resume

今天有许多不同的打印机可用,但并非所有打印机都支持相同的选项集。 您可以使用lpoptions命令找出为打印机设置的常规选项。 添加-l选项以显示特定于打印机的选项; 清单13显示了一个示例。 lp命令的手册页还列出了几个常用选项,特别是与纵向/横向打印,页面尺寸以及输出在页面上的位置有关。

清单13.检查打印机选项
[ian@attic4 ~]$ lpoptions -p xerox
job-sheets=none,none printer-info='Xerox Docuprint C20' printer-is-accepting-
jobs=1 printer-is-shared=1 printer-make-and-model='Xerox DocuPrint C20 Foomat
ic/Postscript (recommended)' printer-state=3 printer-state-change-time=115550
6374 printer-state-reasons=none printer-type=143388 cpi=12 scp-fc5=true lpi=7page-bottom=86 page-left=57 page-right=57 page-top=72 scaling=100 wrap=true
[ian@attic4 ~]$ lpoptions -l
PageSize/Page Size: *Letter A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 EnvM
onarch Executive Legal
PageRegion/PageRegion: Letter A4 11x17 A3 A5 B5 Env10 EnvC5 EnvDL EnvISOB5 En
vMonarch Executive Legal
Duplex/Double-Sided Printing: DuplexNoTumble DuplexTumble *None
Resolution/Resolution: *default 150x150dpi 300x300dpi 600x600dpi
PreFilter/GhostScript pre-filtering: EmbedFonts Level1 Level2 *No

到目前为止,我们所有的命令都已定向到本地CUPS服务器。 如果不是CUPS缺省值631,则还可以通过指定-h选项和端口号来将大多数命令定向到另一个系统上的服务器。

在进入过滤器之前,让我们看一下所有这些魔术在GUI应用程序中如何发挥作用。 图2显示了图像处理程序GIMP中的图1。 使用文件>打印选项,您可以选择关于如何打印图像的许多选择。 在此应用程序中,您也可以单击“ 设置打印机”按钮以选择打印机,然后查看将用于打印文件的命令,在本例中为lp -s -dxerox -oraw

图2.从GIMP打印

转换文件

您可能已经注意到,即使r220打印机恰好是Epson照片打印机,而xerox打印机是PostScript Xerox Docuprint C20,我们仍然能够打印上述文本文件。 这个神奇的壮举是通过使用过滤器来完成的。 确实,多年来流行的过滤器被称为magicfilter 。

大多数CUPS软件包随附的过滤器数量几乎可以打印任何类型的文件。 其他过滤器可从CUPS的开发商Easy Software Products等公司购买到。

在打印文件时,CUPS使用MIME(多用途Internet邮件扩展名)类型来确定适当的转换筛选器。 本教程后面的有关过滤器安装的部分将进行详细介绍。 其他打印程序包可能使用file命令使用的幻数机制。 有关filemagic的更多信息,请参见手册页。

一般的打印流程是使用适合文件类型的过滤器(例如,文本顶部,图像顶部或pdftop)将输入文件转换为PostScript格式。 然后,通过pstoraster过滤器过滤PostScript格式,以为非PostScript打印机创建中间栅格格式,然后再通过打印机后端过滤,以准备在特定打印机上打印。 Ghostscript是一种流行的程序,可以在许多不同的打印机上打印PostScript文件。 伴随查看器允许在监视器上显示文件。 许多打印机后端均来自Ghostscript打印机驱动程序。

在如此自动地处理所有这些操作之前,必须将输入转换为PostScript格式。 可以使用我们之前看到的GIMP之类的程序来处理图像。 通常使用a2ps命令将ASCII文本文件转换为PostScript。 纯文本文件的默认设置是打印带有标题的2-up,然后直接输出到默认打印机,如清单14所示。

清单14.使用a2ps打印文本文件
[ian@attic4 ~]$ a2ps -4 abc.txt -o abc.ps
[abc.txt (plain): 1 page on 1 sheet]
[Total: 1 page on 1 sheet] saved into the file `abc.ps'

a2ps命令可以处理各种文本文件类型,并可以明智地决定格式化它们的最佳方式。 例如,LaTeX文件的默认设置是先格式化文件,然后再打印2张。 清单15使用a2ps打印与LaTeX一起分发的sample2e.tex文件的副本,然后显示一个重命名为sample2e.txt的副本,并带有标题的4-up打印。 两者都保存到输出PostScript格式文件中。 图3显示了如何格式化第二个命令的输出。

清单15.将a2ps的输出另存为PostScript文件
[ian@attic4 ~]$ a2ps -4 -E -o fig3.ps sample2e.tex
[sample2e.tex (tex, delegated to texi2dvi): 1 page on 1 sheet]
[Total: 4 pages on 1 sheet] saved into the file `fig3.ps'
[ian@attic4 ~]$ a2ps -4 -E -o fig3.ps sample2e.txt
[sample2e.txt (plain): 4 pages on 1 sheet]
[Total: 4 pages on 1 sheet] saved into the file `fig3.ps'
图3. a2ps的漂亮打印输出

您还可以使用许多其他过滤器来格式化文件以特殊方式进行打印。 大多数都有一系列选择。 检查手册页以获取更多详细信息。 一些例子是:

网页
格式化测试文件以在一页上打印多页。
psnup
对PostScript文件执行与mpage对文本文件相似的功能。
psbook
考虑到每张纸的页数和折叠方式,重新排列PostScript文档的页面以作为书或小册子打印。

打印机安装和配置

本部分介绍了初级管理(LPIC-1)考试102的主题1.107.4的材料。该主题的权重为1。

在本节中,学习如何:

  • 安装打印机守护程序
  • 安装和配置打印过滤器
  • 访问各种本地和远程打印机

打印机守护程序

首先安装打印机软件包(CUPS或LPRng之类的打印机软件包),以安装打印机守护程序,该软件包通常随发行版一起提供。 如果您需要一个不随您的发行版一起提供的软件包,则可以找到一个为发行版预先构建的软件包,或者您可以从源代码自己构建它。 如果您需要有关此任务的帮助,请参考101考试主题102,“ LPI 101考试准备:Linux安装和软件包管理 ”的教程。

一旦安装了打印机软件包,请确保在系统启动时启动打印机守护程序。 考试102主题106 “ LPI考试102准备:引导,初始化,关闭和运行级别”的教程中对此进行了介绍。

根据status分配,使用/etc/rc.d/init.d或/etc/init.d中的cups脚本。 您还可以使用lpstatlpc status命令来检查守护程序是否正在运行。 如果您使用其他打印机守护程序,请为您的程序包使用适当的脚本。 清单16中显示了一个示例。

清单16.检查CUPS守护程序状态
[root@attic4 ~]# /etc/init.d/cups stop
Stopping cups:                                             [  OK  ]
[root@attic4 ~]# /etc/init.d/cups status
cupsd is stopped
[root@attic4 ~]# lpstat -d
lpstat: Unable to connect to server
[root@attic4 ~]# /etc/init.d/cups start
Starting cups:                                             [  OK  ]

如果您需要调试CUPS,则可以在前台运行它,而不是将其作为守护进程运行。 如果需要,您还可以测试备用配置文件。 运行cupsd -h以获取更多信息,或参阅手册页。

清单17.从命令行运行cupsd
[root@attic4 ~]# cupsd -h
Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l] [--ppdsdat]-c config-file      Load alternate configuration file
-f                  Run in the foreground
-F                  Run in the foreground but detach
-h                  Show this usage message
-l                  Run cupsd from launchd(8)
--ppdsdat           Just build ppds.dat

CUPS还维护访问日志和错误日志。 您可以使用/etc/cups/cupsd.conf中的LogLevel语句来更改日志记录的级别。 默认情况下,日志存储在/ var / log / cups目录中。 可以从Web界面(http:// localhost:631)的“ 管理”选项卡中查看它们。

打印过滤器

那么CUPS如何确定用于格式化特定文件类型的过滤器? 在打印文件时,CUPS使用MIME(多用途Internet邮件扩展名)类型来确定适当的转换筛选器。 请注意,其他打印包可能使用file命令使用的幻数机制。 有关filemagic的更多信息,请参见手册页。

MIME类型用于将各种文件作为邮件附件传输。 它们由一个类型(例如文本或图像)和一个子类型(例如html,postscript gif或jpeg)组成。 类型和子类型用分号(;)分隔。 可选参数可以包括诸如字符集编码或语言之类的信息。 CUPS使用/etc/cups/mime.types中的规则来确定文件的类型,然后针对给定的MIME类型使用从/etc/cups/conv.types中列出的那些中选择的合适过滤器。 MIME类型已向IANA(Internet分配号码授权机构)注册。 如果需要未注册的类型,请在子类型前添加“ x-”。 清单18显示了一些图像类型示例。

清单18. /etc/cups/mime.types中的一些MIME类型条目
image/gif                  gif string(0,GIF87a) string(0,GIF89a)
image/png                  png string(0,<89>PNG)
image/jpeg                 jpeg jpg jpe string(0,<FFD8FF>) &&\(char(3,0xe0) char(3,0xe1) char(3,0xe2) char(3,0xe3)\char(3,0xe4) char(3,0xe5) char(3,0xe6) char(3,0xe7)\char(3,0xe8) char(3,0xe9) char(3,0xea) char(3,0xeb)\char(3,0xec) char(3,0xed) char(3,0xee) char(3,0xef))
image/tiff                 tiff tif string(0,MM) string(0,II)
image/x-photocd            pcd string(2048,PCD_IPI)
image/x-portable-anymap    pnm

条目的格式超出了本教程的范围。 检查文件/ usr / share / mime / magic或/ usr / share / file / magic,以获取有关如何使用幻数标识文件的一些见解。

一种文件的MIME类型已经确定,可以使用/etc/cups/mime.convs文件找到正确的过滤器。 该文件中的行有四个条目,即源和目标MIME类型, cost和过滤器的名称。 使用成本最低的过滤器。 清单19中显示了一些示例。

清单19.来自/etc/cups/mime.convs的过滤器条目
text/plain              application/postscript  33      texttops
text/html               application/postscript  33      texttops
image/gif               application/vnd.cups-postscript 66      imagetops
image/png               application/vnd.cups-postscript 66      imagetops
image/jpeg              application/vnd.cups-postscript 66      imagetops
image/tiff              application/vnd.cups-postscript 66      imagetops
image/x-bitmap          application/vnd.cups-postscript 66      imagetops

如果找不到合适的过滤器,则尝试打印文件将导致错误消息。 如果使用的打印机守护进程不是CUPS,则可能会得到意外的输出。 清单20显示了它如何与DVI文件一起工作(来自TeX和LaTex的正常输出)。

清单20.打印不支持的文件类型
[ian@attic4 ~]$ lpr samp1.dvi
lpr: Unsupported format 'application/octet-stream'!

幸运的是,提供TeX和LaTeX的tetex包还提供了转换实用程序, dvips可将DVI转换为PostScript。 不幸的是,它不能用作过滤器,因为它不知道如何处理CUPS过滤器必须处理的参数,即作业ID,用户,作业标题,份数和作业选项。 如果输入来自文件,则过滤器管道中的第一个过滤器还将具有一个附加参数,即文件名。

解决方案是创建一个包装器脚本作为过滤器。 dvips命令不接受来自stdin的输入,因此脚本可能需要创建一个临时文件并将stdin复制到该文件,然后再调用dvips 。 清单21显示了一个可能的脚本。

清单21. CUPS DVI到PostScript过滤器脚本
#!/bin/bash
# CUPS filter to process DVI files using dvips
# Create a sandbox for working if input on stdin
if [ $# -lt 6  ]; thensandbox=${TMPDIR-/tmp}/cups-dvitops.$$(umask 077 && mkdir $sandbox) || {echo "Cannot create temporary directory! Exiting." 1>&2exit 1}fn="$sandbox/cups-dvitops.$$"cat > "$fn"
elsefn="$6"
fi
# Call dvips quietly, securely and with output to stdout
dvips -R -q -o - "$fn"
# Erase sandbox if we created one
if [ $# -lt 6  ]; thenrm -rf  "$sandbox"
fi

回想一下,CUPS使用/ etc / cups中的两个文件来确定MIME类型和要使用的过滤器。 每当您重新安装或升级CUPS时,这些文件将被覆盖。 幸运的是,无论何时启动或重新启动,CUPS都会读取所有扩展名为.types或.convs的文件。 因此,您应该为新的过滤器创建一对文件,例如/etc/cups/dvitops.types和/etc/cups/dvitops.convs,如清单22所示,其中显示了Docuprint驱动程序的部分输出清单。

清单22. CUPS dvitops过滤器的配置文件
[ian@attic4 ~]$ cat /etc/cups/dvitops.types
# Local MIME definition for DVI files
application/x-dvi dvi string(0,<F702>)
[ian@attic4 ~]$ cat /etc/cups/dvitops.convs
# Local DVI to PostScript filter for CUPS
application/x-dvi application/postscript 50 dvitops

这表示DVI文件是通过在前两个位置具有十六进制数字F7和02来标识的,并且此类文件应由dvitops过滤器处理。

接下来,以root身份将上面的脚本复制到/ usr / lib / cups / filter / dvitops中,并确保该脚本可被世界范围读取并且可执行。(-rwxr-xr-x)。 您给脚本指定的名称必须与上面的/etc/cups/dvitops.convs文件中的名称匹配。 如果以强制模式运行SELinux,则还应该在/ usr / lib / cups / filter目录中运行restorecon来更新安全性上下文。 否则,您的lpr命令似乎可以使用,但是您的文件将无法打印。

最后,将重新启动选项与/etc/rc.d/init.d或/etc/init.d中的cups脚本一起使用,以重新启动CUPS并使用新的过滤器。

如果使用较旧的打印后台处理程序,则可能会使用magicfilter或apsfilter作为输入过滤器,以将各种输入文件转换为PostScript格式,以打印到PostScript打印机,或者使用Ghostscript打印到非PostScript打印机。

访问打印机

CUPS支持多种打印机,包括:

  • 本地连接的并行和USB打印机
  • IPP(Internet打印协议)打印机
  • 远程LPD打印机
  • 使用SAMBA的Windows®打印机
  • 使用NCP的Novell打印机
  • HP JetDirect连接的打印机

现在,大多数系统会在系统启动或连接设备时尝试自动检测和自动配置本地硬件。 同样,可以自动检测许多网络打印机。 您可以使用CUPS Web管理工具((http:// localhost:631或http://127.0.0.1:631)搜索或添加打印机。许多发行版包括其自己的配置工具,例如SUSE系统上的YaST。图4说明了Fedora Core 5上的system-config-printer工具。

图4.在Fedora Core 5上使用system-config-printer

您也可以从命令行配置打印机。 本教程的其余部分将向您展示如何进行。 对这些材料的理解将帮助您在GUI界面上回答考试问题。

在配置打印机之前,您需要有关打印机及其连接方式的一些基本信息。 为了说明,我们将使用通过D-Link打印服务器连接的Xerox Docuprint C20。 打印服务器提供LPD打印功能。 要配置它,我们将需要IP地址(在本例中为192.168.0.10)和LPD服务器上的打印机队列名称。 此设置在打印服务器中,在这种情况下为PS-66D975-P1。 如果远程系统需要用户标识或密码,那么您还将需要该信息。

您还需要知道要为打印机使用哪种驱动程序。 检查在LinuxPrinting.org(见相关主题在本教程后面的链接),看看是否有适合您打印机驱动程序。 lpinfo命令还可以帮助您识别可用的设备类型和驱动程序。 使用-v选项列出支持的设备,并使用-m选项列出驱动程序,如清单23所示。

清单23.可用的打印机驱动程序
lyrebird:~ # lpinfo -m | grep -i "docuprint.c"
Xerox/DocuPrint_C6-cdj550.ppd.gz Xerox DocuPrint C6 Foomatic/cdj550 (recommended)
Xerox/DocuPrint_C8-cdj550.ppd.gz Xerox DocuPrint C8 Foomatic/cdj550 (recommended)
Xerox/DocuPrint_C11-cdj500.ppd.gz Xerox DocuPrint C11 Foomatic/cdj500
Xerox/DocuPrint_C11-hpdj.ppd.gz Xerox DocuPrint C11 Foomatic/hpdj
Xerox/DocuPrint_C11-pcl3.ppd.gz Xerox DocuPrint C11 Foomatic/pcl3 (recommended)
Xerox/DocuPrint_C20-cljet5.ppd.gz Xerox DocuPrint C20 Foomatic/cljet5
Xerox/DocuPrint_C20-hpijs.ppd.gz Xerox DocuPrint C20 Foomatic/hpijs
Xerox/DocuPrint_C20-Postscript.ppd.gz Xerox DocuPrint C20 Foomatic/Postscript
(recommended)
Xerox/DocuPrint_C55-Postscript.ppd.gz Xerox DocuPrint C55 Foomatic/Postscript
(recommended)

Docuprint C20的几种选择在此处显示。 推荐的驱动程序是PostScript驱动程序,这并不奇怪,因为该打印机支持PostScript。 同样,如果你不能找到列出打印机,支票在LinuxPrinting.org(参见相关主题 )为相应的驱动程序。 驱动程序采用PPD(PostScript打印机描述)文件的形式。

现在,您已经掌握了基本信息,可以使用lpadmin命令配置打印机,如清单24所示。请注意,该系统未列出特定的Xerox Docuprint驱动程序,因此我们改用通用的PostScript驱动程序。

清单24.配置打印机
[root@attic4 ~]# lpinfo -m | grep -i generic
textonly.ppd Generic text-only printer
postscript.ppd.gz Generic postscript printer
[root@attic4 ~]# lpadmin -p xerox1 -E -m "postscript.ppd.gz" \
> -v "lpd:192.168.0.1/PS-66D975-P1" -D "Xerox 1"
[root@attic4 ~]# lpstat -a
anyprint accepting requests since Sat 12 Aug 2006 04:07:46 PM EDT
r220 accepting requests since Tue 22 Aug 2006 11:13:40 AM EDT
xerox accepting requests since Tue 22 Aug 2006 11:13:40 AM EDT
xerox1 accepting requests since Tue 22 Aug 2006 11:17:59 AM EDT

如果需要除去打印机,请使用lpadmin-x选项,如清单25所示。

清单25.卸下打印机
[root@attic4 ~]# lpadmin -x xerox1

您还可以使用lpadminlpoptions命令设置各种打印机选项。

假脱机文件

CUPS使用/ var / spool / cups目录进行假脱机。 通常,在安装CUPS时可以正确设置。 如果您使用的是LPD守护程序,则将假脱机文件存储在打印机“ xerox”的/ var / spool / lpd / xerox等目录中。 假脱机目录和文件应设置权限,以防止打印系统以外的用户读取或写入它们。

其他输入过滤器

If you are using LPD, LPRng, or another printing system, you will probably use either magicfilter or apsfilter for converting input files to PostScript format, and you will probably use Ghostscript as the printer driver for non-PostScript printers. Configuration for printers and filters will be in /etc/printcap. If you are using these, consult the man pages or online documentation such as the Apsfilter handbook listed in Related topics later in this tutorial.


翻译自: https://www.ibm.com/developerworks/linux/tutorials/l-lpic1107/index.html

cmyk列印颜色

cmyk列印颜色_列印相关推荐

  1. excel查找一列重复项_列中最后一项的Excel查找公式

    excel查找一列重复项 How can you get the last number in an Excel column? I needed to do that in one of my sa ...

  2. mysql按照列构建索引_列存储索引增强功能–在线和离线(重新)构建

    mysql按照列构建索引 In this article, we will explore ' Clustered columnstore online index build and rebuild ...

  3. 行存储索引改换成列存储索引_列存储索引增强功能–数据压缩,估计和节省

    行存储索引改换成列存储索引 Data compression is required to reduce database storage size as well as improving perf ...

  4. C#.Net工作笔记019---葡萄城控件FlexGrid自定义风格_比如给某列设置某个颜色_该颜色不受选择行的影响

    技术交流QQ群[JAVA,C,.NET,BigData,AI]:170933152 项目中有个需求,就是,前两列,需要固定住,但是我们都知道固定列是,作为表的title部分的,也就是不能写入文字的, ...

  5. pb数据窗口如何设置一列中连续相同数据的背景颜色_数据可视化 | 想轻松入门,必走这7步!...

    - 点击上方 "中国统计网" 设置⭐星标不迷路!- 数据可视化的目的,是要对数据进行可视化处理,以使得能够明确地.有效地传递信息. --Vitaly Friedman 通俗一点讲, ...

  6. dataframe 如何选中某列的一行_如何用 Python 在笔记本上分析 100GB 数据?

    许多组织都想尽可能多地收集和利用数据,从而改进业务.增加收入和提升影响力.因此,数据科学家们要面对 50GB,甚至 500GB 数据集的场景变得越来越普遍. 目前,这些数据集处理起来有点麻烦.就大小而 ...

  7. ALV的颜色分为行的颜色、列的颜色和CELL的颜色

    ALV的颜色分为行的颜色.列的颜色和CELL的颜色. 任务要求,将一定的Tabellenfeld 用黄色填充,也就是说 CELL的颜色 DATA: ls_cellcolorTYPElvc_s_scol ...

  8. VBA小程序_遍历所有工作表_取消隐藏所有行_列

    Sub VBA小程序_遍历所有工作表_取消隐藏所有行_列()Dim shp As Shape, sht As WorksheetRem On Error Resume Next '忽略报错,防止有#N ...

  9. el-table 设置一列的颜色

    el-table 设置一列的颜色 在日常使用 el-table 中 有两种形式 一种是直接写死 column 另一种是大量的列 通过for循环遍历出来的 两种方法无论哪一种 其实核心思想都是 通过 t ...

  10. sql 数据库前两列值乘_数据库的基本概念:

    数据库的相关概念: 数据-data: 1.描述事物的符号 2.多种表现形式:文本,图形,音频,视频. 数据库-Database,DB 1.粮库,车库 2.存放数据的仓库在计算机中,按照一定的格式存放, ...

最新文章

  1. python 贴吧自动回复机-Python实现微信自动回复机器人详细教程
  2. xampp中php连接mysql数据库乱码解决
  3. 你认识它们吗?2014十大科技流行词
  4. java基本数据类型_Java 中有几种基本数据类型是什么?
  5. Codeforces Round #580 (Div. 2)
  6. html输入框只能输入几个,input 两个input框只能允许同时输入一个
  7. jzoj3056-数字【数位dp,统计,容斥】
  8. mysqlfront连接MySQL错误_使用MySql-Front远程连接MySQL失败的解决办法
  9. windows10上安装mysql
  10. 《神经网络与深度学习》最新版!
  11. 三角函数公式大全(速查手册)
  12. 怎样用计算机控制插座,电脑顺序开、关机控制插座 二
  13. Redis系列(五):Redis的过期键删除策略
  14. Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset I3D论文精读
  15. Game Plug-ins(2)
  16. Scratch与物理·天文:模拟中国嫦娥探月工程,探索月球的背面!
  17. 怎么写一个高性能的导出接口
  18. where we come
  19. 损失37亿!Intel将彻底退出傲腾存储业务;车主因眼睛小被自动驾驶误判“开车睡觉”;微信安装包11年膨胀575倍 | EA周报...
  20. NLP模型应用之三:GPT与GPT-2

热门文章

  1. 如何选用GPU云服务器?
  2. Linux性能分析命令
  3. K8s污点容忍度横向主节点
  4. 使用Python爬虫自动爬取沪港通每日持股数据
  5. 如何连接局域网_Minecraft我的世界局域网联机问题(windows平台)
  6. 服务器CPU和普通CPU的区别
  7. 程序员写代码也存在本手、妙手、俗手
  8. stata抓取html,stata reshape
  9. 一般哈达玛矩阵、沃尔什矩阵及CC哈达玛矩阵的生成
  10. Error:(3, 50) java: 程序包com.n.c.caa.cds.commons.constants不存在