全盘指南:在 Linux 中如何打字与印刷和治本打字与印刷机

全盘指南:在 Linux 中如何打字与印刷和治本打字与印刷机

1.3 Linux打字与印刷流程

如上海教室所示,Windows的打字与印刷种类布局是由叁个打字与印刷机假脱机程序(Spooler)和一多级的打字与印刷驱动组成。当中带方框的部分都以足以编写制定安装的。其中的打字与印刷驱动程序是指微软的群集驱动,也便是系统默许的驱动,而精致驱动就是在此基础上进行本性化定制。
独具匠心驱动包罗GPD文件和财富DLL,GPD文件便是二个剧本,定义了“打印机首要推荐项”旅长现身那八个设置,有何选项可选,能源DLL正是二个单独包涵Resource的DLL,提须求GPD使用在那之中的能源。
而在打字与印刷假脱机中:
打字与印刷处理器(也正是打字与印刷机驱动程序)担当SPL文件操作 EMF/RAW文件操作等;
Render-Plugin则能够对渲染绘制进程进展特别规的管理;
UI-Plugin 正是在“打印机首推项”中定义一些破例的安装页面。
言语监视器以及端口监视器和网络打字与印刷提供者大家在打印假脱机中开始展览介绍。
1.1、打字与印刷机假脱机程序(Spooler)

图片 1

  小编是贰个Linux系统管理员,如今本人多了一项附加的办事——帮一些Windows用户将PostScript文件调换为PDF格式。这是因为在Linux下有叁个无偿的Ghostscript工具,可以一本万利地贯彻这种转移;但Windows下未有免费的转换工具。
  
  作者想出一种方式,使得Windows用户不用读书Linux命令,只需简单地将文件“打字与印刷”,就足以成功退换,下边就来介绍一下。
  
  基本原理
  
  此方法的基本原理正是运用Ghostscript将PostScript文件转变到PDF格式,然后,通过Samba在Linux下创办一台虚构的PS-Printer打字与印刷机,再接纳该虚构打字与印刷机把调换后的PDF格式文件输出到二个分享目录中,供Windows用户选拔。上面简介一下所运用到的软件。
  
  1.Samba
  
  萨姆ba是八个运作于Linux蒙受下的软件,它提供了Windows访谈Linux的大桥,让用户能够在不一致的系统景况下有益地分享文件和打字与印刷机。
  
  2.Ghostscript
  
  在Ghostscript中带有了一个ps2pdf工具,该工具能将PostScript转为PDF格式。假如系统有gs命令,则表明已经设置了Ghostscript,否则须求依靠系统版本自行安装。
  
  设置情势
  
  1. 创建“打印”脚本
  
  创制多个剧本,将打字与印刷池中的PostScript文件转载成PDF格式,并把它输出到内定的目录下。通过萨姆ba分享该目录后,用户就足以翻阅所创设的PDF文件了。
  
  首先,为有关用户设置文件输出目录的读、写权限:
  
  #chown nobody /home/becks/pdf
  
  #chmod 740 /home/becks/pdf
  
  然后,根据实际须要设置任什么人的权位。图片 2

Linux对每台打印机都定义了二个打字与印刷缓冲区,打字与印刷机守护程序常常扫描打字与印刷缓冲区以查看有无要打印的新文件。假若存在,就按先进先出的逐条打字与印刷缓冲区中的文件。

先是附上查找Windows打字与印刷相关内容的链接,那几个分类下包罗了Windows打字与印刷的全部:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff551767(v=vs.85).aspx.aspx)

前提条件

为了更加好地球科学习本体系教程,你须求持有主题的 Linux 知识,和应用 Linux
系统施行本课程中的命令的技巧,你应当熟悉 GNU 和 UNIX®
命令的施用。不时分裂版本的顺序输出或许会差异,由此,你的结果或许与本学科中的示例有所分歧。

本课程中的示例使用的是
Fedora 27 的系统。

 

这种方法和别的面向桌面包车型地铁操作系统有比很大的两样,也多亏它让Unix打字与印刷落下了合情合理使用的信誉。在Windows和Mac
OS中有结合得相当好的API供应用程序使用,常常状态下都得以为打字与印刷机提供三个接口,以让应用程序不用关爱设备的具备细节。别的,打字与印刷API平时也是和图纸API整合在一道,并且可用来在显示屏上显得。这之中一部分成效已经在X1第11中学实现了。

1.1.2、打字与印刷假脱机的架构

文本转变过滤器

你能够运用 CUPS
打字与印刷好多项目标文书,包含明文的文本文件、PDF、PostScript、和各类格式的图像文件,你只须要提供要打字与印刷的公文名,除此之外你再不必要向
lprlp
命令提供更加的多的音讯。那一个美妙的壮举是经过行使过滤器来促成的。实际上,近来来最风靡的过滤器就就称为
magicfilter(奇妙的过滤器)。

当打字与印刷一个文书时,CUPS
使用多用途因特网邮件扩张(MIME)类型去决定适当的改造过滤器。别的的打字与印刷数据包大概接纳由
file 命令使用的奇妙数字机制。关于 file
可能神奇数的越多音信方可查看它们的 man 页面。

输入文件被过滤器调换来中间层的光栅格式也许 PostScript
格式。一些功课消息,比方打字与印刷数量也会被加多进去。数据最后经过三个后端发送到目的打字与印刷机。还只怕有局地能够用手动过滤的输入文件的过滤器(如
a2ps 或 dvips)。你能够透过这几个过滤器得到特殊格式的结果,可能去管理局地CUPS 原生并不支持的文件格式。

 

打印系统的根底是一个假脱机程序(Spooler)。它能够处理打字与印刷职分队列,而三个行列常常和四个打字与印刷机相关联,何况用户提交的天职都是比照先进先出的尺码来拍卖的。当二个打字与印刷任务被管理时,任务中的数据在送达打字与印刷机前一般都要通过自然数额的过滤器。Unix打字与印刷假脱机程序有很各个情势,在此将关心近期在Linux系统中动用大范围的二种形式:

参考“http://www.mamicode.com/info-detail-1527564.html”

累加打字与印刷机

CUPS 补助多样打字与印刷机,包涵:

  • 本地连接的并行口和 USB 口打字与印刷机
  • 因特网打字与印刷协议(IPP)打印机
  • 远程 LPD 打印机
  • 使用 SAMBA 的 Microsoft® Windows® 打印机
  • 使用 NCP 的 Novell 打印机
  • HP Jetdirect 打印机

当系统运营或然配备连接时,未来的大部连串都会尝试自动物检疫验和机关配置本地硬件。同样,大多互联网打字与印刷机也足以被自动物检疫验到。使用
CUPS 的 web 管理工科具(http://localhost:631 或者
http://127.0.0.1:631)去寻找或充分打字与印刷机。相当多发行版都包涵它们本人的布置工具,例如,在
SUSE 系统上的 YaST。图
2 显得了应用 localhost:631 的 CUPS 分界面,图 3 浮现了 Fedora 27 上的
GNOME 打字与印刷机设置对话框。

图片 3

图 2. 使用 CUPS 的 web 界面

图片 4

图 3. Fedora 27 上的打字与印刷机设置

您也足以从命令行配置打字与印刷机。在布置打字与印刷机在此之前,你供给一些有关打字与印刷机和它的连日格局的主干新闻。假若是贰个长途系统,你还需求贰个用户
ID 和密码。

你须求去领会您的打字与印刷机使用什么的驱动程序。不是有着的打字与印刷机都援助Linux,有个别打字与印刷机在 Linux 上压根就不可能使用,只怕成效受限。你能够去
OpenPrinting.org 去查看是还是不是有您的一定的打字与印刷机的驱动程序。lpinfo
命令也得以帮您鉴定分别有效的配备档次和驱动程序。使用 -v
选项去列出援助的设备,使用 -m 选项去列出驱动程序,如列表 14 所示。

  1. [ian@atticf27 ~]$ lpinfo -m |grep-i xp-610
  2. lsb/usr/Epson/epson-inkjet-printer-escpr/Epson-XP-610_Series-epson-escpr-en.ppd.gz
  3. EPSON XP-610Series,EpsonInkjetPrinterDriver(ESC/P-R)forLinux
  4. [ian@atticf27 ~]$ locate"Epson-XP-610_Series-epson-escpr-en.ppd.gz"
  5. /usr/share/ppd/Epson/epson-inkjet-printer-escpr/Epson-XP-610_Series-epson-escpr-en.ppd.gz
  6. [ian@atticf27 ~]$ lpinfo -v
  7. network socket
  8. network ipps
  9. network lpd
  10. network beh
  11. network ipp
  12. network http
  13. network https
  14. direct hp
  15. serial serial:/dev/ttyS0?baud=115200
  16. direct parallel:/dev/lp0
  17. network smb
  18. direct hpfax
  19. network dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/
  20. network dnssd://EPSON%20XP-610%20Series._ipp._tcp.local/?uuid=cfe92100-67c4-11d4-a45f-ac18266c48aa
  21. network lpd://BRN001BA98A1891/BINARY_P1
  22. network lpd://192.168.1.38:515/PASSTHRU

列表 14. 可用的打字与印刷机驱动程序

这个 Epson-XP-610_Series-epson-escpr-en.ppd.gz 驱动程序在自己的系统上位居
/usr/share/ppd/Epson/epson-inkjet-printer-escpr/ 目录中。

假设你找不到驱动程序,你能够到打印机生产商的网址看看,说不定会有专项使用的驱动程序。譬如,在写那篇小说的时候,Brother
就有三个自己的 HL-2280DW 打字与印刷机的驱动程序,但是,这几个驱动程序在
OpenPrinting.org 上还向来不列出来。

一旦您采摘齐了中央音信,你能够如列表 15 所示的那样,使用 lpadmin
命令去陈设打字与印刷机。为此,作者将为自身的 HL-2280DW
打字与印刷机创设另外三个实例,以便于双边打字与印刷。

  1. [ian@atticf27 ~]$ lpinfo -m |grep-i "hl.*2280"
  2. HL2280DW.ppd Brother HL2280DW for CUPS
  3. lsb/usr/HL2280DW.ppd Brother HL2280DW for CUPS
  4. [ian@atticf27 ~]$ lpadmin -p HL-2280DW-duplex -E -m HL2280DW.ppd \
  5. >-v dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/ \
  6. >-D "Brother 1"-o sides=two-sided-long-edge
  7. [ian@atticf27 ~]$ lpstat-a
  8. anyprint accepting requests since Mon29Jan201801:17:09 PM EST
  9. HL-2280DW accepting requests since Tue30Jan201810:56:10 AM EST
  10. HL-2280DW-duplex accepting requests since Wed31Jan201811:41:16 AM EST
  11. HXP-610 accepting requests since Mon29Jan201810:34:49 PM EST

列表 15. 配备一台打字与印刷机

你能够使用带 -c 选项的 lpadmin
命令去创制四个仅用于双面打字与印刷的新分类,而不用为了互相打字与印刷去创设一个打字与印刷机的别本。

只要您需求删除一台打字与印刷机,使用带 -x 选项的 lpadmin 命令。

列表 16 呈现了哪些去删除打字与印刷机和开创二个替代类。

  1. [ian@atticf27 ~]$ lpadmin -x HL-2280DW-duplex
  2. [ian@atticf27 ~]$ lpadmin -p HL-2280DW-c duplex -E -D "Duplex printing"-o sides=two-sided-long-edge
  3. [ian@atticf27 ~]$ cupsenable duplex
  4. [ian@atticf27 ~]$ cupsaccept duplex
  5. [ian@atticf27 ~]$ lpstat-a
  6. anyprint accepting requests since Mon29Jan201801:17:09 PM EST
  7. duplex accepting requests since Wed31Jan201812:12:05 PM EST
  8. HL-2280DW accepting requests since Wed31Jan201811:51:16 AM EST
  9. XP-610 accepting requests since Mon29Jan201810:34:49 PM EST

列表 16. 刨除一个打字与印刷机和创办一个类

你也足以应用 lpadmin 或者 lpoptions
命令去设置种种打字与印刷机选项。详细消息请查看 man 页面。

 

1.2 Linux打字与印刷原理

1、Windows打字与印刷种类布局

Linux 中的打字与印刷

虽说今后大气的关系都是电子化和无纸化的,可是在大家的店肆中还大概有大批量的素材须要打字与印刷。银行结账单、公用工作帐单、财务和别的报告、以及收入付账单等片段事物依旧供给打印的。本课程将介绍在
Linux 中哪些采用 CUPS 去打印。

CUPS,是通用 Unix 打印系统Common UNIX Printing System的首字母缩写,它是
Linux
中的打字与印刷机和打字与印刷职分的公司管理者。前期计算机上的打字与印刷机一般是在一定的字符集和字体大小下打字与印刷文本文件行。未来的图片打字与印刷机能够打字与印刷各样字体和大小的公文和图表。就算如此,今后你所接纳的有些发令,在古旧的行式打字与印刷守护进度(LPD)才能的历史中还是可以找到它们。

本学科将帮你打探 Linux 服务器职业务考核试(LPIC-1)的第 108 号宗旨的 108.4
指标。那几个目的的权重为 2。

 

1.1 Linux打字与印刷简要介绍

打字与印刷假脱机程序在Windows系统中任重先生而道远表现就是Windows后台打印程序Print
Spooler
(Spoolsv.exe)。那么什么样是打字与印刷假脱机程序(Spooler)呢?望文生义,大家只须求领悟“假脱机”的定义,基本上就清楚了怎么样是打字与印刷假脱机程序(Spooler)。
在差不离具备的操作系统中,外界设备与系统互相都存在三种方式:联机形式和脱机方式。
所谓联机格局是指系统完全遵照外界设备的举行各样实行设备操作,再者外界设备往往都是抢占式设备,当三个进度供给利用外界设备时数次要等别的进度使用实现才足以展开应用。比方:联机情势下当进度有输入/输出要求时就只可以在输入/输出设备空闲时技能选择设备,借使当前该装置正在被占用,则该进度就只能等待调用者调用甘休才干博得器具使用权,所以联机形式最大的老毛病正是进程之间不能”并发”地行使设备。
而脱机方式正好与共同格局相反,脱机形式中提议几个概念正是缓冲区的定义,比方:在脱机形式下,当进度须求输出数据到外界设备时,首先将数据输出到缓冲区内,然后外界设备再从缓冲区收获须求输出的多寡。那样做很好遥免了一齐情势下进程间无法出现的主题材料。不过脱机方式极大的一个害处也展现出来,那正是当有多少输出到缓冲区内时,设备并非即时对数码进行输出管理,而是等待缓冲区满恐怕经过需求输出设备输出的时候,设备才具开发银行并将数据输出至设备进行管理。那样做会下滑设备处理工夫,并且一再的运营设备很轻松变成设备损坏。
假脱机系统,从名称想到所包含的意义不是当真脱机,它是假的脱机形式。它的诚实意思是在协同的情势下获得脱机效果。假脱机的最后目的是沿用联机和脱机的具备优点同期幸免联机和脱机的持有劣势。所以打字与印刷机是二个相对来讲相比特别的硬件。不但差异于显卡这种机箱内的硬件,也差异于鼠标键盘等外设。鼠标键盘显示屏等都以即时反应的,举例移动一下鼠标操作系统都会立马管理并影响在显示器上。但打字与印刷机不是,打字与印刷八个文书档案快则几秒,慢则有数十分钟。操作系统不容许直接等到打字与印刷机管理完结再拓展再次回到。所以,操作系统提供了一个叫Spooler的劳动来对各样打字与印刷机的天职进行保管。Spooler的服务所提供的那个服务有人也将其名字为打字与印刷池。不管称呼什么,其技艺在操作系统领域中给它的概念是:Spooling才干是一种在多道程序意况下模拟脱机格局调整I/O设备进行输入输出的手艺。Spooling手艺的尾声指标是通过系统软件的章程把只好让八个用户独占的装置成为多用户多进程分享的配备,这种做法不仅仅可实现进度能够每一日调用设备也能够增长器材的利用率。因为独有当缓冲区未有职分的时候设备才会进来休眠状态,同期还降低了对器材实行休眠和唤醒的操作成效,延长了设施寿命。
所以在那边我们计算一下打字与印刷假脱机程序(Spooler)的效率。
打字与印刷假脱机程序由一密密麻麻的微软提供的和可选的渲染组件组成,他们的成效包含:
1、检验打字与印刷职务是在本地打字与印刷如故网络打字与印刷。
2、接受GDI和打字与印刷驱动为特定类型的打字与印刷机所提供的数据流。
3、缓冲绘制数据到文件中。
4、从逻辑打字与印刷队列中选出第叁个有效的大意打字与印刷机。
5、 将缓冲的数据流(如EMF)转变来能被打字与印刷机硬件所识别的格式(如PCL)。
6、发送打字与印刷数据流到打字与印刷机硬件中。
7、为假脱机组件和打字与印刷机的相关新闻尊敬贰个依据注册表的数据库,那几个数据库的大家在后头会讲到。

管制打字与印刷队列

用户向来打字与印刷作业到一个名叫打字与印刷队列print
queue的逻辑实体。在单用户系统中,打字与印刷队列和打字与印刷机经常是大致等同的野趣。不过,CUPS
允许系统不用总是到一个打字与印刷机上,而最终在几当中距离系统上的排队打字与印刷作业,况且经过选拔分类,允许将定向到多个分类的打字与印刷作业在该分类第一个可用的打字与印刷机上打字与印刷。

你能够检查和治本打字与印刷队列。对于 CUPS
来讲,当中一部分发令达成了一部分新操作。其余的某个是来源于 LPD
的相配命令,可是今后的有的选拔经常是最初的 LPD 打字与印刷系统采纳的有限子集。

你能够采纳 CUPS 的 lpstat
命令去反省队列,以询问打字与印刷系统。一些大范围选项如下表 1。

< 如出示不全,请左右滑行 >

选项 作用
-a 显示打印机状态
-c 显示打印分类
-p 显示打印状态:enabled 或者 disabled
-s 显示默认打印机、打印机和类。相当于 -d -c -v注意:要指定多个选项,这些选项必须像值一样分隔开。
-v 显示打印机和它们的设备。

表 1. lpstat 限令的挑三拣四

您也足以利用 LPD 的 lpc 命令(它能够在 /usr/sbin 中找到)使用它的
status 选项。倘令你不想钦赐打印机名字,将列出全体的类别。列表 1
体现了命令的片段示范。

  1. [ian@atticf27 ~]$ lpstat-d
  2. system default destination: HL-2280DW
  3. [ian@atticf27 ~]$ lpstat-v HL-2280DW
  4. device for HL-2280DW: dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/
  5. [ian@atticf27 ~]$ lpstat-s
  6. system default destination: HL-2280DW
  7. members of class anyprint:
  8. HL-2280DW
  9. XP-610
  10. device for anyprint:///dev/null
  11. device for HL-2280DW: dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/
  12. device for XP-610: dnssd://EPSON%20XP-610%20Series._ipp._tcp.local/?uuid=cfe92100-67c4-11d4-a45f-ac18266c48aa
  13. [ian@atticf27 ~]$ lpstat-a XP-610
  14. XP-610 accepting requests since Thu27Apr201705:53:59 PM EDT
  15. [ian@atticf27 ~]$ /usr/sbin/lpc status HL-2280DW
  16. HL-2280DW:
  17. printer is on device 'dnssd' speed -1
  18. queuing is disabled
  19. printing is enabled
  20. no entries
  21. daemon present

列表 1. 出示可用打字与印刷队列

其一示例浮现了两台打字与印刷机 —— HL-2280DW 和 XP-610,和四个分类
anyprint,它同意打字与印刷作业定向到这两台打字与印刷机中的第二个可用打字与印刷机。

在那个示例中,已经禁用了打字与印刷到 HL-2280DW
队列,不过打字与印刷功用是启用的,那样方便将打字与印刷机脱机维��此前能够达成打字与印刷队列中的职务。启用照旧禁止使用队列,能够行使
cupsacceptcupsreject 命令来治本。以前它们叫做 accept
reject,你只怕恐怕在 /usr/sbin
中找到那几个命令,但它们以往都是符号链接到新的一声令下上了。同样,启用依旧禁止使用打字与印刷,你能够使用
cupsenablecupsdisable 命令来保管。在最初版本的 CUPS
中,这一个被可以称作 enabledisable,它或者会与 bash shell 内置的
enable 混淆。列表 2 彰显了什么去启用打字与印刷机 HL-2280DW
上的类别,而禁止它的打字与印刷。CUPS 的多少个指令帮助选拔 -r
选项去提供二个该操作的理由。这些理由会在您利用 lpstat
时展现,但是即使你利用的是 lpc 命令则不会显示它。

  1. [ian@atticf27 ~]$ lpstat-a -p HL-2280DW
  2. anyprint accepting requests since Mon29Jan201801:17:09 PM EST
  3. HL-2280DWnot accepting requests since Thu27Apr201705:52:27 PM EDT -
  4. Maintenance scheduled
  5. XP-610 accepting requests since Thu27Apr201705:53:59 PM EDT
  6. printer HL-2280DWis idle. enabled since Thu27Apr201705:52:27 PM EDT
  7. Maintenance scheduled
  8. [ian@atticf27 ~]$ accept HL-2280DW
  9. [ian@atticf27 ~]$ cupsdisable -r "waiting for toner delivery" HL-2280DW
  10. [ian@atticf27 ~]$ lpstat-p -a
  11. printer anyprint is idle. enabled since Mon29Jan201801:17:09 PM EST
  12. printer HL-2280DW disabled since Mon29Jan201804:03:50 PM EST -
  13. waiting for toner delivery
  14. printer XP-610is idle. enabled since Thu27Apr201705:53:59 PM EDT
  15. anyprint accepting requests since Mon29Jan201801:17:09 PM EST
  16. HL-2280DW accepting requests since Mon29Jan201804:03:50 PM EST
  17. XP-610 accepting requests since Thu27Apr201705:53:59 PM EDT

列表 2. 启用队列和剥夺打字与印刷

留神:用户实践那一个职务必须通过授权。它也许供给是 root
用户依然另外的授权用户。在 /etc/cups/cups-files.conf 中能够看到
SystemGroup 的条目,cups-files.conf 的 man
页面有越来越多授权用户组的信息。

 

(3)通用Unix打字与印刷系统(CUPS)

采取通过调用GDI函数来成立打字与印刷任务,通过调用Winspool.drv提供的API接口,将打字与印刷内容路由到PrintProvider中。PrintProvider担负管理地点打字与印刷和长途打字与印刷,同一时候要管理打字与印刷职务堆里的启航、截止和枚举打字与印刷队列。
上面分别介绍那几个零件:
应用
打字与印刷应用程序通过调用GDI函数创立一个打字与印刷作业。
GDI
GDI是Graphics Device
Interface的缩写,含义是图表驱动程序接口,是Microsoft设计的一套API,是图形用户分界面GUI系统的三个生死攸关组成部分:为
Win32应用程序提供与设施毫无干系的图片编制程序分界面,包蕴:录制呈现、打印机、画图仪和传真机。图形设备接口(GDI)包涵用户方式和根本格局组件。微软把职业于用户格局的
GDI 称为 Win32 GDIAPI,专门的工作于内核方式的GDI称为GDI 图形引擎。
在 Windows 操作系统下,绝大许多具备GUI(Graphics User
Interface)的应用程序都离不开GDI。利用GDI所提供的广大函数能够平价地在屏幕、打字与印刷机及其余输出设备上输出图形、文本等。GDI的出现使程序猿无需关怀硬件道具及道具驱动就足以将应用程序的出口转速为硬件设备上的输出,达成了先后开拓者与硬件装置的割裂,大大便利了耗费职业。
WINSPOOL.DRV
Windows的打印客户端 (winspool.drv)把打印的APl揭穿给用户应用程序,
用户应用程序用打印API来查询打字与印刷机、打字与印刷职责、改造打字与印刷机设置、查询打字与印刷机设置、加载打印机驱动程序用户分界面DLL来展现打字与印刷机械和工具体设置属性页和做一些任何的作业。Windows的打字与印刷客户端
(winspool.drv)援救GDI决定打字与印刷职分应该怎么着管理。对于一般的打字与印刷职分,GDI生成EMF文件并把它送到打字与印刷池客户,然后打字与印刷客户用长途进程调用把打字与印刷任务发送给打印系统服务进度spoolsv.exe。
SPOOLSV.EXE
spoolsv.exe是后台打字与印刷程序的API服务器。spoolsv.exe打字与印刷服务向打印客户DLL导出RPC
(远程进程调用)接口,用户应用程序能够用Windows的打字与印刷客户端
(winspool.drv)管理打字与印刷机、打字与印刷机驱动程序和打字与印刷职分。spoolsv.exe打字与印刷服务本人是三个小的EXE文件(Spoolsv.exe)。它通过打字与印刷路由把大多数调用送到打字与印刷机提供者。
Spoolsv.exe打字与印刷服务随着操作系统运营而运转。该模块输出一个RPC接口到后台管理程序的Win32
API中的服务器端。Spoolsv.exe中的客户包含WINSPOOL.D普拉多V(本地)和Win32spl.dll(远程)。该模块实现部分API函数,但非常多成效的调用由所述路由(SPOOLSS.DLL)的装置传递到打字与印刷提供着。
打字与印刷路由
打字与印刷路由SPOOLSS.DLL,看名就能够猜到其意义就是鲜明打字与印刷提供者在哪里以及这么到它何地!大家运用的打字与印刷机有望是当地打字与印刷机,也或然是在互联网中的互联网打字与印刷机。Spoolsv.exe打印系统服务应用打印路由(spoolss.dlI)把打字与印刷职分交给给打字与印刷机提供者,打印机提供者知道该把打字与印刷职务送到哪儿。
打字与印刷路由(spoolss.
dlI)的职务特别简单:便是寻觅正确的打字与印刷机提供者,然后把音讯发送过去。它依据系统注册表中打字与印刷机相关的设置,通过打字与印刷职责所带的打字与印刷机名或许打字与印刷机句柄音讯成功这一职务。
打字与印刷提供者(Print Provider)
打字与印刷提供者负担把打字与印刷义务分配给地方或远程Computer。它也管理打字与印刷职责队列操作,如运营、截止和天职枚举。与打字与印刷服务进度和打字与印刷路由差别,系统中可以有非常多打字与印刷提供者。
Windows操作系统自身内置有多少个打字与印刷提供者:
本地打字与印刷机提供者(localspl.dll)。管理地方打字与印刷义务或远程客户发送到本地机的打字与印刷职分。每项打字与印刷职责最后都由本地打印机提供者管理,它把打印任务送到打字与印刷管理器(前边解释)。
互联网打字与印刷机提供者(win32spl.dll)。把打字与印刷任务发送到远程的网络打字与印刷服务器。
HTTP打字与印刷机提供者(inetpp.dll)。把打字与印刷职责通过HTTP发送到UGL450L地址实行打字与印刷。
个中,硬件打字与印刷机的商家譬如HP等,能够用Windows
NT的DDK来编排它们自身的打字与印刷机提供者。
打字与印刷管理器【打字与印刷驱动程序】
在上述打印提供者里面出现了叁个新名称:打字与印刷处理器!打字与印刷管理器是特别担负把打字与印刷义务的打字与印刷文件调换为打字与印刷机能够识别的原数据格式。在此处大家又须求引申出别的的叁个话题:打字与印刷机调整语言可能说打字与印刷机指令集。就就像Computer的硬盘一样,应用程序要求对硬盘读写一个多少,要求将其乞请发送给操作系统,操作系统会将其转载给硬盘的SCSI调控器,硬盘的SCSI调整器将应用程序锁伏乞的多寡调换为硬盘能够掌握的SCSI语言或然SCSI指令,然后发送到硬盘试行。
同理,在此处这一个打字与印刷管理器就恍如于硬盘的SCSI调节器。所例外的是,硬盘的SCSI调节器是驱动程序加硬件芯片,也正是软硬一体,而打字与印刷机的那个打字与印刷管理器,则是经过Windows的驱动程序来产生的,是三个纯软件的操作,因而在纯粹的Windows的EMF格式下的光栅打字与印刷,会对系统的能源占用较高。
在打字与印刷机商场,使用最广的打字与印刷机指令有:ESC、PCL、PostScdpt指令。在那之中PCL、PostScdpt指令也被称之为页面描述语言(PDL,PageDescriptional
Language),ESC指令也被誉为嵌入式语言。那只是打字与印刷机语言当中的一种分类方法。那个都以打字与印刷机原始指令,超过三分一原有指令都源于刘震云式打字与印刷数据”EMF”的转移,不过PCL6专门的学问指令和PostScript指令无法通过更动专门的学问打印数据得到,而是径直由打字与印刷驱动程序生成,故此PCL6命令打字与印刷和PostScript指令不必要改换指令而是一直将指令发送到打字与印刷设备,所以那二种打字与印刷指令被为原来打字与印刷也叫直接打字与印刷。其打字与印刷的多少不经过驱动程序的打字与印刷管理器举行退换,而是直接发送到打字与印刷机,由打字与印刷机设备本身分析这么些多少并打字与印刷。可想而知那来两种打字与印刷机语言打字与印刷效能就相比高。针对那个打印机语言的牵线大家前面再说。
打字与印刷监视器
Windows帮忙两连串型的打字与印刷监视器:语言监视器和端口监视器。在上述Windows的架构体系中,大家能够观察,打字与印刷假脱机程序还带有有一对打字与印刷的监视器。打字与印刷监视器担负把本来打字与印刷数据从打字与印刷服务引到准确的端口驱动程序上。
言语监视器,这里的言语是指打字与印刷机固件能明了的各个打字与印刷机职分语言,如PCL。语言监视器的严重性目标是经过双向通讯电缆,在打字与印刷服务进度和打字与印刷机之间提供全双工的通讯信道。Computer到打字与印刷机的数据通道首要用以把打字与印刷数据送到打字与印刷机,打字与印刷机到Computer的回来通道用于提供报告信息。语言监视器的第贰个指标是在打字与印刷机数据流中插入调控命令。
而端口监视器则是在打字与印刷服务进度和基本方式端口驱动程序之间提供通讯门路,该驱动程序直接存取打字与印刷机链接的硬件的I/O端口。端口监视器是不能够一直对硬件操作。它选拔常用的文件
API同内核中的驱动程序通讯。端口监视器也肩负处理逻辑打字与印刷机端口,比如地点计算机的全部COM
和LPT端口。
上述大致表达了依据GDI的打字与印刷假脱机(Spooler)主要结合结构。而依据XPS的打字与印刷假脱机(Spooler)又是怎么着的三个结合结构吧?
骨子里对于XPS的打字与印刷假脱机来讲,和GDI的不今不古差别正是GDI图形接口换来了XPS图形接口。在Windows中,程序猿所开拓的图样应用程序,要么选用GDI的图样接口开进行付出,要么使用WPF开拓框架,WPF(Windows
Presentation Foundation)是 Windows Vista中引进的新的用户分界面开辟框架,
可提供越发灿烂的用户交互分界面.,WPF应用程序仅帮助基于 XPS
的打印接口。也正是说,其实是Windows
7以及后来的版本中,一大半新开采的应用程序都以依据WPF开垦的,其调用的也是XPS接口。因而对于GDI或XPS来讲,是GDI的应用程序就调用GDI的打字与印刷接口,是XPS的应用程序就调用XPS的打字与印刷接口。同期两方又是足以并行合作和互动调换的。

打字与印刷文件

什么去打字与印刷创设的学业?大相当多图形界面程序都提供了贰个打字与印刷情势,经常是
文件
菜单上面包车型大巴选项。这几个程序为挑选打字与印刷机、设置页边距、彩色恐怕黑白打字与印刷、打印数量、选拔每张纸打字与印刷的页面数(每张纸打字与印刷三个页面,平日用于讲义)等等,都提供了图形化的工具。今后,笔者将为您出示怎么样选用命令行工具去管理那个效应,然后和图形化完结举办相比。

打印文件最简易的艺术是选拔 lpr
命令,然后提供二个文本名字。那就要暗许打字与印刷机上打字与印刷那些文件。而 lp
命令不只好够打字与印刷文件,也得以修改打印作业。列表 7
展现了使用这几个命令的二个简便示例。注意,lpr 会静默管理那几个作业,可是
lp 会展现处理后的学业的 ID。

  1. [ian@atticf27 ~]$ echo"Print this text"> printexample.txt
  2. [ian@atticf27 ~]$ lpr printexample.txt
  3. [ian@atticf27 ~]$ lp printexample.txt
  4. request idis HL-2280DW-12(1file(s))

列表 7. 使用 lpr 和 lp 打印

表 2 展示了 lpr 上你能够动用的一对选项。注意, lp 的接纳和 lpr
的很临近,可是名字大概不等同;比方,-#lpr 上是一定于 lp
-n 选项。查看 man 页面领会更加多的消息。

< 如出示不全,请左右滑动 >

选项 作用
-C-J-T 设置一个作业名字。
-P 选择一个指定的打印机。
-# 指定打印数量。注意这不同于 lp 命令的 -n 选项。
-m 在作业完成时发送电子邮件。
-l 表示打印文件已经为打印做好格式准备。相当于 -o raw
-o 设置一个作业选项。
-p 格式化一个带有阴影标题的文本文件。相关于 -o prettyprint
-q 暂缓(或排队)后面的打印作业。
-r 在文件进入打印池之后,删除文件。

表 2. lpr 的选项

列表 8
展现了一些选项。小编须要打字与印刷以往给笔者发确认电子邮件,这么些作业被暂缓实践,并且在打字与印刷未来剔除文件。

  1. [ian@atticf27 ~]$ lpr-P HL-2280DW-J "Ian's text file"-#2-m -p -q -r printexample.txt
  2. [[ian@atticf27 ~]$ lpq -l
  3. HL-2280DWis ready
  4. ian:1st[job 13 localhost]
  5. 2 copies of Ian's text file 1024 bytes
  6. [ian@atticf27 ~]$ ls printexample.txt
  7. ls: cannot access 'printexample.txt': No such file or directory

列表 8. 使用 lpr 打印

本人未来有二个在 HL-2280DW 打字与印刷队列上暂缓试行的课业。然后咋做?lp
命令能够通过使用 -H 的种种选项来迟迟或然投放作业。列表 9
呈现了怎样排泄被徐徐的学业。查看 lp 命令的 man
页面明白其余选项的消息。

  1. [ian@atticf27 ~]$ lp-i 13-H resume

列表 9. 重启五个缓缓的打字与印刷作业

实际不是装有的可用打字与印刷机都协理同样的选项集。使用 lpoptions
命令去查看二个打字与印刷机的常用选项。加多 -l
选项去显得打字与印刷机专项使用的选项。列表 10
体现了多个示范。非常多广阔的选项涉及到人像/风景打字与印刷、页面大小和出口在纸张上的布局。详细新闻查看
man 页面。

  1. [ian@atticf27 ~]$ lpoptions -p HL-2280DW
  2. copies=1 device-uri=dnssd://Brother%20HL-2280DW._pdl-datastream._tcp.local/
  3. finishings=3 job-cancel-after=10800 job-hold-until=no-hold job-priority=50
  4. job-sheets=none,none marker-change-time=1517325288 marker-colors=#000000,#000000
  5. marker-levels=-1,92 marker-names='Black\ Toner\ Cartridge,Drum\ Unit'
  6. marker-types=toner,opc number-up=1 printer-commands=none
  7. printer-info='Brother HL-2280DW' printer-is-accepting-jobs=true
  8. printer-is-shared=true printer-is-temporary=false printer-location
  9. printer-make-and-model='Brother HL-2250DN - CUPS+Gutenprint v5.2.13 Simplified'
  10. printer-state=3 printer-state-change-time=1517325288 printer-state-reasons=none
  11. printer-type=135188 printer-uri-supported=ipp://localhost/printers/HL-2280DW
  12. sides=one-sided
  13. [ian@atticf27 ~]$ lpoptions -l -p xp-610
  14. PageSize/MediaSize:*LetterLegalExecutiveStatement A4
  15. ColorModel/ColorModel:*GrayBlack
  16. InputSlot/MediaSource:*StandardManualAdjManualMultiPurposeAdjMultiPurpose
  17. UpperAdjUpperLowerAdjLowerLargeCapacityAdjLargeCapacity
  18. StpQuality/PrintQuality:NoneDraft*StandardHigh
  19. Resolution/Resolution:*301x300dpi150dpi300dpi600dpi
  20. Duplex/2-SidedPrinting:*NoneDuplexNoTumbleDuplexTumble
  21. StpiShrinkOutput/ShrinkPageIfNecessary to FitBorders:*ShrinkCropExpand
  22. StpColorCorrection/ColorCorrection:*NoneAccurateBrightHueUncorrected
  23. DesaturatedThresholdDensityRawPredithered
  24. StpBrightness/Brightness:0100200300400500600700800900*None1100
  25. 120013001400150016001700180019002000Custom.REAL
  26. StpContrast/Contrast:0100200300400500600700800900*None11001200
  27. 130014001500160017001800190020002100220023002400250026002700
  28. 2800290030003100320033003400350036003700380039004000Custom.REAL
  29. StpImageType/ImageType:NoneTextGraphics*TextGraphicsPhotoLineArt

列表 10. 检讨打字与印刷机选项

非常多的 GUI 应用程序有五个打字与印刷对话框,常常你能够选拔 文件 >打印
菜单去挑选它。图 1 呈现了在 GIMP 中的三个演示,GIMP 是七个图像管理程序。

图片 5

图 1. 在 GIMP 中打印

到方今甘休,大家具备的授命都是隐式指向到本地的 CUPS
打字与印刷服务器上。你也得以通过点名 -h 选项和二个端口号(借使不是 CUPS
的暗中同意端口号 631 的话)将打字与印刷转向到其它一个连串上的服务器。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图