二、通用Unix打印系统(CUPS)

2.1 CUPS简介

CUPS使用的是IPP(网络打印协议)标准,这是从HTTP中衍生出来的IETF协议。CUPS后台程序可以接受IPP请求,并且将其作为和客户端应用程序进行通信的主要方法。作为一个Internet协议,IPP使得在广域网上配置打印服务器变得非常容易。CUPS也支持其它可以和打印机进行通信的流行协议,因此也可以将其作为一个连接不支持IPP协议打印机的一个桥梁。和其所基于的HTTP协议一样,IPP也可以通过使用认证和SSL连接来加强安全性。CUPS本身都支持这些功能,也就是说它可以进行安全打印。

CUPS采用的另外一个标准是PPD(PostScript Printer Definition)文件格式,这是Adobe另外一个用于PostScript打印机的标准。

CUPS还采用了很多过滤器用于传送数据至打印机的方法。与BSD类的假脱机程序不同的是,这是通过一种更加智能的方式来完成的。下面是在CUPS中可用的部分过滤器:

1.后端过滤器。它可以提供最终数据进行传送的端点。这些过滤器可用于并口、TCP/IP套接字连接、LPD和其它端点的连接。

2.文档转换过滤器。该过滤器是作为CUPS一个标准配置一起发行的。它可以转换图像、ASCⅡ文本、PDF文件和HP-GL/2矢量文档至PostScript。

3.接口过滤器。它可以将文档从PostScript转换至其它过渡的文件格式。

和其它的打印系统一样,为了能够在非PostScript打印机上正确打印,翻译过滤器也是必须的。CUPS允许PPD文件记述用于将文档换成设备本地语言的过滤器,比如:

*cupsFilter:  "application/vnd.cups-raster 0 rastertohp

这是用于HP Deskjet打印机的一个PPD文件。它的意思是rastertohp程序(这是一个过滤器,通过位于/usr/lib/cups/filter)将把MIME数据类型的文件“application/vnd.cups-raster”作为输入,并且将其转换成可直接送至打印机的格式,在此就是HP PCL数据。

CUPS可以进行打印机分类,该功能最初用于Sy stem V打印系统中。它可以将打印机按组“分类”,并且自动执行负载均衡功能。一个分类可以将任务传送至一个正常的队列中,一旦任务提交,就会被分配给第一个可用的打印机来执行打印任务。

CUPS一个非常有用的功能就是可以自动进行网络配置。通过广播协议,所有位于同一个局域网的CUPS监控程序都可以相互通信,某一服务器上的队列配置可以被浏览,并可用于其它的系统之上。CUPS也可以为那些位于不同服务器上却有着同样名字的打印机提供一个“默认分类” ,并自动为其提供负载平衡。CUPS也支持LSP(服务定位协议),该协议可以发送广播以表明自己已经在线。

在客户端,CUPS有LPD类和System V类的接口,这就意味着它可以提供lpr、lpq、lp、lpstat等系统命对于IPP客户端和CUPS监控程序进行通信的过程来说,所有这些命令都是非常重要的。

CUPS还有一个基于Web的系统管理界面,可以直接通过Web浏览器进行配置和管理,或者检查打印机的状态。这显然要比使用命令或直接通过编辑/etc/cups/printers.conf文件来定义队列要直观得多。

CUPS打印不需要将输出格式限制在PostScript。虽然其它一些打印系统也不一定有这样的限制,但是CUPS却将它做得更容易。前面我们已经看到了用于CUPS的PPD文件中是如何指定一个转换过滤器的,以及这些内容如何包含在MIME中。CUPS广泛使用了MIME类型来决定打印机间任务提交和最终数据之间的数据流。过滤器可以在*.convs文件(通常位于/etc/cups)中定义,该文件可以描述每一个过滤器程序作为接收输入的数据类型及作为输出的数据类型。对于一给定类型的任务,CUPS会聪明地在一个过滤器链中做出决定。

2.1应用程序接口

在Unix世界里,PostScript语言仍然是主要用于打印的接口。所有主要的应用程序都会输出通用的PostScript页面,而这些PostScript经过打印系统处理后再被打印出来。这显然有很大的局限性,因为应用程序并没有一种统一的、查询打印功能或获知任务是否被正确打印的途径。有少量的应用程序可以使用PPD文件来访问打印机功能,不过StarOffice和OpenOffice并不包含在内。

现在情况还是有所改观。比如,CUPS提供了一个基本的C API,它可以让应用程序更简单地和打印系统进行整合。这个API包含了通过IPP和CUPS监控程序进行通信的功能,以及读取和解析PPD文件的功能,这样,应用程序就具备了收集打印机详细信息的能力。但对于应用程序开发人员来说还有很大的局限性,因为它只能在CUPS和类似的IPP服务器上工作。

在软件方面,为了使打印更加容易,现在GNOME和KDE桌面项目都包含了一个中间层,分别是KDEPrint和GNOME。这些框架的目的是通过抽出基本的打印系统,为应用程序提供一个统一的API。

linux cups工作原理,Linux打印系统CUPS原理分析相关推荐

  1. Linux|Qt工作笔记-linux系统下安装qt4.5.3版本的详细步骤

    原文地址如下: https://blog.csdn.net/AmyAndTommy/article/details/81901005 第一步:下载qt-all-opensource-src-4.5.3 ...

  2. linux crontab工作日志,linux使用crontab执行定时任务

    1.当前有个项目,由于没能找到更好的方式解决这个问题,只能使用Linux的定时任务代替,使用crontab定时执行php文件等. 一般套件服务器配置差不多都安装了crontab服务,所以可以直接使用即 ...

  3. linux ftp 工作过程,linux中ftp的安装过程记录[运维篇]

    安装FTP的全过程记录,对于相同情况希望有所帮助.[centOS] 1.查询本机是否安装vsftpd: rpm -qa |grep vsftpd : 2.安装ftp服务 yum install vsf ...

  4. linux打印机测试程序,轻松了解Linux打印之CUPS软件

    轻松了解Linux打印CUPS .到目前为止,有关使用公共 UNIX 打印系统 (CUPS),这种打印系统可以为您的网络带来一种通用打印解决方案. Unix/Linux 打印界在很长一段时间内都没有什 ...

  5. Citrix XenApp和XenDesktop 打印系统解析②

    三.思杰通用打印解决方案 思杰的通用解决方案推出的时间很久了,在2004年的思杰iForum大会上,Citrix宣布推出通用打印机驱动程序(UPD)并激动的宣布,Citrix已经永久性的解决了打印的问 ...

  6. Citrix XenApp和XenDesktop 打印系统解析③

    Citrix Universal PrintServer(UPS) 3.3.1.Citrix UPS概述 Citrix UniversalPrinter Server(以下简称UPS)是一个XenAp ...

  7. linux 路由打印机,为 Linux 选择打印机 | Linux 中国

    Linux 为打印机提供了广泛的支持.学习如何利用它. 我们在传闻已久的无纸化社会方面取得了重大进展,但我们仍需要不时打印文件.如果你是 Linux 用户,并有一台没有 Linux 安装盘的打印机,或 ...

  8. linux佳能打印机服务,linux桌面打印机配置指南

    转载来源: linux桌面打印机配置指南| 2014-01-28 Linux下打印机适配难,主要是Linux版本太多,导致厂商无力也无太大兴趣关心其,个人刚好接触过这一块,专门整理一份文档方便查阅. ...

  9. (附源码)springboot基于WEB的高校文档打印系统 毕业设计101004

    Springboot 高校文档打印系统 摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以 ...

最新文章

  1. TVB家族剧巅峰之作,郑少秋最后的辉煌,风头却被罗嘉良抢了
  2. matlab图像相加例子,MATLAB图像处理例子
  3. 详解linux io flush
  4. gc:C语言的垃圾回收库-中文
  5. editor.md七牛云上传图片springboot_spring boot 若依系统整合Ueditor,部署时候上传图片错误解决...
  6. 使用shell做进制转换
  7. 软件工程 第二章 可行性研究
  8. Mybatis常见面试题
  9. 进程调度算法-高响应比优先调度算法(HRRN)
  10. JavaScript实现随机抽奖功能
  11. 我的求学十年(00至10):从中学到大学,年少轻狂立大志
  12. 归纳遇到的一些参考文献的格式问题
  13. 学习:SPWeb:Allusers、SiteUsers、Users和Sitegroups、Groups以及安全性编程
  14. 中南民族大学计算机科学学院转专业好吗,2021年中南民族大学大一新生转专业及入学考试相关规定...
  15. 盘古石杯电子取证比赛WP
  16. mysql的char在java中表示为_Java学习篇之-Mysql中varchar门类总结_mysql
  17. 复仇者联盟4影评数据分析
  18. Unity huatuo示例项目源码分析与启发
  19. 2023全国特种作业操作证高处安装、维护、拆除模拟考试试卷一[安考星]
  20. linux命令行蜂鸣声太大,在Linux Gnome系统上关闭终端的硬件蜂鸣声的方法

热门文章

  1. Clickhouse 专栏---数据模型之留存分析
  2. ViewModel是如何在配置更改后继续留存数据的
  3. Java04--运算符+分支结构+循环
  4. Matlab在不同坐标系中绘图(对数、极坐标、双轴图)以及极坐标和直角坐标的相互转换
  5. simulink模块名称显示设置_simulink模块名称继承
  6. 微信小程序电商商城系统怎样搭建?
  7. 办公自动化:PDF文件合并器,用Python将多个PDF文件进行合并
  8. 孙陶然:成功者风光的背后是和你一样的坎坷
  9. SyntaxError (语法错误)
  10. Java语言写点餐系统