|
|
| FreeBSDhandbook中文版11打印(3)使用打印机 | | 发布日期:2005-3-28 浏览:411次 | | 关键字: | 目录
11.5使用打印机 11.6标准spooler之外的选择
=============================================================
11.5使用打印机 这一节将告诉你如何在FreeBSD下使用打印机。这里有份使用者等级命令的概述。 lpr 打印工作 lpq 检查打印机队列 将工作从打印机队列中删除 lprm 也有系统维护使用的命令,lpc,用来控制打印机及其队列。在管理打印机这一节里有 更详细的说明。 lpr,lprm和lpq这三个命令都接收-Pprinter-name这个指定在/etc/printcap文件里设定 的打印机/队列的参数。允许你对不同的打印机做要求、删除,以及检查工作。如果你没有 使用-P参数,那么这些命令将使用PRINTER环境变量所指定的打印机。若你也没有 PRINTER环境变量,那么这些命令则会对别名为lp的打印机指定动作。 此后,默认打印机指的就是以PRINTER环境变量设定的打印机或是当lp环境变量不存 在时,别名为lp的打印机。 11.5.1打印工作 要打印文件,输入: lprfilename... 这将把所有列出的文件以默认打印机打印。如果你没有指定任何文件,那么lpr将会从 标准输入读入资料。下面这个例子将会打出一些重要的系统文件: lpr/etc/host.conf/etc/hosts.equiv 若要指定以特定的打印机输出,输入: lpr-Pprinter-namefilename... 下面这个例子会将当前目录下的文件列表从名为rattan打印机输出: ls-l|lpr-Prattan 因为lpr命令之后没有指定任何一个文件,lpr将会从标准输入读入资料以打印出来,即 由ls-l命令所产生的输出。 第61页FreeBSD使用手册 lpr命令有许多参数如控制输出格式、套用文件转换、一次打印出多份,等等。请参看 打印参数这一节里有更详细的说明。 11.5.2检查打印工作 当你使用lpr打印时,一起送到LPDspooling系统的资料称为一个“打印工作”。每一 台打印机都有一个打印工作队列,而你的打印工作和其它的打印工作一样在队列里等待打 印。打印机会将先打印先送达的工作。 要显示默认打印机的队列,输入lpq即可。若要指定打印机,请指定-P参数。例如 lpq-Pbamboo 这个命令会显示叫做bamboo的打印机队列。这里有一份lpq命令的输出例子: bambooisreadyandprinting RankOwnerJobFilesTotalSize activekelly9/etc/host.conf,/etc/hosts.equiv88bytes 2ndkelly10(standardinput)1635bytes 3rdmary11...78519bytes 上面显示一共有三个工作在bamboo的队列里。第一个工作由使用者kelly送出,“工作 代码”为9。每一个工作都会有个唯一的工作代码。通常你可以忽略工作代码,但是如果你 要取消某个工作时,你就会需用知道工作号码。详情请参看删除队列这一节。 工作号码9里包含了两个文件。用lpr送多个文件将会被视为同一个工作。这是目前正 在处理的工作(注意“Rank”栏标示的active),即打印机现在应该就在打印这个工作。第二 个工作的资料是用lpr从标准输入接收资料的。而第三个工作是由使用者mary送出的。这 是一个较大的工作。而她要打印的文件因为太长而放不下,所以lpq命令只显示三个点。 lpq最前面的输出通常可以看出打印机现在在做什么(至少是LPD觉得打印机现在应该是在 做什么)。 lpq命令可以使用-l参数以得到更详细的列表。这里有一个lpq-l的输出范例: waitingforbambootobecomeready(offline?) kelly:1st[job009rose] /etc/host.conf73bytes /etc/hosts.equiv15bytes 第62页FreeBSD使用手册 kelly:2nd[job010rose] (standardinput)1635bytes mary:3rd[job011rose] /home/orchid/mary/research/venus/alpha-regio/mapping78519bytes 11.5.3删除打印工作 如果你改变主意不想打印你的工作了,你可以用lprm命令把他们从打印队列中删除。 通常你也可以用lprm把一个正在处理的工作删除,不过可能还是会打印出部分或是全部的 文件。 要从默认打印机里删除工作,首先,用lpq找出工作代码,然后输入: lprmjob-number 如果要从指定的打印机删除工作,那么用-P参数。下列的命令从打印机bamboo的队 列中删除工作号码为10的工作: lprm-Pbamboo10 lprm命令有一些常用的用法: lprm- 将(默认打印机)里所有属于你的工作都删除。 lprm-Prattan- lprmuser 将(默认打印机)里所有属于使用者user的工作皆删除。只有超级使用者可以删除其 它人的工作,你只能删除你自己的工作。 lprm 若不指定工作号码、使用者名称或是-,lprm将删除目前默认打印机正在处理的工 作,但前提是这个工作必需是属于你的。超级使用者可以删除任何目前正在处理的 工作。 若使用-P参数配合上述的常用用法,则上述的动作将对指定的打印机动作而不是对默 认打印机。下列的命令将会删除目前使用者在打印机rattan队列中的所有工作: 注意:如果你使用的是网络打印机,lprm将只允许你从输出工作的机器删除该工作。 第63页FreeBSD使用手册 下面这些命令可以说明这个概念: lpr-Prattanmyfile rloginorchid lpq-Prattan RankOwnerJobFilesTotalSize activeseeyan12...49123bytes 2ndkelly13myfile12bytes lprm-Prattan13 rose:Permissiondenied logout lprm-Prattan13 dfA013rosedequeued cfA013rosedequeued 11.5.4在纯文字之外:打印参数 lpr命令提供控制格式输出、转换图形及其它文件格式、一次打出多份、工作处理方式 等参数。这一节将一一介绍。 11.5.4.1格式输出与转换参数 下列的lpr命令控制文件输出的格式。如果你的打印工作里没有纯文字或是你希望纯文 字通过lpr处理后以特定的格式输出时,你可以使用这些参数。 举例来说,下面的命令从叫做bamboo的打印机将DVI文件(由TeX排版系统产生) fish-report.dvi打出: lpr-Pbamboo-dfish-report.dvi 这些参数将套用这个工作里的每个文件,所以你不能把DVI和ditroff文件在同一个工 作里一起处理,而要分两次工作用不同的转换参数。 注意:这些参数除了-p和-T需要为指定的打印机安装转换的过滤程序外,其它的都不 用。举例来说,参数-d需要安装DVI转换过滤程序。转换用的过滤程序这一节有较详细的 说明。 c 第64页d f g inumber l n p Ttitle t v 下面是一个以默认打印机打印格式化过的lsmanualpage的例子: zcat命令将ls原始数据解压缩并传送给troff命令,将该数据格式化后以GNUtroff格式 输出给lpr送给LPDspooler处理。因为我们在使用lpr命令时使用了-t参数,所以spooler 在打印时会把GNUtroff转换成默认打印机所能了解的格式。 将输出缩进number个字符。如果你省略number,则缩进8个字符。这个 参数只有在某些转换用的过滤程序上有效。 原封不动的打出文字数据,包括控制字符。 打印ditroff(deviceindependenttroff)数据。 在打印之前以pr格式化输出。请参见pr以取得更多的信息。 以title取代prheader中的文件名。这个参数只有在配合-p参数使用时才有 效。 打印troff数据。 打印raster数据。 zcat/usr/share/man/man1/ls.1.gz|troff-t-man|lpr-t 打印cifplot文件。 打印DVI文件。 打印FORTRAN文本文件 打印plot数据。 注释:请不要在-i和数字之间加上空白 FreeBSD使用手册 第65页11.5.4.2工作处理方式参数 #copies m s r 11.5.4.3HeaderPage参数 这些参数就没有作用了。请参见HeaderPages这一节以了解如何设定headerpages。 1.Ctext 将同一工作里的每个文件都打出copies份。系统管理员可以将这个参数关闭,以减 低打印机的障碍并鼓励使用复印机。请参见限制打印多份这一节的说明。 这个例子将会从默认的打印机打出三份parser.c,然后打出三份parser.h: lpr-#3parser.cparser.h 完成打印工作后,便通知使用者。若使用这个参数,当打印工作完成后,LPD系统 将会写信给你。在这封信中将会告诉你你的工作是否成功地打出或是有错误以及 (通常会)告诉你错误的原因。 不要将要打印的文件拷贝到spooling目录,而只要以symboliclinks的方式取代。 如果你要打印大的文件,你可考虑用这个参数。这可以节省你spooling目录的空间(否 则spooling目录所在的文件系统可能会空间不足)。同时他也可以省下LPD将文件 拷贝到spooling目录所需的时间。 这么做有一个缺点就是当打印还没结束时,你不能修改或删除打印中的文件,因为 LPD在打印时还会用到原始的文件。 Note:如果你是用网络打印机打印,那么LPD还是会把你的文件拷贝到远程的机器, 所以参数-s只有在本机上打印时才有用。 当你的文件已经拷贝到spooling目录时,或是用-s参数且打印完成时,就将原本的 文件删除。请小心使用这个参数! 有一些参数是设定lpr打印在headerpages上的文字。如果打印headerpages的话,那么 将headerpage上的机器名称以text取代。机器名称通常是打印送出工作的机器名称。 2.Jtext FreeBSD使用手册 下列的参数将会让lpr告诉LPD以特别的方式处理工作: 第66页FreeBSD使用手册 将header上的工作名称以text取代。工作名称通常是一份打印工作里的第一个文件名 称,如果你是从标准输入打印数据的话,那么将会是stdin。 3.h 不要打印headerpage。 注释:在某些机器上,由于headerpages产生的方式不同,这个选项可能会无效。请参 见HeaderPages这一节里更详细的说明。 11.5.5管理打印机 作为打印机管理员,你必需安装、设定以及测试它们。你可以用lpc这个命令: 1.让打印机开始工作或停止工作。 2.开启或关闭他们的队列。 3.重新安排队列里工作的顺序。 我们得先知道的一个概念是:如果一个打印机已经停止工作了,他将不会将队列里的任 何东西打出。使用者仍然可以将工作送过来,但是这些工作将会在队列里等待直到打印机开 始工作或是队列被清空了。 如果队列被关闭了,那么没有使用者(除了root之外)可以将工作送给打印机。只有已 经开启队列的打印机可以接收其它人将工作送过来。一个打印机可以为一个已经关闭的队列 开始工作。在这个情况下,原本存在队列中的工作将会一一的被打印直到没有工作为止。 通常,拥有root权限的使用者才可以用lpc下命令。一般的使用者只能用lpc命令来 查询打印机工作以及重新启动当掉的打印机。 以下是一份lpc的命令列表。大部份的命令都需要指定printer-name以指定要对哪一 台打印机下命令。printer-name也可以用all表示所有排在/etc/printcap里的打印机。 abortprinter-name 取消目前的工作,同时也停止打印机工作。如果队列被关闭,使用者仍然可以送工作给 打印机。 cleanprinter-name 将打印机spooling目录中的旧文件删除。有时候LPD可能没有把打印完的工作从 spooling目录中删除,尤其是当打印的工作发生错误时或是有其它命令将其中止时。 第67页FreeBSD使用手册 这个命令将会找出这些不该存在于spooling目录中的文件并将他们删除。 disableprinter-name 关闭队列以停止接收新工作。如果打印机并未停止工作,那么队列中剩余的工作将会继 续打印直到队列中没有工作为止。关闭队列后,root仍然可以继续送工作给打印机。 这个命令在你测试一台新打印机或是新的过滤程序时特别有用:你可以将队列关起来然 后以root测试打印的工作。其它使用者则无法将工作送过来,除非你测试完毕后将队 列以enable命令打开。 downprinter-namemessage 这个命令等于是disable后再接着stop命令。其中message是当有使用者以lpq检查 打印机队列或是以lpcstatus命令检查打印机状态时所显示的信息。 enableprinter-name 将打印机队列打开。这样使用者就可以将工作送给打印机,但是只有在打印机已经开始 工作后,队列里的工作才会被打出来。 helpcommand-name 将command-name命令的说明打出。如果没有指定command-name,那么将会打出所有可 用的命令。 restartprinter-name 重新启动打印机。如果因为某些情况使得LPD当掉了,一般的使用者可以用这个命令让 打印机重新开始工作。但是他们无法用这个命令让由stop或down命令停止的打印机开 始工作。restart命令等于abort再接着start命令。 startprinter-name 让打印机开始工作。打印机会将队列里的工作打出。 stopprinter-name 停止打印机工作。打印机将会先完成目前的工作然后停止打印队列中的任何工作。打印 机停止工作后,使用者仍然可以把工作送给一个未关闭的队列中。 topqprinter-namejob-or-username 第68页FreeBSD使用手册 将打印机printer-name队列中工作代号为job或是属于使用者username的工作移到队 列的最前面。在这个命令里,你不可以将all填在printer-name上指定所有的打印机。 upprinter-name 这是和down命令相对的指令。等于是start后再接着enable命令。 lpc能以参数的方式接收上述的命令。如果你不输入任何命令,lpc将会进入交谈模式, 在这里你可以一直输入命令直到你以exit命令、quit命令或是输入文件结尾字符为止。 11.6标准spooler之外的选择 如果你读完了这份文件,现在你应该已经彻底了解FreeBSD提供的LPDspooling系统。 不过你可能觉得这个系统有些缺点,因此你可能会想到:“除此之外还有哪些spooling系统(可 以配合FreeBSD使用)?” 不幸的是,只有两种选择。它们分别是: LPRng LPRng指的是“下一代的LPR”。LPRng是将PLP完全重写。PatrickPowell和JustinMason (PLP的主要负责人)一起合作LPRng。LPRng的网站是ftp://dickory.sdsu.edu/pub/LPRng/。 PLP,thePortableLinePrinterSpoolerSystem PLP是以由PatrickPowell所发展的软件为基础,现在由网络上的一群人共同维护发展。你 可以在(ftp://ftp.iona.ie/pub/plp/)这个网站取得这个软件。它和BSDLPD很相似,不过加 强了一些功能,包括: 1.更好的网络支持,包括内建一网络打印机支持、以NIS管理的printcaps以及用NFSmount 的spooling目录。 2.成熟的队列管理。允许多台打印机使用同一个队列、在队列之间传送工作或是将队列 重新传给其它打印机。 3.远程控制打印机 4.工作优先权设置 5.较复杂的保密及访问设置
| | 关键字: |
|
|