CUPS学习五:打印机基础

一.打印机基础

    每个打印机队列都拥有相关名称。打印机名必须以字母开头,且可包含127个字母、数字和下划线(_)。由于不区分大小写,所以PRINTER、Printer和printer都相同。

      1. 打印机设备

打印机队列拥有相关的设备。设备可以是并行口、网络接口或后台程序支持的任何其他接口。CUPS中的设备使用统一资源标识符(URI),它是Web浏览器中使用的统一资源定位符(URL)的更通用的形式。例如,linux中的第一个并行口通常使用并行设备URI:/dev/lp0。

      1.1 获取可用设备的列表

运行lpinfo命令后可以看到受支持设备的完整列表。

-v 选项表示你要得到可用设备的列表。每一行的第一个字是设备的类型(直接、文件、网络或串行)。其后是该设备的设备URI或模式名。文件设备具有file://directory/filename形式的设备URI,而网络设备使用人们更为熟悉的scheme://server/path形式。

某些后台程序也支持选项。这些选项添加在URI的末级,并以问号开头。在前面的设别列表中,串口URI中的?baud=115200选项指定了该端口支持的最大波特率。还可以指定其他选项,如奇偶校验、数据位和流控制。

        1.2 文件设备

文件设备允许配置打印机打印文件以进行测试,或者将打印文件发送给设备或命名管道。文件的绝对路径被添加到file:模式之后,形成URI:

file:/foo/bar/filename.prn

文件设备不支持任何选项

注意:在CUPS中,文件设备是作为内部设备实现的。这可防止使用打印机打印,原始打印文件,这是因为没有合适的过滤器,以将打印作业真正复制给文件。

此外,文件设备还覆盖正常文件。由于cupsd通常以root身份运行,所以千万不要配置打印机而使其指向/etc/passwd之类的重要文件。

       1.3 HTTP和IPP设备

HTTP和IPP设备允许你将打印作业发送给打印机或支持IPP的服务器。HTTP设备使用"http:"模式名处理URI,而IPP使用"ipp:"模式名处理URI。这些设备不支持设备URI中的任何选项。但只需少量的改动,打印作业选项就可被传送给远端设备。

如果远端设备需要的话,在设备URI中还可嵌入用户名和密码:

http://username:password@server/path

ipp://username:password@server/path

CUPS服务器支持使用下列URI的打印机:

http://server/printers/name

http://server:port/printers/name

ipp://server/printer/name

ipp://server:port/printers/name

此处name是打印机名。类似地,可使用下列URI:

http://server/classes/name

http://server:port/classes/name

ipp://server/classes/name

ipp://server:port/classes/name

带有网络接口的打印机和外部网络打印服务器使用不同的URI。

          1.4 LPD设备

LPD设备支持传统逐行打印机守护协议。该协议在RFC1179中说明。Microsoft在TCP/IP Printing Service中实现了该协议。

LPD设备使用的URI为:

lpd://server/name

此处name是远程打印机队列的名称

大多数LPD打印机只需要基本URI:

lpd://server/name

如果打印作业到达了打印机,但并不进行打印,则标题和顺序选项会纠正这种情形:

lpd://server/name?banner=yes

lpd://server/name?order=control,data

lpd://server/name?banner=yes+order=control,data

大多数网络打印机和打印服务器一般会忽略输出格式。

         1.5 并行设备

并行设备支持系统中的标准并逐行打印机端口。设备URI由模式名及其后的设备文件名组成。下列URI在各个版本的Linux中都可使用,且都指第一个并行端口:

parallel:/dev/lp0

parallel:/dev/par0

parallel:/dev/parallel/0

要确定系统所用的设备文件名,可使用上述lpinfo命令。并行设备不支持任何选项。

          1.6 串行设备

串行设备支持系统中的标准RS-232串行端口。设备URI由模式名及其后的设备文件名和任意选项组成。下列URI在各个版本的Linux中都可使用,且都指第一个串行端口:

serial:/dev/ttys0

serial:/dev/serial/0

串行后台程序支持若干选项:

串行设备选项
选项 s说明
baud = N 设置串口的速度,以位/秒(波特率)为单位。默认值通常是9600波特率。最大值由ipinfo命令提示
bits = 7 将每个字符的数据位数设为7
bits = 8 将每个字符的数据位数设为8(默认值)
flow = rtscts 设置流控制,以使用request-to-send(RTS)和clear-to-send(CTS)信号线
flow = dtrdsr 设置流控制,以使用data-terminal-ready(DTR)和data-set-ready(DSR)信号线
flow = hard 设置流控制,以使用request-to-send(RTS)和clear-to-send(CTS)信号线
flow = none 安全不使用流控制(默认值)
flow = soft 使用XON和XOFF字符执行流控制。该方法对于打印机一般不太可靠
parity = even 发送每个字符的同时均发送奇偶校验位。所有位的总和必须为偶数
parity = none 不发送奇偶校验位(默认值)
parity = odd 发送每个字符的同时均发送奇偶校验位。所有位的总和必须为奇数

在以19200波特工作的端口1上的串逐行打印机如要使用7个数据位、奇偶校验和DTE-DSR流控制,则需要使用下列设备URI:

serial://dev/ttys0?baud=19200+bits=7+parity=even+flow=dtedsr

       1.7 SMB设备

SMB设备支持使用SMB协议的Windows打印机进行打印。它是由SAMBA软件提供的。

SMB打印机的设备URI如下:

smb://workgroup/server/name

此处workgroup是服务器所属工作组的名称,server是服务器的NetBIOS名称,而那么是打印机的共享名。“ESP”工作组中“foo”服务器上名为“bar”的打印机的URI如下所示:

smb://ESP/foo/bar

如果共享打印机需要用户名和口令,则它们的URI可能采用下列形式:

smb://username:password@workgroup/server/name

        1.8 Socket设备

通过使用TCP/IP Socket,socket设备支持直接打印,这通常称为AppSocket打印或JetDirect协议。其设备URI只需要服务器名称和可选的端口号:

socket://server

socket://server:port

默认端口号为9100。所有的HP JetDirect接口和许多其他网络打印机都使用该端口号。

socket设备是网络打印机或服务器支持的性能最好且最可靠的设备。socket设备也可以将打印数据以流的形式发送给打印机,而其他网络设别则需要将打印数据存储在临时文件中,然后才将此文件发送给打印机。

         1.9 USB 设备

USB设备支持通用串行总线(USB)进行打印。USB打印机的设备URI各式各样,Linux的各个发行包使用的设备URI也不尽相同。例如:

usb:/dev/upltN

usb:/dev/unlptN

usb:/dev/usblpN

usb:/dev/usb/lpN

usb:/dev/usb/usblpN

此处N是以0开头的USB打印机编号。与并行设别类似,USB设备不支持任何选项。

2. 打印机驱动程序

打印机队列通常也拥有相关的PostScript打印机说明(PPD)文件。PPD文件说明每台打印机的功能、所支持的页面大小等。CUPS中的PostScript和非PostScript打印机都使用PPD文件。你可以直接从打印机制造商那里获取PostScript打印机的PPD文件。Adobe公司维护着一个许可打印机所有的PPD文件的档案库,其网址如下:

http://www.adobe.com/prodindex/printerdrivers/winppd.html

非PostScript打印机的PPD文件有五种来源。首先,CUPS就带有8份PPD文件,这些文件为大量的EPSON、Hewlett Packard和Okidata打印机提供了基本的打印服务。由于编写这些事例驱动程序是为了支持尽可能多的打印机,所以他们只提供基本的打印功能。尤其是,喷墨打印机驱动程序的质量大打则扣。

所幸的是,CUPS可以使用很多高质量的打印机驱动程序。

提供CUPS打印驱动程序的网站
URL s说明
http://www.linuxprinting.org/cups-doc.html CUPS-o-matic:在CUPS中使用Ghostscript打印机驱动程序

http://oss.software.ibm.com/developer/

opensource/linuxprojects/omni

IBM开发的OMNI打印机驱动程序
http://gimp-print.sourceforge.net/ 在CUPS中使用的相片质量级的免费打印机驱动程序
http://www.easysw.com/printpro 在CUPS中使用的商业打印机驱动程序

未完待续...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章