linux下CUPS学习心得

CUPS学习报告

首先,我们学习CUPS之前,我们应当了解一下LINUX打印原理:

Linux打印原理

普通文件和各类图形文件经过适当的转换器转化成PostScript文件,在由GhostScript转换成打印机语言
打印机流程:

在这里插入图片描述

在打印过程中,通常是程序产生输出并以管道的方式传送给LPR ,或者直接用LPR打印一个文件,LPR与打印机后台程序通过网络链接,传输相应的数据与选项,打印机后台服务程序在相应的spooler目录存储,在可以打印的情况下将任务传输给打印机。
最近看了CUPS的官网,了解了相关架构,在这里记录一下所学内容。
首先,什么是CUPS。CUPS是围绕中央打印调度过程设计的,分派打印作业,处理管理命令,向本地和远程程序提供打印机状态信息,并根据需要通知客户。CUPS提供了完整的基于IPP/1.1的打印系统,包括basic,digest和本地认证验证,用户,域,基于IP的访问控制,128位加密。CUPS除了提供标准的打印命令,还提供了Berkeley(lpr)和system(lp)打印命令。
就目前而言,打印机有三种模式:
第一种,直接将PostScript文件给CUPS的后台,再将打印流传输到打印机去处理,通常而言,这种打印机价格不菲。
第二种,是交给CUPS的内部程序处理,将PostScript转化成raster格式到打印机接口,这种方式驱动不多
第三种,也是最常见的叫做GhostScript格式的驱动模式,它与第二种类似,只是将内置解释器换成了外置的叫做GhostScript来解释PostScript文件 。
CUPS使用的是IPP标准,它比LPD更加的安全。CUPS采用的另一个标准就是PPD文件格式,这是Adobe另外一个用于PostScript打印机的标准。
CUPS还采用了很多过滤器用于传输数据到打印机的方法,有后端过滤器,文档转换过滤器,接口过滤器。
接下来有CUPS的几种通信协议:
1)LPD(Line Printer Daemon:行式打印机后台程序)
优点:使用频率高,支持所有Unix打印系统
缺点:安全性差,不支持验证功能
2)IPP(Internet Printing Protocol:因特网打印协议)
优点:利用HTTP的加密与验证机制
3)HTTP(HyperText Transfer Protocol:超文本传输协议)
4)SMB(Server Message Block:服务器信息块协议)
然后是CUPS的打印模式:C/S
1)服务端
打印队列(Print Queue)
过滤程序(Filter):把将要打印的文件转换为打印设备看得懂得格式
打印设备(Print Device):本地打印机或网络打印机
打印计划(Print Job)
2)客户端

也看了一点CUPS源码,对其中的一些部分也有所了解,可以参考examples中的代码,其中testppdx.ppd就是PPD源码,我试着用Ubuntu中的打印机,添加了127.0.0.1的本地打印机,用的是testppdx.ppd,对应着来看会有更深刻的理解。
其中的一行代码,*cupsFilter:”application/vnd.cups-raster 0 -”就是说明了当前PPD所使用的过滤器,过滤器就是将各种各样的文件转化成当前打印机可以识别的文件,也就是我们需要熟悉掌握的。
然后去看CUPS的fillter文件,里面就是各种各样的文件了,比如rastertohp.c,这就是转化成HP打印机可以识别的文件,还有一些common,error都是需要去仔细阅读的。
当然,还有backend这种后端过滤器,用来选择是usb协议还是ipp协议之类的,我之后要用的就是usb-libusb这种,也简单看了一下其中的函数封装,一些数据定义什么的。

名词解释:CUPS是围绕中央打印调度过程设计的,分派打印作业,处理管理命令,向本地和远程程序提供打印机状态信息,并根据需要通知客户。CUPS提供了完整的基于IPP/1.1的打印系统,包括basic,digest和本地认证验证,用户,域,基于IP的访问控制,128位加密。CUPS除了提供标准的打印命令,还提供了Berkeley(lpr)和system(lp)打印命令。

Scheduler是一个服务器应用程序,用于管理系统上的HTTP,IPP请求。它为传统的单线程服务器进程。

Config files 配置文件,调度程序用来存储服务器设置,可用类,可用打印机,当前通知订阅,支持的文件类型和过滤器

Job files 作业文件,调度程序将它存储在假脱机目录中。

IPP是一种网络打印协议,定义了打印,管理打印作业以及打印机喧嚣的标准协议,IPP还支持验证,以及访问控制,还支持加密,比传统的LPD协议安全。

LPD(Line Printer Daemon:行式打印机后台程序)它接受LPR协议
发来的打印工作,收到任务后,会暂存到打印队列。它的优点是使用频率高,支持所有的UNIX系统,缺点就是不够安全,不支持验证功能。

LPR(打印命令)使用方式:lpr[-P printer]
举例:将www.c和kkk.c传给打印机lp
Lpr –Plp www.c kkk.c

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值