已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文对宽幅面彩色喷墨绘图机r i p 软件开发中的主要技术进行了分析研究。 对以打印机驱动程序模式开发r i p 进行了分析,论述了w i n d o w s 打印子系统、打 印驱动程序运行机制。并对用d d k 进行具体开发作了探讨,分析了此模式开发 的难点和工作量,并结合绘图机总体设计确定了以应用程序开发的方案。重点对 r i p 软件中的图象处理技术,包括图象格式转换、缩放、色彩调整、分色等进行 了研究。通过对双线性、三次曲线等常见插值算法的研究,提出了三点插值算法, 该算法效果好于双线性插值,速度优于曲线插值,较好的完成了图象缩放功能。 采用b e z e i r 曲线拟合和普通二次曲线拟合来进行图象色彩调整,以三维查找表技 术实现分色。最后,通过各种数据传输方式的分析,选用网卡接口对打印数据传 输进行了实现。本文的研究和实践对国内绘图机r i p 软件开发技术的发展具有一 定的参考价值和实用意义。 , 关键词: 打印驱动程序插宿、曲线拟合j 革色数据传输 【f 、 a b s t r a c t t h e k e yt e c h n o l o g yo f d e v e l o p i n g r i ps o f t w a r ef o rl a r g e s c a l ec o l o r i n k j e tp l o t t e r i ss t u d i e di nt h i sp a p e r t h em e t h o dt od e v e l o pr i pi nt h em o d eo f p r i n t e rd r i v e ri s a n a l y z e d t h ep r i n t e rs u b s y s t e mi nw i n d o w sa n dr u np r i n c i p l e o fp r i n t e rd r i v e ri s d i s c u s s e d ,t h e nt h ed e v e l o p m e n tu n d e rd d k ( d r i v e rd e v e l o p m e n tk i t s ) i sa l s os t u d i e d a n dt h ed i f f i c u l t yi nt h i sm o d ei sa n a l y z e d c o n s i d e r i n gt h ei n t e g r a t e dd e s i g no f p l o t t e r w ed e c i d et od e v e l o pr i pi nt h em o d eo fa p p l i c a t i o np r o g r a m m i n g i m a g ep r o c e s s i n g t e c h n o l o g yi s ak e r n e lm o d u l eo fr i et h i sp a p e rd e a l sw i t hi m a g et r a n s f o r m ,i m a g e s c a l i n g ,c o l o ra d j u s t m e n t ,c o l o rs e p a r a t i o na n ds oo n t h r o u g hs t u d y i n gt h eg e n e r a l i n t e r p o l a t i o nm e t h o d s ,s u c h a sb i l i n e ra n db i c u b i c ,w e p r e s e n t t h et h r e e p o i n t s i n t e r p o l a t i o na r i t h m e t i cw h i c h c a nb eu s e dt oa c h i e v et h ei m a g es c a l i n gf u n c t i o n t h e i n t e r p o l a t i o ne f f e c to f t h i sa r i t h m e t i ci sb e t t e rt h a nt h a to fb i l i n e r , a n di tc o s tl e s st i m e t h a nb i c u b i c w ea d o p tt h eb e z i e rc u r v ef i t t i n ga n d g e n e r a lc o n i c c u r v ef i t t i n gt oa d j u s t t h ei m a g ec o l o ra n du s et h et h r e ed i m e n s i o n a ll o o k u pt a b l et e c h n o l o g yt oi m p l e m e n t t h ec o l o rs e p a r a t i o n f i n a l l yt h i sp a p e rc o m p a r e st h eg e n e r a ld a t at r a n s f e rm o d e sa n d i m p l e m e n t st h ep r i n t i n gd a t at r a n s f e ri ns o c k e t t h er e s e a r c ha n dp r a c t i c eo f t h i s t h e s i s p o s s e s s c e r t a i n p r a c t i c a ls i g n i f i c a n c e a n dr e f e r e n t i a lv a l u ei n p r o m o t i n g t h e d e v e l o p m e n t o f r i p t e c h n o l o g y i no u rc o u n t r y k e y w o r d :p r i n t e r d r i v e r i n t e r p o l a t i o n c u r v e f i t t i n g c o l o r s e p a r a t i o n d a t at r a n s f e r 、 第一章绪论 第一章绪论 1 1 引言 宽幅面彩色喷墨绘图机是一种专门打印大幅面彩色图形图象的电子信息 输出设备。它具有很高的分辨率和多色彩层次输出能力,能够完成高品质、大 幅面和连续超长的打印任务,广泛使用于电子设计自动化、资源勘测、地图测 绘、机械c a d 和建筑c a d 等领域。最近彩色喷墨绘图机又在户外广告业及 室内装饰行业中大显身手,使需求市场大增,现已成为销售市场的主流机型。 它以其卓越的性能价格比和强大的打印输出功能,越来越受到广大专业用户群 体的青睐,并可为用户提供更多的商业机会和更高的商业利润。 宽幅面彩色喷墨打印机品牌和型号较多,厂商竞争激烈。目前主要品牌有 h p d e s i g n j e t2 8 0 0 c p 和3 8 0 0 c p 系列,h pd e s i g n j e t5 0 0 0 系列、e p s o np r o9 0 0 0 系列和c a n o nb j w 7 0 0 0 系列等。 目前,我国尚无自主知识产权的同类产品,所需宽幅彩色喷墨绘图机完全 依赖于进口,上述公司几乎垄断了我国的喷墨绘图打印市场。为了满足办公 自动化、测绘、气象等方面对高质量彩色图象的需求,国家每年不得不花大量 的外汇引进喷墨绘图设备。 因此,宽幅面彩色喷墨绘图机的开发是适应当前市场和国内形势需要的, 对民族绘图机工业发展具有重要的意义。而对宽幅绘图机r i p ( r a s t e ri m a g e p r o c e s s o r ,光栅图象处理器) 软件开发中关键技术的研究也将具有重大实用意 义。 2 0 0 0 年1 0 月,计算机外部设备研究所制定了开发宽幅彩色喷墨绘图机的 计划。该绘图机的研制成功,将使国内超大幅面彩色喷墨绘图机的整体技术指 标达到国际水平,改变完全依赖国外进口的局面。项目研发投产后不仅将为企 业带来可观的经济效益,同时对于提高我国电子信息产品在国际市场上的竞争 力具有重大意义。本论文即来源于这一具有挑战性的科研任务。 1 2 本文主要工作和意义 本文紧密结合宽幅面彩色喷墨绘图机开发项目,对绘图机r i p 软件开发 中的几项关键技术进行了研究。 宽幅面绘图机r i p 软件有两种开发方式,一是编写通用的打印驱动程序, w i n d o w s 下大多采用d d k 1 6 , 17 1 来实现;另一种是直接编写应用程序类型的软 2宽幅彩色喷墨绘图机r i p 软件关键技术研究 件,通过分级管理实现对绘图机的控制。无论以哪种方式进行开发,图形图象 的处理都是其核心,它将直接影响绘图机的打印输出效果。另外,宽幅面绘图 机的特点之一就是数据传输量很大,数据的高效传输和打印作业的管理将决定 绘图机系统的性能,这也是软件开发中需要重点考虑的问题。 本文针对上述主要技术进行了深入分析研究,具体的工作可以大体划分如 下: 1 对w i n d o w s 打印体系结构、驱动程序功能组件、打印流程等进行 了分析,研究了如何用d d k 进行具体的打印驱动程序开发。 2 图象处理技术研究。主要包括图象格式转换、缩放、色彩调整和分 色。图象格式转换中集中对b m p 、j p e g 及t i f f 文件进行了解析; 运用多种插值算法实现了图象的缩放;色彩调整部分采用了曲线拟 合技术:最后通过三维查找表进行分色处理。 3 分析了串口、并口、u s b 、网卡等数据传输方式各自的特点,根据 所开发的宽幅绘图机硬件特点和性能要求,确定了相应的传输方 式;实现了对打印作业队列的管理。 文章的后续章节内容大体就是按照上述模块进行划分的: 第二章介绍绘图机总体设计及r i p 软件主要功能; 第三、四章介绍w i n d o w s 打印驱动程序开发; 第血章介绍图象处理技术的理论基础; 第六、七、八章研究图象缩放、色彩调整、分色等图象处理模块; 第九章分析打印数据的传输。 第十章介绍绘图机应用程序r i p 软件的实现。 由于国内对宽幅面绘图机的开发和研究比较薄弱,关于绘图机硬件设计 和绘图机r i p 软件开发方面可以提供的技术信息很少,可以查阅和参考的资 料文献寥寥可数,所以研究难度较大。r i p 软件开发中涉及的许多技术都需要 不断测试、分析和比较。同时,软件开发部分还要充分考虑硬件的性能,以便 与硬件部分协调工作,这也影响到了一些技术的应用,增加了开发难度。 在理论研究方面,本文对w i n d o w sd d k 下打印驱动程序开发的研究,同 样适用于普通打印机;有关的图象处理技术,特别是关于图象缩放、色彩调整、 分色技术的深入研究,不仅对提高绘图机图象打印输出效果很重要,而且对图 象放大处理等领域的研究也有很好的借鉴作用;对各种数据传输方式的研究、 传输方案的确定以及打印作业队列的管理对满足绘图机性能十分重要,同时数 据传输也是许多工业实时控制系统都要涉及的问题,这方面的分析测试对此类 第一章绪论 系统也有一定的参考价值。 从实践角度来看,本文对打印驱动程序的研究,对r i p 软件关键技术的 掌握将为我们_ 丁= 发的宽幅面彩色喷墨绘图机提供软件支持,而绘图机产品的开 发将带来巨大的经济效益。同时,本文所作的工作对国内绘图机r i p 软件开 发领域的研究具有实用参考价值,对实现宽幅彩色喷墨绘图设备开发及其产品 化,振兴民族工业将起到一定的推动作用。 宽幅彩色喷墨绘图机r i p 软件关键技术研究 第二章绘图机总体设计 2 1 绘图机总体结构分析 绘图机总体设计方案主要取决于性能和成本的要求,要在具备技术优势的 同时满足生产可行性。 本绘图机设计在技术上所采取的思想和方法是,避丌国外产品采用专用芯 片的技术路线,采用通用的、廉价的、功能适合于设计要求的单片机组成功能 分布式的多机系统,并实现相应软件的丌发。 彩色喷墨绘图机可以划分为机械部分、电气部分、m b 绘图控制器和r i p 处理主机。 如不考虑绘图机的具体电气机械结构,绘图机总体结构如图2 1 所示。 r i p 处理主机 绘幽命令- - 一 控制命令厂一 ,一塑堑塑塑 、绘图机f ,1 竺型塑塑、绘图执 i 中央控制器卜厂吲行系统 幽2 1 绘图机总体结构 虚线方框表示绘图机主体,包括绘图控制器m b ,显示面板和绘图执行机 构,绘图执行机构主要由喷头小车,驱动、走纸等机械部分及其运动控制部分 c p c 和喷墨驱动部分p e 组成。 c p c 是以单片机为核心组成的设备控制器,它由m b 获取命令和数据完 成下列功能: 驱动小车完成打印操作 驱动走纸电机,控制纸张的运动 调节烘干风温 检测墨水余量 沈头 第二章绘图机总体设计 收放纸 裁纸 p e 是打印引擎,它从m b 接收命令和图象数据,在c p c 来的打印同步时 钟的驱动下完成实时打印操作。 m b 是绘图控制器,其主要功能如下: 从主机接收打印命令和图象数据,对图象数据作半调处理并进行组织 和管理,同时向主机发送设备识别符、设备状态等信息。 向p e 发送打印命令和图象数据。 向c p c 发送控制命令与数据,并接收来自c p c 的当前设备状态信息。 r i p 处理主机部分主要在w i n d o w s 高层完成对绘图机打印图象的处理和 作业管理。本文的核心任务就是对该部分进行研究和实现。 从广义上来讲,r i p 软件包括如下模块:高速矢量点阵转换v r c ( v e c t o r r a s t e rc o n v e r t e r ) :图象模式转换;彩色管理;图象缩放:色彩调整;分色处 理:数字半调以及打印数据的组织和发送等。由于时间关系,本文没有涉及到 v r c 和彩色管理模块,数字半调技术因为划分到绘图控制器m b 部分实现, 也没有进行讨论,其余模块都在r i p 主机部分进行实现。 2 2 绘图机性能参数及用户接口 以目前处于市场领先地位的彩色大幅面喷墨绘图机技术指标为基础,并基 于降低成本,容易生产、工作稳定可靠等方面的考虑,将宽幅彩色喷墨绘图机 的主要性能参数设计如下: 打印幅宽:8 0 英寸 分辨率:1 8 0 ,3 6 0 ,7 2 0d p i 基色:4 色( c 、m 、y 、k ) 或6 色( c 、m 、y 、k 、l c 、l m ) 打印速度:高质量打印4 m 2 j 、时 墨水:油基墨水、溶剂墨水、u v c u r a b l e 抗紫外线墨水 用户可以选择的主要绘图机参数有: 纸张大小: 1 a 1 ,a 2 ,a 3 ,a 4 ,a 0此时边界参数由纸张确定。 2 用户定义此时可以设置边界参数。 纸张类型: 1 户内用纸 6宽幅彩色喷墨绘图机r i p 软件关键技术研究 2 户外用纸 颜色选择 c y a n ,m a g e n t a ,y e l l o w , b l a c k ,l i g h tc y a n ,l i g h tm a g e n t a ,a l l 即四色或六色 打印模式: 1 快速打印( 1 8 0 d p i ) 2 常规打印( 3 6 0 d p i ) 3 高精度打印( 7 2 0 d p i ) 图象大小及柿局设置 图象色彩调整 打印图象旋转、打印预览等辅助功能 绘图机系统的总体设计方案和向用户提供的主要参数确定以后,我们先 来确定绘图机r i p 软件的丌发方式,然后再对其中的各个模块进行具体分析。 r i p 软件通常有两种丌发模式,一种是将绘图机象普通打印机一样处理, 以打印驱动程序模式进行丌发;另一种是以应用程序方式来进行设计实现。我 们将对这两种方式分别进行分析研究。 第三章w i n d o w s 打印驱动系统分析 7 第三章w i n d o w s 打印驱动系统分析 宽幅绘图机驱动软件可以采用打印驱动程序模式来开发。这种模式下,首 先要了解w i n d o w s 的打印子系统、w i n d o w s 下打印驱动程序的功能、结构和 工作机理,然后研究其具体实现。本章先对w i n d o w s 打印驱动系统进行分析, 第四章将讨论如何用d d k 进行驱动程序的具体开发。 3 1 w i n d o w s 打印子系统 在w i n d o w s 环境下,打印机驱动程序是一个动态连接库,该动态连接库 由与某个打印设备相关的一系列图形设备函数组成,这些图形函数将与设备无 关的图形命令解释为和设备相关的图形命令和数据。一个打印机驱动程序从 w i n d o w s 的图形设备接口g d i 处接收图形命令,然后将命令直接或间接的发 送给打印机。 w i n d o w s 的打印系统主要由两部分组成,一部分是g d i ( g r a p h i c s d e v i c e i n e t e r f a c e :图形设备接口) 和它的支撑模块,另一部分是打印假脱机系统 ( s p o o l i n g ) ,它们相互协作,共同完成w i n d o w s 的打印工作。 1 g d i 及其支撑模块 g d i 是w i n d o w s 图形功能的心脏,所有的图形图象处理、字体处理以及 颜色管理等功能都在g d i 实现,它的功能以a p i 的形式提供给应用程序调用。 g d i 的支撑模块主要为d i b ( 设备无关位图) 引擎和打印机驱动程序,它们共 同完成将应用程序与打印设备无关的输出信息转换为与设备相关的输出信息。 2 打印假脱机系统( s p o o l i n g ) s p o o l i n g 是为减少占用主机处理器时间而采用的“把辅助存储器( 通常是 硬盘) 当作端口的缓冲存储器来使用,具体的发送工作由后台来进行处理”的 一种技术。它由六个子部件组成:打印请求路由器、本地打印提供者、网络打 印提供者、打印处理器、打印语言监视器、端口监视器等。这些子部件的主要 主要功能如下: 打印请求路由器 负责将数据流发往局部打印提供者或网络打印提供者。 局部打印提供者 将打印作业形成打印假脱机文件,并管理打印假脱机文件的解析过程。 网络打印提供者 8宽幅彩色喷墨绘图机r i p 软件关键技术研究 管理有关打印的a p i 与网络之间的通信。 打印处理器 主要是在打印假脱机文件的解析过程中起作用,它将假脱机文件的记录信息 解析转换为需要输出给具体设备的信息。 打印作业语言监视器 主要支持打印机的双向通讯,监视打印机的状态,获取并处理一些事件。 端口监视器 控制打印机和物理端口之间的通讯。 3 2 打印驱动程序工作流程 了解了w i n d o w s 的整个打印子系统,下面看看打印驱动程序是如何具体 柬运行的。在w i n d o w s 下有三种打印流程:利用原始假脱机文件的打印流程、 利用增强型图元文件的打印流程以及直接打印流程。下面给出典型的利用原始 假脱机文件的打印流程: 1 应用程序创建一个设备描述d c 并在其上绘制一个对象,然后调用 g d i 发出相对于使用此d c 的打印机的一个打印请求。 2 g d i 调用相应的打印驱动程序来处理具体的打印请求。 3 打印驱动程序创建一个打印作业,并调用g d i 功能将处理结果送出 去。 4 g d i 对假脱机系统的处理器进行进程问调用。 5 s p 0 0 1 3 2 e x e 调用打印请求路由器以便将打印作业发送到应用程序指 定的打印机。 6 打印请求路由器将打印作业发送到本地打印提供者或网络打印提供 者。 7 如果打印作业的类型是非直接打印,本地打印提供者就将打印作业以 原始假脱机文件的格式存在磁盘上。 8 本地打印提供者启动一个后台线程,这个后台线程将选定一个最佳时 刻触发假脱机文件的解析过程。 9 主线程基于对打印假脱机予系统的资源的监视,选定最佳时刻触发假 脱机文件的解析过程。 1 0 打印处理器线程激活本地打印提供者以便从磁盘读取前面生成的打 印假脱机文件。 第三章w i n d o w s 打印驱动系统分析 1 1 打印处理器线程同时激活打印作业语言监视器,以便将数据通过物理 端口发送到所连接的打印机上。 1 2 打印作业语言监视器调用端口监视器的功能给打印机发送数据。 13 端口监视器监测物理端口,通过物理端口给打印机发送数据。 1 4 物理端口和打印机进行通讯。 流程中第1 0 到1 4 步重复多次直到遇到假脱机文件的结束标志或者是打印 作业被取消,最后线程终止。 整个打印流程如图3 1 : 一- _ _ _ _ _ u l 1 r _ _ _ _ j _ _ _ _ _ - u 一 打印驱动程序l 应用程序 面夏磊蘸面订一! 再面面磊石石森 假脱机文件jl o 一! 打印路由器 6 上 本地打印提供者 图3 1 利用原始假脱机文件的打印过程流程 3 3 打印驱动程序功能及组件 3 3 1 打印驱动程序功能 0宽幅彩色喷墨绘图机r i p 软件关键技术研究 w i n d o w s 打印驱动程序具有以下功能: 向打印机提供特定的绘图能力,从而帮助g d i 处理它自身不支持的打 印作业处理功能。 将处理好的图象数据流发送到打印假脱机系统。 为打印机和打印文档的可选参数设置( 诸如打印份数、图象的分辨率 等) 提供一个可以修改的用户接口。 3 3 2 打印驱动程序组件 w i n d o w s2 0 0 0 打印驱动程序由一系列打印驱动程序组件组成,这些组件 将打印机的绘图功能和用户的接口操作分为不同的动态连接库:打印图形动态 连接库和打印接口动态连接库,前者主要帮助g d i 处理打印作业,并将处理 后的数掘发送到打印假脱机系统;后者提供一个用户接口来实现对打印机参数 的设置,同时还提供一个假脱机接口,该接口负责通知打印驱动程序与打印相 关的系统事件。 1 打印图形动态连接库 打印图形动念连接库实现了驱动程序前期的d d l ( d e v i c ed r i v e ri n t e r f a c e ) 函数功能,具有以下两方面的功能: ( 1 ) 支持g d i 处理打印作业。它可以提供d d i 绘图处理功能,从而处 理一些必须由设备的某种特定方式来进行绘图的操作,这些操作是不能由g d i 处理引擎来完成的。 ( 2 ) 将处理后的数据流发送到打印假脱机系统。打印图形动态连接库通 常产生原始的输出数据流( 包括命令序列) ,打印假脱机系统可以将这些数据 流通过打印监视器发送到打印机硬件设备上。 打印图形动态连接库提供的相关处理功能的多少是和特定的打印机设备 相关的,它是由打印机硬件的绘图能力决定的,包括以下几种方案: g d i 引擎通过g d l 管理接口处理所有的信息,图形动态连接库不提 供任何d d i 绘图功能。 图形动念连接库提供一部分d d i 绘图功能,g d i 引擎通过g d i 管理 接口,两者相互配合,来共同完成处理工作。图形动态连接库提供的 d d l 函数功能可以选择性的调用g d i 处理引擎支持的设备。 图形动态连接库通过提供d d i 绘图功能来处理所有的信息,它提供 一个设备管理接口。 另外,打印图形动态连接库并不是在打印作业解析为图元型增强文件时调 第三章w i n d o w s 打印驱动系统分析 用,而是在图元型增强文件打印处理器回调图元型增强文件记录时调用。同时 应该注意,打印图形动态连接库并不将处理好的打印作业数据发送到硬件设 备。处理后的数据流返回到假脱机系统,由假脱机系统将数据流发送到端口监 视器。 对于w i n d o w s2 0 0 0 ,可以设计一个打印图形动态连接库,它可以在用户 模式下工作,也可以在内核模式下工作。 2 打印接口动态连接库 打印接口动态连接库向用户提供一系列可修改的选项,每一个打印文档都 可以进行不同的设置应用程序通过此接口对诸如纸盒、字体、图象的分辨率 和大小以及颜色等信息进行设置。 打印接口动态连接库在用户模式j 下运行,它为打印机创建属性页。应用 程序通过调用打印假脱机系统输出的w i n 3 2 函数来显示这一接口,接着打印 假脱机系统调用打印接口动态连接库定义的函数。 此外,打印接口动态连接库还输出函数来通知打印机和打印系统相关的事 件,诸如打印机驱动程序的安装和升级、打印机的添加和连接等。 3 4 打印驱动程序开发途径 打印驱动程序的开发存在两种途径:一种是开发一个完整的打印驱动程 序,所有的代码都由开发者来写,它需要开发者编写大量的d d i 接口函数, 定义并初始化多个复杂的数据结构以及编写资源文件等。这种方式工作量比较 大,任务繁重。另一种是利用w i n d o w s 提供的打印驱动程序开发工具d d k 来 实现,即采用“通用打印机驱动程序( u n i d r v ) + , j , 型打印机驱动程序( m i n i d r v ) ” 方式。这种方式基于这样的事实:大部分的打印驱动程序都几乎以相同的方式 工作,甚至提供给用户的用于打印设置的选项也是相同的,因此可以充分利用 系统提供的通用打印驱动程序u n i d r v ,而把精力集中在与打印机硬件以及和 打印机特殊功能密切相关的小型驱动程序m i n i d r i v e r 的编写上。 对第一种丌发途径我们不作详细介绍,主要对d d k 下u n i d r v + m i n i d r v 的 开发方式进行分析研究。 1 2宽幅彩色喷墨绘图机r i p 软件关键技术研究 第四章用d d k 进行打印驱动程序开发 d d k 的全称为d e v i c ed e v o l o p m e n tk i t s ,它是微软为驱动程序开发提供 的设备丌发包。d d k 为各种系统硬件驱动程序提供了开发支持,对于打印机 驱动程序的开发,d d k 专门提供了u n i t o o l t ”1 ( w i n d o w s9 8 ) 和m i n i d e v i ”1 ( w i n d o w s2 0 0 0 ) 丌发工具。同时,微软提供了两种类型的驱动程序:通用 打印机驱动程序和小型打印机驱动程序。本章对打印机通用驱动程序u n i d r v 和小型驱动程序m i n i d r i v e r 分别进行介绍,并阐述如何用d d k 进行 u n i d r v + m i n i d r v 打印驱动程序开发。 4 1 m i c r o s o f t 通用打印机驱动程序 m i c r o s o f t 通用打印机驱动程序( 简称u n i d r v ) 是m i e r o s o f t 公司为非 p o s t s c r i p t 打印机丌发的标准打印机驱动程序。 1 u n i d r v 的功能 通用打印机驱动程序( u n i d r v ) 具有如下功能: 利用打印机特定的u n i d r vm i n i d r i v e r 来描述各打印机特性,并支持所 有非p o s t s c r i p t 打印机。 提供了一个基于t r e e v i e w 控件和属性表单页的u n i d r v 用户接口,这 些t r e e v i e w 控件和属性表单页对于所有打印机一致,并且对各打印机 的特定选项可以修改。 提供一个单独的u n i d r v 处理程序( r e n d e r e r ) ,它和g d i 图形引擎一起 将来自应用程序的w i n 3 2g d i 调用转换成可以送往打印假脱机程序的 打印机命令。 2 u n i d r v 的组件 w i n d o w s2 0 0 0 下u n i d r v 组件由动态连接库、正文和二进制数据文件构成, 如图4 1 所示: 第四章用d d k 进行打印疆动程序开发 ! 一+ 。一一+ 一+ 一+ 一 :u n i d r v: 图4 1u n i d r v 组件 3 u n i d r v 用户接口 u n i d r v 用户接口使用c p s u i ( c o m m o np r o p e r t ys h e e tu s e ri n t e r f a c e ) 仓l | 建 如下属性表单页: 打印机属性表单的“d e v i c es e t t i n g s ”页。该页在用户从打印机文件夹或 打印机窗口选择“属性”菜单时显示,它列出了打印机特有的设备属性设 置信息。 文档属性表单的“l a y o u t ,p a p e r q u a l i t y 和a d v a n c e d ”页。该页在用户从 打印机文件夹或打印机窗口选择“d o c u m e n t d e f a u l t s ”菜单时显示,它列 出了文档特有的属性设置信息。 这些属性表单页包含由打印机u n i d r vm i n i d r i v e r 规定的打印机特性和打 印机选项,用户可以对这些选项值进行修改。 4宽幅彩色喷墨绘图机r i p 软件关键技术研究 u n i d r v 用户接口是采用用户模式的打印机接口动态连接库实现的。该动 态连接库中的代码和c p s u i 一起规定属性表单页的内容,同时根据m i n i d r i v e r 中的信息对可以组合的打印机选项实施约束,保证用户不能选择该打印机没有 安装的选项。 可以通过提供用户接口插件程序修改u n i d r v 提供的属性表单页。 4 u n i d r v 处理程序( r e n d e r e r ) u n i d r v 处理程序作为打印机图形动态连接库而实现,它导出d d i 为图形 驱动程序定义的函数。当应用程序调用g d i 函数发送图象到打印机设备时, 核心模式图形引擎调用r e n d e r e r 的d d i 函数。这些d d i 函数在绘制打印作 业的页面图象时帮助g d i 共同完成绘图功能。 u n i d r v 处理程序还负责发送图象数据以及打印机命令序列到打印假脱机 程序,此后打印假脱机程序将图像以及命令传送给打印机硬件。处理程序发送 的打印机命令由u n i d r vm i n i d r i v e r s 指定。 4 2m i c r o s o f tm i n i d r i v e r 驱动程序 m i c r o s o f tm i n i d r i v e r 是特定打印机需要编写的小型驱动程序,它包括对打 印机性能、打印命令和固定字体的描述,还包括一系列关于g d i 接口以及如 何将信息发送给打印机的入口函数。但m i n i d r i v e r 并不真正执行g d 调用, 而是通过调用u n i d r v ,为u n i d r v 提供必需的信息来执行对设备的具体操作( 如 打印文本、处理图象等) 来实现。u n i d r v 大大简化了w i n d o w s 打印机驱动程 序的开发,驱动程序开发者不必编写g d i 所需的全部代码,而只需开发一个 基于通用驱动程序的小型驱动程序,即u n i d r v + m i n i d r v 型驱动程序。 u n i d r vm i n i d r i v e r 是包含打印机描述的正文文件。一个m i n i d r i v e r 描述某 个厂家的一种类型的打印机。这种基于正文的描述称为通用打印机描述 ( g p d ) ,其文件称为g p d ( g e n e r a lp r i n t e rd e s c r i p t i o n ) 文件。一个m i n i d r i v e r 可以由一个或多个g p d 文件构成。 利用g p d 文件描述一个打印机, m i n i d r i v e r 支持如下功能: 大多数打印机都具有的通用的、标准的打印机特性。 只有用户自己的打印机才有的特殊的、自定义的打印机特性。 安装型打印机选项,该选项只有安装后才能被选择。 选项约束,即允许用户规定不兼容的选项。 条件语句,允许指定依赖于其他打印机特性的某些打印机特性。 从标准变量选集中选定当前值的打印机命令说明。对这些变量可以进行 第四章用d d k 进行打印驱动程序开发 数学运算。 除u n i d r v 提供的帮助文件之外,还可以提供一个自定义帮助文件来描述打 印机自定义特性。 安装打印机时,u n i d r v 的g p d 分析程序读取打印机的全部g p d 文件。 g p d 文件中的信息被用于创建一个临时的打印机二进制文件。u n i d r v 用户接 口和u n i d r v 处理程序引用这个二进制文件。 通常,m i n i d r i v e r 必须提供资源,如字体、位图以及可以本地化的字符串 等,这些资源放在资源动态连接库中。 为方便丌发小型m i n i d r i v e r 驱动程序,微软提供了m i c r o s o f tm i n i d r i v e r ) l :发工具( m i c r o s o f tm d t ) ,它是支持特定类型的打印机驱动程序丌发的可执 行文件,在2 0 0 0d d k 中是m i n i d e v e x e 。 m i c r o s o f tm d t ( m i n i d r i v e r d e v e l o p m e n tt 0 0 1 ) 提供如下功能: 通用打印机描述( g p d ) 编辑器 检查语法的一个正文编辑器,用于创建u n i d r vm i n i d r i v e r 的g p d 文件 u n i d r vf o n tm e t r i c s ( u f m ) 编辑器 一个基于属性表单页的编辑器,用于生成u n i d r vf o n tm e t r i c s 文件 g l y p ht r a n s l a t i o nt a b l e ( g t t ) 编辑器 。个基于属性表单页的编辑器,用于生成g l y p h t r a n s l a t i o nt a b l e 文件 m i n i d r i v e rw o r k s p a c e 基于窗口的u n i d r v m i n i d r i v e r 编辑工作区,提供访问m i n i d r i v e r 的g p d 文件、资源文件、u f m 文件和g t t 文件。 m i n i d r i v e r 转换向导 自动转换二进制m i n i d r i v e r ,用于将以前版本的m i n i d r i v e r 转换成基于 文本的w i n d o w s2 0 0 0m i n i d r i v e r ,它通过转换下表所列的文件创建一个 w i n d o w s2 0 0 0m i n i d r i v e r 。 表4 1 i输入文件文件内容输出文件 lw i n d 。w s g p c 文件打印机性能描述w i n d o w s2 0 0 0g p d 文件 i w i n d o w sp f m 文件字体描述w i n d o w s2 0 0 0u f m 文件 w i n d o w sc t t 文件字形转换w i n d o w s2 0 0 0g t t 文件 i n f 向导 为转换后的m i n i d r i v e r 自动创建一个i n f 文件。 宽幅彩色喷墨绘图机r i p 软件关键技术研究 4 3m i n i d r i v e r 文件介绍 m i n i d r i v e r 主要包括三种类型的文件:g p d 、u f m 和g t t 文件。 1 g p d 文件 u n i d r vm i n i d r i v e r 由基于文字的通用打印机描述构成,该描述可以包含在 一个或多个g p d 文件中。g p d 文件采用g p d 语言描述,它提供如下类型的 信息: 描述打印机性能的打印机属性 控制打印机操作的打印机命令 描述u n i d r v 能够控制的打印机性能的打印机特性 表示能够赋予打印机特性状态的打印机选项 指定与硬件驻留和打印机字体相关的打印机字体描述。 描述打印机属性与打印机配置依赖性的条件语句 g p d 语言也可以定义g p d 文件入口,这些入口控制如下操作: 压缩栅格数据处理彩色格式 用u n i d r v 进行半调处理 处理可安装特性和选项 描述打印机的存储器配置 2 g t t 文件 打印机支持的每种设备字体都必须由( g l y p ht r a n s l a t i o nt a b l e ) g t t 文件 来描述,g t t 文件是二进制文件,它包含u n i d r vg l y p ht r a n s l a t i o nt a b l e 结构 和打印机驱动程序的函数及结构。g t t 文件的第一个结构是 u n i g l y p h s e t d a l a ,该结构包含着此文件中其他结构的偏移量。 3 u f m 文件 u f m 文件也是二进制文件,它由以下结构组成: u n i d r v 字体格式结构,它定义u f m 文件的内容和结构。 u n i d r v 字体矩阵结构,它定义每种字体的矩阵。 u n i d r vg l y p ht r a n l a t i o n t a b l e 结构,它定义字体所用的字形集合。 此外,对于下载的p c l 软字体,下载的二进制数据也存储在u f m 文件中。 4 4 1 安装d d k 4 4 d d k 打印驱动程序开发过程 第四章用d d k 进行打印驱动程序开发 1 7 安装2 0 0 0 d d k 之前必须先安装m i s c r o s o f ts d k ( s o f t w a r ed e v e l o p m e n t k i t ) ,由于s d k 封装在v i s u a ls t u d i o 中,所以要先安装v i s u a lc + + 6 0 。成功 安装后,在n t d d k s r c p r i n t m d t 目录下可以找到m i s c r o s o f tm d t 开发工 具,即m i n i d e v e x e 可执行文件。 4 4 2 初始化编译环境 安装2 0 0 0d d k 后,在n t d d k b i n 目录下有可执行程序s e t e n v ,运行 它来初始化d d k 环境。在d o s 命令符下键入 s e t e n vn t d d k 【f r e eic h e c k e d 】 其中第一个参数指定d d k 被安装的文件夹,缺省目录是n t d d k ;可选 的第二个参数说明目标构造环境,缺省类型是f r e e 。 有时,d d k 的编译环境可能找不到已安装的v c + + ,因而无法编译驱动 程序。此时可以运行v c + + 附带的v c v a r s 3 2 b a t 这个批处理文件,它可以使d d k 编译环境找到v c + + 的正确路径。 4 4 3 创建m i n i d r i v e r 一个u n i d r vm i n i d r i v e r 至少包含一个或多个g p d 文件和一个资源动态连 接库文件。资源动态连接库文件定义m i n d r i v e r 需要的所有文本、图标、位图 以及字体等资源。此外,可能还需要u f m 和g t t 文件来描述设备固定字体 的特征。有两种方法可以创建一个u n i d r vm i n i d r i v e r : 利用m i n i d r i v e r 转换向导 如果已经有一个早期版本的w i n d o w s 或w i n d o w s n t 的w i n l 6 或w i n 3 2 m i n i d r i v e r ,可以用m i n i d r i v e r 转换向导来进行转换。 创建一个新的打印机m i n i d r i v e r 如果要创建一个新的打印机m i n i d r i v e r ,则可以以w i n d o w s2 0 0 0 下提供 的m i n i d r i v e r 例子为基础进行创建。在2 0 0 0 d d k 下可以找到g p d 的例子,对 于每一个g p d 文件,都有一个与之相关的资源文件r c ,复制需要的g p d 和 r c 文件并对它们重新命名,然后进行修改。如果新的打印机支持设备字体, 则必须提供u f m 和g t t 文件。同样可以采用d d k 提供的u f m 和g t t 文件, 并根据需要进行相应的修改。 4 4 4 编译资源动态连接库文件 创建一个m i n i d r i v e r 的最后一步是编译一个资源动态连接库,当通过 m i n i d r i v e r 转换向导创建了m i n i d r i v e r 文件后,在相应的目标路径上会包含一 1 8宽幅彩色喷墨绘图机r i p 软件关键技术研究 个资源r c 文件,该文件列出了编译资源动态连接库需要的g t t 和u f m 文件。 在d d k 的例子中可以找到需要的其它文件的模板。为了编译资源动态连接库, 必须向目标路径下添加下面的文件: 在放有驱动程序源代码的目录中,创建一个叫s o u r c e 的文件。该文件中 包含目标文件的名称、路径及类型等描述。可以从d d km i n i d r i v e r 的子目 录复制s o u r c e 文件并进行编辑修改。 一个没有编辑过的m a k e f i l e 文件,此文件在每一个d d km i n i d r i v e r 的子目 录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科研方法及应用(2023)学习通超星期末考试答案章节答案2024年
- 机房助管人员聘用合同(31篇)
- 幼儿园毕业典礼方案(35篇)
- 转学插班合同范本
- 销售厂房合同范本
- 子女抵押合同范本
- 五年级数学上册 第3章《倍数与因数》单元测评必刷卷 带解析(北师大版)
- 五年级数学上册 【冲刺夺冠】期末测试卷(三)(含答案)(北师大版)
- 借用合同范本
- 五年级数学上册 【基础卷】第一单元基础通关测试卷 苏教版(含答案)(苏教版)
- 物业服务公司各岗位规范用语
- 医患沟通内容要求记录模板(入院、入院三日、术前、术后、出院)
- Excel 会计记账模板-录入凭证自动生成财务报表(超实用)
- 航海学天文定位第四篇第6章天文定位
- 浅谈深度教学中小学数学U型学习模式
- 物理电学暗箱专题30道
- 装修公司员工劳动合同
- 江西上饶铅山汽车驾驶科目三考试线路
- 通过一起放火案件浅析放火案件的移交工作
- 南京农业大学学生在校学习期间现实表现证明
- 机械专业个人职业生涯规划书范文3篇
评论
0/150
提交评论