CN103218183A - 信息处理装置及*** - Google Patents
信息处理装置及*** Download PDFInfo
- Publication number
- CN103218183A CN103218183A CN2012103874501A CN201210387450A CN103218183A CN 103218183 A CN103218183 A CN 103218183A CN 2012103874501 A CN2012103874501 A CN 2012103874501A CN 201210387450 A CN201210387450 A CN 201210387450A CN 103218183 A CN103218183 A CN 103218183A
- Authority
- CN
- China
- Prior art keywords
- printing
- condition
- setting
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1247—Job translation or job parsing, e.g. page banding by conversion to printer ready format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1288—Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
本发明涉及信息处理装置和***。信息处理装置包括:操作接收单元,用于接收操作;设置接收单元,用于在操作接收单元接收到开始打印或传送的指令后,显示用于打印或传送的设置条件并接收对设置条件的改变;及,存储单元,在存储单元中,由设置接收单元经过操作***通过使用由设置接收单元获取的识别信息作为密钥来存储设置条件,其中识别信息识别打印处理或传送处理并由操作***根据开始打印或传送的指令生成。图像处理单元从操作***获取识别信息并通过使用识别信息作为密钥从存储单元读取设置条件,并基于设置条件将文档数据转换成打印设备的打印数据。
Description
技术领域
本发明涉及一种信息处理装置,该信息处理装置用于获取将被打印或传输的文档数据,并且将此文档数据传送至打印设备。
背景技术
用户经常会用计算机执行诸如文件生成软件、电子制表软件、以及图像编辑软件等的多种应用程序(在下文中,简称为“应用程序”),并且执行打印和传真传输。在这些情况下,需要在操作***(OS)上执行驱动(程序),用于控制打印设备和传真设备,从而使得控制打印设备和传真设备所必须的处理与上述的应用程序分离。
通过以下的流程执行打印机驱动和PC-FAX驱动的打印和传真传输。
1.用户从应用程序的打印菜单中显示打印设置窗口,并且确定打印设置。
2.用户向此应用程序发出指令以开始打印。
打印机驱动在步骤2接收在步骤1确定的打印设置,并且基于打印设置将接收自应用程序的文档数据转换成能被打印机理解的打印数据。打印机获取打印数据并且执行打印和传真传输。
然而,在上述的操作顺序中,假定在用户给出开始打印的指令之后不可能再改变打印设置。因此,提议需要一种技术使得用户可以在给出开始打印的指令之后还可以再改变打印设置(例如,参见专利文献1)。
(A.)为了描述该传统技术的目的,首先说明Windows(注册商标,在下文中,)的打印架构,在的打印架构中,利用API将来自应用程序的打印设置和打印开始指令的命令报告给OS的GDI。GDI是OS的一部分。
通过DDI将打印设置和打印开始指令的命令从GDI报告给打印机驱动和PC-FAX驱动。DDI只定义I/F,因此DDI中的实现方法可以由各厂商(打印机驱动和PC-FAX驱动)自由地定义。通过执行在打印过程中被调用的DDI,能够显示一个对话框。在打印过程中被调用的DDI的名称是“DrvDocumentEvent()”。
通过利用DDI,可以在用户给出打印开始指令之后且在向打印机传送数据之前显示一个对话框。这种技术用于强制用户在每次执行打印时输入密码并指定传真传输的地址。在下文中,将以安装在打印机驱动中的机密打印功能和安装在PC-FAX驱动中的地址确认功能为例来说明具体的实例。
图1示出了打印机驱动的机密打印功能的屏幕示例。在开始打印指令之后,通过机密打印功能,要求用户输入用户ID和密码。用户不能按确定按钮501除非用户输入了用户ID和密码。当用户输入用户ID和密码并且按确定按钮501之后,用户ID和密码被传送到打印机。在打印机的主单元中,预先注册了用户ID和密码的组合,并且,除非输入的用户ID和密码和其中的一个组合相匹配,否则打印机不会执行打印。在机密打印功能中,为了进一步增加安全性,可能要求用户在每次执行打印时输入密码。当用户按取消按钮502时,取消打印。
图2示出了PC-FAX驱动的地址确认功能的屏幕示例。在给出打印开始指令之后,PC-FAX驱动显示如图2所示的对话框,并且要求用户输入传真地址(传真号码)。在传真传输中,每次传送传真时地址一般是不相同,因此PC-FAX驱动显示这样的屏幕来防止错误传输。
当用户输入传真号码并且按发送按钮503时,图像数据被发送到传真设备,然后传真设备传输传真。当用户按取消按钮504时,取消传真传输。
在的打印机制中,当使用打印机驱动进行打印时使用两种spool格式(spool format),也就是,RAW SPOOL格式和EMF SPOOL格式。在应用程序的处理中,RAW SPOOL格式用于通过将由打印机驱动从应用程序获取的文档数据转换成打印机可以理解的RAW数据而执行打印处理。从用户的角度来看,用户不能操作应用程序,直到完成了打印处理。
在EMF SPOOL格式中,将由OS从应用程序获取的文档数据转换成不依赖于打印机的EMF数据格式,并且该数据在应用程序的处理中被假脱机(spooled)。然后,打印机驱动执行如下的打印处理:将在假脱机程序处理中已经被假脱机的EMF数据转换成能够被打印机理解的RAW数据。从用户的角度来看,当完成了应用程序处理中的将数据转换成EMF数据时,可以操作应用程序。
在两者的任何一种机制中,作为实施DDI的方法,可以在开始打印之后通过显示对话框来显示打印设置屏幕。
然而,仅仅通过从OS调用的DDI不能实现将用户改变的打印设置应用到打印数据中的机制。打印机驱动包括:UI驱动,用于通过与用户的交互而确定打印设置;以及,渲染驱动(render driver),用于基于打印设置将从应用程序接收到的文档数据转换成可以被计算机理解的数据格式的打印数据。
渲染驱动通过OS的***权限而操作,因此显示对话框降低了对于OS的兼容性。因此,为了(在打印过程中)在给出打印开始指令之后改变打印设置,使用包括在UI驱动中的DDI的DrvDocumentEvent()来显示对话框。该DDI是在渲染驱动执行打印时调用的UI驱动的DDI。通过与应用程序相同的权限来操作UI驱动,因此不会降低对于OS的兼容性。
然而,渲染驱动和UI驱动是不同的模块,不能彼此直接通信以交换信息。基本上,仅仅从OS中将驱动调用为DDI。
在专利文献1中,为了解决上述的问题,执行如下的一种方法:暂时地将打印已经开始之后改变的数据输出到文件。
客户端PC能够使用服务器PC作为打印机服务器从而向打印机进行打印请求。在这种***中,需要在客户端PC中安装与服务器PC中的打印机驱动相同的打印机驱动。因此,需要高成本地使管理员在网络中的每个客户端PC中安装打印机驱动。
作为解决上述问题的手段,在point&print中,可以从服务器PC下载并安装打印机驱动到客户端PC中。这是***中的OS的标准功能。当通过point&print执行打印处理时,使用RAW spool格式和EMF spool格式。
利用已经通过point&print安装的打印机驱动(在EMF SPOOL的情况下),用户能够改变PC(客户端PC或者服务器PC)用于执行渲染操作(由渲染驱动执行)。在客户端PC侧上执行的渲染处理被称为“客户端侧渲染”,在服务器PC侧上执行的渲染处理被称为“服务器侧渲染”。
然而,在使用临时文件的方法中,取决于操作打印机驱动的时机和用户的权限水平,可能不能保证打印机驱动总是将信息输出到临时文件。即使信息被输出到临时文件,在操作多个应用程序的情况下,设置可能被重写。
图4示意性地示出了临时文件和多个应用程序之间的关系。应用程序1和2操作在相同的PC上,并且能够打印文档数据。
(1)为响应于接收自应用程序1的请求,UI驱动将设置写进临时文件。
(2)为响应于接收自应用程序2的请求,UI驱动将设置写进临时文件。
(3)当渲染驱动响应接收来自于应用程序1的请求而从临时文件中读取设置时,临时文件中的内容已经改变。
为了解决上述的问题,打印设置不被保存在临时文件中,取而代之,打印设置被保存在打印设置存储模块。
然而,即使通过上述的方法,也存在无法解决问题的两种情况。
针对(A.):在EMF SPOOL中的打印顺序的情况
针对(B.):在安装有point&print的打印驱动的打印顺序的情况。
针对(A.)
使用打印设置存储模块的方法当打印时使用DDI调用顺序,其可以在RAW SPOOL时完成。然而,在不同的spool格式中,从OS中调用的DDI调用顺序改变。在EMF SPOOL中,存在如下的处理:将来自应用程序的文档数据转换成EMF数据的处理,以及将EMF数据转换成能被打印机理解的渲染数据的处理。因此作为OS内部的操作,需要操作这两种打印处理顺序。结果,DDI调用顺序变得比RAW SPOOL更加复杂,因此不能在期望的时机忽略打印设置。
针对(B.)
在本地环境下能够实现使用打印设置存储模块的方法,其中打印机驱动安装在用户使用的PC中。然而,利用point&print的安装格式,UI驱动和渲染驱动通过用户的设置能够在不同的位置操作(服务器侧渲染)。
在客户端侧渲染中,UI驱动和渲染驱动都在客户端PC侧操作。然而,在服务器侧渲染中,UI驱动在客户端PC侧操作,而渲染驱动在服务器PC侧操作。在服务器侧渲染中,操作中的PC是物理上不同的PC,因此打印设置存储模块只出现在客户端侧PC。在这种情况下,服务器的渲染驱动不能从打印设置存储模块获得打印设置。
图5示出了在打印开始后不能改变打印设置的情况的列表。如上所述,在安装环境是本地并且spool格式是EMF SPOOL的情况下,以及在安装环境是point&print、spool格式是EMF SPOOL且渲染位置是服务器的情况下,很难在开始打印之后改变打印设置。
专利文献1:日本公开专利公报No.2010-066876。
发明内容
本发明提供一种信息处理装置和***,其中能消除上述的一个或以上的缺点。
本发明的优选实施例提供一种信息处理装置和***,其中,无论打印机驱动的安装环境或spool格式如何不同,都能够在已经开始打印之后改变打印设置。
根据本发明的一个方面,提供一种信息处理装置,包括:操作接收单元,被配置成接收操作;设置接收单元,被配置成在所述操作接收单元接收到开始打印指令或开始传送指令之后,显示用于打印或传送的设置条件,并且接收对所述设置条件的改变;图像处理单元,被配置成从文档数据提供单元获取作为打印目标或传送目标的文档数据,并且根据所述设置条件将所述文档数据转换成打印设备的打印数据;以及,设置条件存储单元,在该设置条件存储单元中,经过操作***通过使用由所述设置接收单元获取的识别信息作为密钥来存储所述设置条件,其中所述识别信息识别打印处理或传送处理并且由所述操作***根据所述开始打印指令或开始传送指令而生成,其中,所述图像处理单元从所述操作***中获取所述识别信息,并且通过使用所述识别信息作为密钥经由所述操作***从所述设置条件存储单元读取所述设置条件,并且基于所述设置条件将所述文档数据转换成所述打印设备的打印数据。
根据本发明的一个方面,提供一种***,在该***中第一信息处理装置、第二信息处理装置以及打印设备通过网络连接,所述***包括:操作接收单元,被配置成接收操作;设置接收单元,被配置成在所述操作接收单元接收到开始打印指令或开始传送指令之后,显示用于打印或传送的设置条件,并且接收对所述设置条件的改变;图像处理单元,被配置成从文档数据提供单元获取作为打印目标或传送目标的文档数据,并且基于所述设置条件将所述文档数据转换成打印设备的打印数据;以及设置条件存储单元,被提供在所述第二信息处理装置中,在所述设置条件存储单元中,经过所述第一信息处理装置和所述第二信息处理装置的操作***通过使用由所述设置接收单元获取的识别信息作为密钥来存储所述设置条件,其中所述识别信息识别打印处理或传送处理并且由所述第二信息处理装置的所述操作***根据开始打印指令或开始传送指令而生成,其中,所述图像处理单元从所述第二信息处理装置的所述操作***中获取所述识别信息,并且通过使用所述识别信息作为密钥经由至少所述第二信息处理装置的所述操作***从所述设置条件存储单元读取所述设置条件,并且基于所述设置条件将所述文档数据转换成所述打印设备的打印数据。
根据本发明的一个方面,提供一种非瞬时的计算机可读记录介质,存储使得包括用于接收操作的操作接收单元的信息处理装置执行如下的方法的程序,该方法包括:在所述操作接收单元接收开始打印指令或开始传送指令之后,显示用于打印或传送的设置条件,并且接收对所述设置条件的改变;通过设置模块来获取识别信息,其中所述识别信息识别打印处理或传送处理并且由操作***根据开始打印指令或开始传送指令生成;通过使用所述识别信息作为密钥经由所述操作***在设置条件存储单元中存储所述设置条件;通过图像处理模块从所述操作***获取所述识别信息;通过所述图像处理模块,通过使用所述识别信息作为密钥经由所述操作***从所述设置条件存储单元中读取所述设置条件;基于从所述设置条件存储单元读取的所述设置条件,通过所述图像处理模块将由文档数据提供单元提供的作为打印目标或传送目标的文档数据传换成打印设备的打印数据。
附图说明
当结合附图阅读时,从以下的详细描述,本发明的其他目的、特征和优点变得更加清晰,其中:
图1示出了打印机驱动的机密打印功能的屏幕示例;
图2示出了PC-FAX驱动的位置确定功能的屏幕示例;
图3示意性地示出了point&print;
图4示意性地示出了多个应用程序和临时文件之间的关系;
图5示出了在传统技术中在打印开始后不能改变打印设置的情况的列表;
图6示意性地示出了打印机驱动的特征;
图7A和与7B示意性地示出了打印***;
图8是PC和打印机驱动的功能框图;
图9示出了语言监视器的操作;
图14是如图13所示的打印架构的顺序图(传统技术);
图15A和15B示出了ExtEscape()函数的格式;
图16A和16B示出了DrvDocumentEvent()函数的格式和SendRecvBidiDataFromPort()函数的格式;
图17A和17B示出了PBIDI_REQUEST_CONTAINER结构的格式和BIDI_REQUEST_DATA结构的格式;
图18示意性示出了由OS分配的任务ID;
图19示意性示出了存储在语言监视器中的打印设置和任务ID;
图22示意性示出了包括point&print环境的打印***的示例;
图23示出了在point&print环境下的语言监视器的定位;
图24用于描述point&print环境下的任务ID;
图25示意性示出了在point&print环境下的RAW SPOOL的打印过程;
图26示意性示出了在point&print环境下的EMF SPOOL(客户端侧渲染)的打印过程;以及
图27示意性示出了在point&print环境下的EMF SPOOL(服务器侧渲染)的打印过程。
具体实施方式
参考附图描述本发明的实施例。
图6示意性地示出了根据本实施例的打印机驱动的特征。PC(个人电脑)100正在***的OS 10上执行应用程序31。在***的打印架构下,由打印机根据如图6所示的软件层次结构来打印应用程序的文档数据。在此情况下,不区分spool格式。
1.开始应用程序打印处理
2.应用程序31调用OS的GDI API(保留打印机设备上下文)
3.打印机驱动30生成渲染数据
4.语言监视器32执行必要的处理
5.端口监视器33根据打印机端口的类型(USB、TCP/IP等)执行输出处理
6.渲染数据被送至打印机200。
在本实施例中,在如上所述的打印架构中,使用由OS(操作***)10产生的任务ID和语言监视器32。OS 10将任务ID应用到每个打印任务。任务ID被报告给打印机驱动30。
在***的OS中,打印机驱动30可使用由OS 10提供的语言监视器32或者由制造商(打印机制造商,传真机制造商等)提供的语言监视器32。在本实施例中,语言监视器32不仅用作与端口监视器33交互的接口,还用作存储彼此关联的打印设置和任务ID的部件。
打印机驱动30的UI驱动,将任务ID和从应用程序获取的打印设置一起报告给语言监视器32。语言监视器32彼此关联地存储打印设置和由OS生成的任务ID。语言监视器32通过将任务ID用作密钥来管理打印设置,因此打印设置不会被其他应用程序盖写。
此外,渲染驱动通过指定任务ID来读取打印设置,从而能够从语言监视器32中获取由UI驱动生成的打印设置。如上所述,渲染驱动能够唯一地识别打印设置。
此外,语言监视器32是***OS的函数,因此能够用在point&print环境的服务器PC上。因此,UI驱动能够访问服务器PC的语言监视器32,并且还在服务器PC的渲染驱动执行渲染处理时,UI驱动能够从语言监视器32中获取由任务ID指定的打印设置。如上所述,根据本实施例管理打印设置的方法,与将打印机驱动安装在本地的情况类似,在point&print环境下也是有效的。
因此,利用根据本实施例管理打印设置的方法,无论spool格式或安装环境如何,都能在已经开始打印之后改变打印设置。
第一实施例
配置
图7A示意性地示出了打印***400,图7B示出了PC 100(个人电脑)的硬件配置。PC 100和打印机200通过网络300连接。只有一个打印机200就足够了。
PC 100接收用户的操作,且诸如文档生成软件等的应用程序使用GDI、DDI以及打印机驱动去请求打印。打印机驱动30生成打印数据并且通过如下所述的过程将打印数据送至打印机200。只要包括图像形成功能,打印机200可以是诸如复印机和传真机等的任意的设备。打印机200可以具有电子摄像方法的图像形成功能或者喷墨方法的图像形成功能。此外,PC 100和打印机200可以通过USB线缆直接连接。
PC 100包括通过总线彼此连接的CPU 11、ROM 12、RAM 13、外部I/F 14、通信设备15、输入设备16、显示控制单元17以及存储设备18。CPU 11从存储设备18中读取OS 10、应用程序31以及打印机驱动30,并且通过将RAM 13被用作工作存储器来执行这些软件项。
应用程序31用于将打印请求传送至打印机200。应用程序31可以是诸如文档生成软件、浏览器软件以及演示材料生成软件等各种软件。只要能够生成、编辑、显示、管理和打印作为打印目标的文档数据,任何一种应用程序都是适用的。文档数据不仅包括字符、符号和数字,也包括诸如图像和照片等的各种打印目标。
RAM 13被用作用于暂时存储必要的数据的工作存储器(主存储存储器)。ROM 12存储BIOS,初始化设置的数据、启动程序等。
外部I/F 14是用于安装诸如USB线缆和可移动存储介质20等的接口。通信设备15是LAN卡或以太网(注册商标)卡,用于响应于CPU 11的指示将包数据(在本实施例中主要是打印数据)发送到打印机200。
输入设备16是用于接收来自用户的各种操作指令的接口,其包括键盘和鼠标。触摸面板和语音输入设备可用作输入设备。显示控制单元17基于应用程序31指示的屏幕信息通过预定的分辨率和多种颜色控制显示器19的渲染。显示器19是诸如液晶和有机EL等的FPD(平板显示器)。
存储设备18具有诸如一体的HDD(硬盘驱动器)和闪存等的非易失存储器,其存储OS 10,打印机驱动30和应用程序31。
存储介质20是诸如SD卡和USB存储器等之类的非易失存储器。OS 10,打印机驱动30和应用程序31以被记录在存储介质20中的状态或从服务器(未示出)中下载的状态来分发。
图8是PC 100和打印机驱动30的功能框图。PC 100包括在***OS上操作的应用程序31、打印机驱动30、语言监视器32以及端口监视器33。在这些元件中,语言监视器32和端口监视器33由OS 10提供,因此两者广义上是OS 10的一部分。其他的诸如GDI、假脱机程序(spooler)和打印处理器等元件并未示出,但是也同OS 10一起被安装在PC 100中。
打印机驱动30包括UI驱动38和渲染驱动39。UI驱动38包括显示单元381。当用户向应用程序输入用于打印文档的操作时,UI驱动38的显示单元381在显示器上显示打印设置屏幕(也称为打印对话框)。用户能够在打印设置屏幕上进行诸如复印份数、双面打印、“组合”、“装订”、以及“放大”等设置。UI驱动38的显示单元381能够在显示器19上显示打印设置屏幕,并且即使在用户已经输入指令以开始打印之后也接收打印设置的改变。打印设置被存储在被称为DEVMODE结构(在下文中,称为“DEVMODE”)的结构中(数据表)。DEVMODE是定义成员变量(member variable)的数据结构,其中该成员变量被用于在运行在OS上的各种打印机驱动30上设置共同的打印条件。
渲染驱动39查阅DEVMODE,并从作为应用程序31的打印目标的文档数据生成已经应用了打印设置的打印数据。打印数据包括渲染数据(例如,PDL数据)以及控制数据(例如,PJL的打印命令)。
语言监视器32是与打印机驱动30高度关联的模块。语言监视器32能够过滤将被送至端口监视器33的打印数据。根据本实施例的语言监视器32包括数据保存单元321和通信单元322。在这些单元中,通信单元322被用于在打印机驱动30将打印数据传送至端口监视器33时控制通信,且传统的语言监视器32包括通信单元322。通信单元322能够接收来自打印机200的信息。同时,数据保存单元321利用任务ID作为密钥来与打印设置关联地存储打印数据。打印机驱动30使用语言监视器32的函数来实现数据保存单元321。因此,OS 10不需要改变,即使需要改变时,也只要求很小的改变。下文将描述数据保存单元321。
图9示出了语言监视器32的操作。语言监视器32接收来自打印处理器41的打印数据,并且将打印数据传送到端口监视器33。端口监视器33基于通信协议执行处理,并且将打印数据传送到端口驱动43。端口驱动43控制连接打印机200和PC 100的连接接口(USB、NIC等),并且将打印数据传送至打印机200。
OS 10的GDI 34(参见图11)通过DDI调用来调用打印机驱动30的渲染驱动39和UI驱动38。UI驱动38和渲染驱动39彼此不能直接通信。然而,存在作为DDI的变元的DEVMODE,其中DDI是用于从OS 10中调用驱动的I/F,因此渲染驱动39和UI驱动38都查阅DEVMODE。
—从OS 10中调用的UI驱动38接收用户的打印设置,并且在DEVMODE中存储打印设置。
—当开始准备打印时,将DEVMODE从OS 10中传递到渲染驱动39。
也就是说,UI驱动38确定“打印设置”,并且当开始准备打印时,渲染驱动39接收“打印设置”,并基于打印设置生成打印命令和渲染数据。这是***OS的打印架构的最基本的打印顺序。渲染驱动39在UI驱动38之后执行处理,因此,利用典型的打印机驱动30,在用户给出开始打印的指令之后不能改变打印设置。
(1)用户通过由UI驱动38提供的打印对话框改变打印设置(改变已经注册的初始值)。
(2)用户执行操作从而指示应用程序开始打印。
(3)应用程序从UI驱动38接收包括打印设置在内的DEVMODE从而接收用户的打印设置。
(4)应用程序将打印指令和DEVMODE传送至GDI34作为GDI调用。
(5)GDI34将GDI调用转换成DDI调用,并且将DDI调用报告给渲染驱动39。
(6)渲染驱动39将RAW数据传送给假脱机程序35,其中该RAW数据已经被转换成可以被打印机理解的语言。
(7)假脱机程序35将接收自渲染驱动39的RAW数据传送至打印机200。
图12是如图11所示的***OS的打印框架的顺序图(传统技术)。实际上,存在在GDI 34和UI驱动38或者GDI 34和渲染驱动39之间执行的通信(未示出);然而,没有示出这样的通信。通过UI***的DDI函数将信息从GDI 34报告给UI驱动38,通过渲染***的DDI函数将信息从GDI34报告给渲染驱动39。
在图12的步骤S1之前,UI驱动38已经接收到了由用户设置的打印设置,并且当用户进行开始打印的操作时,应用程序31获取存储在DEVMODE中的打印设置。
步骤S1:应用程序31首先指示GDI 34开始打印准备。具体地讲,应用程序31通过使用打印设置(DEVMODE)作为变元的CreateDC()函数来调用GDI 34。
步骤S1.1:GDI34调用与API对应的DDI,从而将打印设置传送至渲染驱动39。打印设置被存储在DrvEnablePDEV()变元中,并且被报告给渲染驱动39,其中该打印设置已经被利用CreateDC()的变元从应用程序31传递至GDI34。接着,渲染驱动39能够查阅打印设置,直到完成任务(直到设备上下文被擦除)。
步骤S2:当GDI 34向应用程序31报告打印准备工作已经完成时,应用程序31指示GDI 34开始打印。具体地讲,应用程序31通过使用DocINFO作为变元的StartDoc()函数来调用GDI 34。
步骤S2.1:GDI 34指示UI驱动38开始打印。具体地讲,GDI 34将DrvDocumentEvent()DOCUMENTEVENT_STARTDOCPER()传送至UI驱动38。
步骤S2.2:GDI 34指示渲染驱动39开始打印。具体地讲,GDI 34将DrvStartDoc()函数传送至渲染驱动39。OS 10在预定的时机通过CreateDC()函数生成任务ID。GDI 34在DrvStartDoc()函数的变元中设置任务ID,因此渲染驱动39能够查阅任务ID。
步骤S2.3:类似地,GDI 34指示UI驱动38开始打印。具体地讲,GDI 34将DrvDocumentEvent()DOCUMENTEVENT_STARTDOCPOST()传送至UI驱动38。GDI34将任务ID作为此函数的变元传送,因此,UI驱动38能够查阅任务ID。
步骤S3:当GDI 34向应用程序31报告打印开始已经完成时,应用程序31以页为单位重复处理。首先,应用程序31指示GDI 34接收新的页的打印数据。具体地讲,应用程序31将StartPage()函数传送至GDI34。
步骤S3.1:GDI 34将DrvStartPage()传送至渲染驱动39。
步骤S4:当接收到来自于渲染驱动39的响应时,应用程序31将渲染函数(文档数据)传送到GDI 34。
步骤S4.1:GDI 34将渲染函数(文档数据)传送至渲染驱动39。渲染驱动39根据打印设置将文档数据转换成打印数据。
步骤S5:当GDI 34向应用程序31报告在一页上的渲染处理已经完成时,应用程序31向GDI 34报告一页上的写入已经完成。具体地讲,应用程序31将EndPage()函数传送至GDI 34。
步骤S5.1:GDI 34向渲染驱动39报告一页的写入已经完成。具体体讲,GDI 34将DrvSendPage()函数传送到渲染驱动39。
步骤S6:当所有页的渲染处理都完成时,应用程序31向GDI 34报告打印任务已经结束。具体地讲,应用程序31将EndDoc()的函数传送至GDI 34。
步骤S6.1:GDI 34向渲染驱动39报告打印任务已经结束。具体地讲,GDI34将EndDoc()的函数传送给渲染驱动39。
步骤S6.2:GDI 34向UI驱动38报告打印任务已经结束。具体地讲,GDI34将DrvDocumentEvent()DOCUMENTEVENT_ENDDOCPOST()的函数传送给UI驱动38。
接下来,擦除设备上下文,并且渲染驱动39不能查阅打印设置(DrvDisablePDEV()函数的DDI调用被报告给渲染驱动)。
(1)用户通过由UI驱动38提供的打印对话框(GUI)改变打印设置(改变已经注册的初始值)。
(2)用户执行操作以指示应用程序31开始打印。
(3)应用程序31从UI驱动38接收包括打印设置在内的DEVMODE,从而接收用户的打印设置。
(4)应用程序31将打印指示传送给GDI34作为GDI调用。
(5)GDI34将EMF数据传递给假脱机程序35作为spool数据。
(6)当应用程序31的所有的打印数据都被假脱机时,假脱机程序35向打印处理器41报告将执行去假脱机(despool),并且将假脱机数据(spool data)传递至打印处理器41。
(7)打印处理器41逐页编辑假脱机数据以实现组合/调换顺序/装订等功能,并且将编辑的内容报告给GDI 34作为GDI调用。
(8)GDI 34将GDI调用转换成DDI调用,并且将DDI调用报告给渲染驱动39。
(9)渲染驱动39将已经转换成打印机可以理解的语言的RAW数据传递给假脱机程序35。
(10)假脱机程序35将接收自渲染驱动39的RAW数据传送至打印机200。
图14示出了图13的的打印架构的顺序(传统技术)。实际上,存在在GDI 34和UI驱动38之间或者在GDI 34和渲染驱动39之间执行的通信(未示出);然而,并未示出这样的通信。在EMF SPOOL中,应用程序处理和假脱机程序处理被分开。
在图14的步骤S1之前,UI驱动38已经接收了用户设置的打印设置,并且当用户执行开始打印的操作时,应用程序31获取存储在DEVMODE中的打印设置。
步骤S1:应用程序31首先指示GDI 34开始打印准备。具体地讲,应用程序31通过使用打印设置(DEVMODE)作为变元的CreateDC()函数来调用GDI34。
步骤S1.1:GDI 34调用与API对应的DDI,以将打印设置传送至渲染驱动39。打印设置被存储在DrvEnablePDEV()的变元中并且被报告给渲染驱动39,其中该打印设置已经被利用CreateDC()变元从应用程序31传递至GDI 34。接下来,渲染驱动39能查阅打印设置,直到完成任务(直到擦除设备上下文)。
步骤S2:当GDI 34将打印准备完成报告给应用程序31时,应用程序31指示GDI 34开始打印。具体地讲,应用程序31通过使用DocINFO作为变元的StartDoc()函数来调用GDI 34。
步骤S2.1:GDI 34指示UI驱动38开始打印。具体地讲,GDI 34将DrvDocumentEvent()DOCUMENTEVENT_STARTDOC()传送至UI驱动38。
步骤S2.2:GDI 34将任务ID送至UI驱动38。具体地讲,GDI 34将DrvDocumentEvent()DOCUMENT_STARTDOCPOST()送至UI驱动38。GDI 34将任务ID设为此函数的变元,因此UI驱动38能够查阅任务ID。在此点上,渲染驱动39不能获取任务ID。
步骤S3:当GDI34向应用程序31报告打印开始已经完成时,应用程序31以页为单位重复处理。应用程序31指示GDI 34接收新的页的打印数据。具体地讲,应用程序31将StartPage()传送至GDI 34。通过StartPage(),假脱机程序处理开始。
步骤S4:应用程序31将渲染函数(文档数据)转送至GDI 34。GDI 34基于打印设置创建EMF数据。
步骤S5:应用程序31向GDI 34报告一页的写入已经完成。具体地讲,应用程序31将EndPage()传送至GDI 34。
步骤S6:当所有页的渲染处理都完成时,应用程序31向GDI 34报告打印任务已经结束。具体地讲,应用程序31将EndDoc()传送至GDI 34。
如上所述,当应用程序31的处理结束时,即使打印还未完成,也表现出应用程序31好似已经完成打印。具体地讲,在假脱机程序处理中再次执行打印处理,其中EMF数据被转换成RAW数据。
OS 10监控应用程序31和GDI 34之间的通信,并且在预定的时机(例如,在StartPage()之后),OS 10使得假脱机程序35开始假脱机程序处理。
步骤S7:假脱机程序35指示打印处理器41开始打印准备。
步骤S7.1:打印处理器41指示GDI 34开始打印准备。
步骤S7.1.1:GDI 34将打印设置传送至渲染驱动39。具体地讲,打印设置被存储在DrvEnablePDEV()的变元中并且被报告给渲染驱动39,其中,应用程序31已经利用CreateDC()的变元将该打印设置传递至GDI 34。接下来,渲染驱动39能够查阅打印设置,直到任务结束(直到擦除设备上下文)。
步骤S7.1.2:GDI 34指示渲染驱动39开始打印。具体地,GDI 34将DrvStartDoc()函数传送至渲染驱动39。OS 10在预定的时机通过CreateDC()函数产生任务ID。GDI 34将任务ID设置成DrvStartDoc()函数的变元,因此渲染驱动39能够查阅任务ID。
步骤S7.2:接下来,打印处理器41以页为单位重复处理。首先,打印处理器41指示GDI 34接收新的页的打印数据。具体地,打印处理器41将GdiStartPageEMF()传送至GDI 34。
步骤S7.2.1:GDI 34将DrvStartPage()传送至渲染驱动39。
步骤S7.2.2:GDI 34将渲染函数(文档数据)传送至渲染驱动39。渲染驱动39根据打印设置将文档数据转换成打印数据。
步骤S7.2.3:GDI 34向渲染驱动39报告一页的写入已经完成。具体地讲,GDI 34将DrvSendPage()传送至渲染驱动39。
接下来,以页为单位重复相同的处理。
首先,描述用在根据本实施例的打印架构中的API。
图15A表示ExtEscape()函数的格式。ExtEscape()函数是API,通过该API,模块(在顺序图或功能框图中表示的每个方框)能够访问通过GDI无法访问的特殊模块。当应用程序在不包括GDI 34的情况下将数据传送至驱动的时候,或者当应用程序在不包括GDI 34的情况下从模块中获取数据的时候,使用ExtEscape()函数。
·Hdc是设备上下文的句柄。
·nEscape是用于检验和设置ExtEscape()函数的功能的变元。
·cbInput是ExtEscape()函数传送的结构的尺寸。
·IpszInData是ExtEscape()函数传送的结构的指针。
·cbOutput是用于接收由ExtEscape()函数传送的结构的结构的尺寸。
·IpszOutData是用于接收由ExtEscape()函数传送的结构的结构的指针。
ExtEscape()函数是对于由CreateDC()获取的设备上下文能够调用的API。因此,在存在正进行顺序处理的设备上下文时,UI驱动38能够调用ExtEscape()函数。
图15B是应用程序调用ExtEscape()的情况下的顺序图。
(i)应用程序从GDI 34中调用ExtEscape()。
(ii)GDI 34将ExtEscape()转换成DrvEscape()的DDI调用,并且将DDI调用报告给渲染驱动39。
同时,渲染驱动39或者UI驱动38可以调用ExtEscape()。ExtEscape()能够由CreateDC()和DeleteDC()之间的各个模块调用,因此图15B的顺序能够***如图12和14所示的传统顺序的任意位置。
图16A表示DrvDocementEvent()函数的格式。DrvDocementEvent()函数是用于处理与打印文档数据相关的特殊事件的DLL。
·hPrinter是打印机的句柄。
·hdc是设备上下文的句柄。
·iEsc是由作为调用源的模块提供的用于识别处理目标的事件的转义(escape)代码。
·cbIn是由pvIn传送的数据的尺寸。
·pvIn是被传送的数据的指针。
·cbOut在iEsc是DOCUMENTEVENT_ESCAPE时,由函数指定的值作为ExtEscape()的cbOutput参数进行存储。cbOut在iEsc是DOCUMENTEVENT_QUERYFILTER时,存储由接收侧接收的结构pvOut的尺寸。
·pvOut是由接收侧接收的结构pvOut的指针。
在本实施例中,在CreateDC()之后的打印过程中,根据需要在多个DDI调用之间调用DrvDocumentEvent()函数,其中,GDI34通过所述的多个DDI调用来调用渲染驱动39。DrvDocumentEvent()是用于执行单个处理的DDI,因此不能在两个连续的DrvDocumentEvent()函数之间共享数据。在此方面,DrvDocumentEvent()函数与调用渲染驱动39的DDI不同。DrvDocumentEvent()函数是UI***的DDI,因此可以显示对话框。
此外,存在作为变元的设备上下文(hdc),因此在DrvDocumentEvent()的DDI调用之后,模块能够调用获取设备上下文的API。例如,当UI驱动38利用设备上下文作为变元来调用渲染***的API,可能向相应的渲染驱动39报告渲染指示。
图16B示出了SendRecvBidiDataFromPort()的格式。SendRecvBidiDataFromPort()函数是应用到语言监视器32的函数。与打印机驱动30类似,语言监视器32也具有由OS 10确定的I/F。SendRecvBidiDataFromPort()格式是I/F中的一个,并且支持应用程序和打印机之间的以及应用程序和打印机服务器之间的双向通信。
·hPort是由作为调用源的模块提供的端口的句柄。
·dvAccessBit由作为调用源的模块提供,并且是用于允许访问打印机或打印机服务器的ACCESS_MASK。
·pAction是由作为调用源的模块提供的请求动作。
·pReqData是包括请求数据在内的PBIDI_REQUEST_CONTAINER结构的指针。
·ppResData是指向存储器区域的指针,其中该存储器区域用于接收包括响应数据在内的BIDI_RESPONSE_CONTAINER结构的地址。
图17A示出了PBIDI_REQUEST_CONTAINER结构的格式。PBIDI_RESPONSE_CONTAINER结构的内容与PBIDI_REQUEST_CONTAINER结构的大致相同。PBIDI_REQUEST_CONTAINER结构是用于存储bidi请求的列表的容器,并且PBIDI_RESPONSE_CONTAINER结构是用于存储bidi响应的列表的容器。
***的OS10提供数据库的计划(schema)作为“Bidi请求和响应计划”,用于提供能够用于打印机和应用程序之间的双向通信的请求和响应的组合。通过将任务ID和打印设置注册在请求和响应中,模块能够利用OS10的机制,通过使用任务ID作为密钥来获取打印设置。
·版本是计划的版本,其目前为1。
·标记是由***(OS 10)保存的标记的设置,其需要为0。
·计数(Count)是“aData”成员的“bidi响应”的数目。
·Adata[]是BIDI_REQUEST_DATA结构的排列,其中每个元素具有一个bidi响应。
图17B示出了BIDI_REQUEST_DATA结构的格式。BIDI_REQUEST_DATA结构存储一个bidi响应。
·dwReqNumber是请求的索引,并用于通过多个请求来匹配操作的请求和响应。
·pSchema是指向存储器位置的指针,其中该存储器位置包含计划字符串的第一字节。
·数据是根据该计划的BIDI_DATA。
在语言监视器中存储任务ID和打印设置
传统地,OS 10按照接收到的打印开始指令的顺序产生***中的唯一的ID(任务ID)。在RAW SPOOL和EMF SPOOL中,存在获取由渲染驱动39和UI驱动38执行的任务ID的步骤。也就是说,渲染驱动39能够接收到具有DrvStartDoc()的变元的任务ID。UI驱动38能够接收到具有DrvDocumentEvent()DOCUMENTEVENT_STARTDOCPOST()的变元的任务ID。
图18示意性地示出了由OS 10分配的任务ID。应用程序A和应用程序B任意地发出打印开始指令1-3。OS 10将任务ID1分配给应用程序A的打印开始指令1,将任务ID2分配给应用程序B的打印开始指令2,并将任务ID3分配给应用程序A的打印开始指令3。
UI驱动38和渲染驱动39获得这些任务ID,因此保证了UI驱动38和渲染驱动39获取的任务ID的唯一性。
在本实施例中,任务ID是被用作密钥以在语言监视器32中存储打印设置。
图19示意性地示出了存储在语言监视器32中的任务ID和打印设置。在应用程序A和B中,如下指示打印开始。OS 10以给出打印开始指示的顺序来分配任务ID。
1.应用程序A给出打印开始指令。
2.应用程序B给出打印开始指令。
3.应用程序A给出打印开始指令。
UI驱动38在打印开始之后显示打印设置屏幕,并且接收打印设置。打印设置被设置在语言监视器32中。在图19的示例中,语言监视器32将任务ID和打印设置的组合保存在表中。
当获取打印设置用于生成打印数据时,渲染驱动39通过使用任务ID作为密钥来请求(使得)语言监视器32提供打印设置。
如上所述,OS 10给每个打印任务分配唯一的密钥,并且语言监视器32具有通过使用该密钥来保存信息的机制。因此,即使多个应用程序随意地开始多个打印任务,打印机驱动30也能够管理用于每个打印任务的打印设置。
为了在语言监视器32中设置打印设置并且从语言监视器32请求打印设置,需要使用SendRecvBidiDataFromPort()函数。当打印机驱动30通过SendRecvBidiDataFromPort()调用语言监视器32时,语言监视器32能够被用作存储位置。也就是说,通过语言监视器32和SendRecvBidiDataFromPort()函数实现数据保存单元321。
如上所述,即使语言监视器32并非由制造商开发,标准语言监视器32也能够与OS 10一起使用。当制造商并没有开发语言监视器32时,标准的语言监视器32工作。如果制造商已经根据预先定义的I/F开发了语言监视器32,则能够添加唯一的功能。在本实施例中,通过使用称为SendRecvBidiDataFromPort()的I/F,打印机驱动30能够与语言监视器32交换数据。
UI驱动38设置表示“pAction”中的设置的常量,在“pReqData”中设置任务ID,在“ppResData”中设置指向存储了打印设置的地址的指针。语言监视器32在aData[]中存储任务ID,其中该aData[]是BIDI_REQUEST_DATA结构的排列中的一个元素,同时语言监视器32在aData[]中存储打印设置(的指针),其中aData[]是BIDI_RESPONSE_DATA结构的排列中的一个元素。因此,如图19所示,任务ID与打印设置彼此关联。
此外,渲染驱动39设置表示“pAction”中的读取的常量,在“pReqData”中设置任务ID,并且指定返回值(未示出)。因此,语言监视器32在返回值中存储地址的指针,其中在此地址中存储了与“ppResData”相对应的打印设置,同时语言监视器32将返回值返回给渲染驱动39。
通过使用如上所述的OS 10的功能,语言监视器32的数据保存单元321中的密钥能够用作彼此不重叠的打印任务的任务ID。
操作过程
图20是RAW SPOOL的***OS的打印架构的顺序图。实际上,存在在GDI 34和UI驱动38之间或者在GDI 34和渲染驱动39之间执行的通信(未示出);然而,并未示出这样的通信。通过UI***的DDI函数来报告从GDI 34到UI驱动38的消息,通过渲染***的DDI函数来报告从GDI 34到渲染驱动39的消息。
在图20的步骤S1之前,UI驱动38已经接收到了由用户设置的打印设置,并且当用户执行开始打印的操作时,应用程序31获取存储在DEVMODE中的打印设置。
步骤S1:应用程序31首先指示GDI 34开始打印准备。具体地讲,应用程序31通过使用打印设置(DEVMODE)作为变元的CreateDC()函数来调用GDI 34。
步骤S1.1:GDI 34调用与API对应的DDI,从而将打印设置传送至渲染驱动39。打印设置被存储在DrvEnablePDEV()的变元中并且被报告给渲染驱动39,其中该打印设置已经被利用CreateDC()变元从应用程序31传递至GDI 34。接着,渲染驱动39能够查阅打印设置,直到完成任务(直到设备上下文被擦除)。
步骤S2:当GDI 34向应用程序31报告打印准备工作完成时,应用程序31指示GDI 34开始打印。具体地讲,应用程序31通过使用DocINFO作为变元的StartDoc()函数来调用GDI 34。
步骤S2.1:GDI 34指示UI驱动38开始打印。具体地讲,GDI 34将DrvDocumentEvent()DOCUMENTEVENT_STARTDOCPER()传送至UI驱动38。
步骤S2.2:GDI 34指示渲染驱动39开始打印。具体地讲,GDI 34将DrvStartDoc()函数传送至渲染驱动39。OS 10在预定的时机通过CreateDC()函数生成任务ID。GDI 34在DrvStartDoc()函数的变元中设置任务ID,因此渲染驱动39能够查阅任务ID。
步骤S2.3.1:UI驱动38在给出打印开始指令之后在打印设置中检测到存在用于接收打印设置的改变的设置。因此,UI驱动38开始显示弹出窗口的处理。UI驱动38不能直接与渲染驱动39通信,因此将ExtEscape()传送给GDI 34。
步骤S2.3.1.1:GDI 34将DrvEscape()报告给渲染驱动39。渲染驱动39通过GDI 34将保存的打印设置传送给UI驱动38。
步骤2.4:根据ExtEscape()的处理,假定UI驱动38已经获取到了打印设置。当打印设置包括显示用于在打印开始指令之后(在打印的过程中)改变打印设置的打印对话框的指令的设置时,UI驱动38显示如图1和2所示的打印对话框,并且接收由用户给出的对打印设置的改变。
步骤S2.3.2:随着用户关闭打印对话框,UI驱动38通过SendRecvBidiDataFromPort()::set使用任务ID作为密钥,并且将用户改变的打印设置传送至语言监视器32(“::”意思是省略了“DOCUMENTEVENT”)。因此,语言监视器32能够彼此关联保存任务ID和打印设置。此时,也传送指示用户是否通过选择“确认”或“取消”来关闭对话框的内容。
步骤S3:当GDI34向应用程序31报告开始打印已经完成时,应用程序31以页为单位重复处理。首先,应用程序31指示GDI34接收新的页的打印数据。具体地讲,应用程序31将StartPage()函数传送至GDI34。
步骤S3.1:GDI 34将DrvStartPage()传送至渲染驱动39。
步骤S3.1.1:只有当接收到DrvStartPage()的第一DDI调用时,渲染驱动39才通过SendRecvBidiDataFromPort()::get,使用保持的任务ID作为密钥来向语言监视器32请求打印设置。语言监视器32保存指示步骤S2.2.2中用户是否通过选择“确认”或“取消”来关闭对话框的信息。当用户通过“确认”关闭打印对话框时,渲染驱动39基于打印设置生成打印数据。当用户通过“取消”关闭对话框时,渲染驱动39不会将数据传送到打印机或传真机。
步骤S4:当接收到来自于渲染驱动39的响应时,应用程序31将渲染函数(文档数据)传送到GDI 34。
步骤S4.1:GDI 34将渲染函数(文档数据)传送至渲染驱动39。渲染驱动39根据打印设置将文档数据转换成打印数据。
以后的过程与传统技术的过程相同,因此不做进一步描述。
如上所述,渲染驱动39能够从语言监视器32中获取由任务ID唯一地指定的打印设置。也就是说,即使在RAW SPOOL中打印已经开始之后改变打印设置,打印设置也不会被盖写。
图21A和图21B表示EMF SPOOL的***OS的打印架构的顺序图。实际上,存在在GDI 34和UI驱动38之间或者在GDI 34和渲染驱动39之间执行的通信(未示出);然而,并未示出这样的通信。
在图21A的步骤S1之前,UI驱动38已经接收了用户设置的打印设置,并且当用户执行开始打印的操作时,应用程序31获取存储在DEVMODE中的打印设置。
步骤S1:应用程序31首先指示GDI34开始打印准备。具体地讲,应用程序31通过使用打印设置(DEVMODE)作为变元的CreateDC()函数来调用GDI34。
步骤S1.1:GDI34调用与API对应的DDI,以将打印设置传送至渲染驱动39。打印设置被存储在DrvEnablePDEV()的变元中,并且被报告给渲染驱动39,其中该打印设置已经被利用CreateDC()变元从应用程序31传递至GDI34。接下来,渲染驱动39能够查阅打印设置,直到完成任务(直到擦除设备上下文)。
步骤S2:当GDI34将打印准备完成报告给应用程序31时,应用程序31指示GDI 34开始打印。具体地讲,应用程序31通过使用DocINFO作为变元的StartDoc()函数来调用GDI34。
步骤S2.1:GDI34指示UI驱动38开始打印。具体地讲,GDI34将DrvDocumentEvent()DOCUMENTEVENT_STARTDOC()传送至UI驱动38。
步骤S2.2:GDI34将任务ID送至UI驱动38。具体地讲,GDI34将DrvDocumentEvent()DOCUMENT_STARTDOCPOST()送至UI驱动38。GDI34在此函数的变元中设置任务ID,因此UI驱动38能够查阅任务ID。在此点上,渲染驱动39不能获取任务ID。
步骤S2.2.1:UI驱动38在给出打印开始指令之后在打印设置中检测到存在用于接收打印设置的改变的设置。因此,UI驱动38开始显示弹出窗口的处理。UI驱动38利用设备上下文作为变元以从GDI34中调用ExtEscape()。
步骤S2.2.1.1:GDI34将DrvEscape()的DDI调用传送给渲染驱动39以请求由渲染驱动39保存的打印设置。渲染驱动39通过GDI34将保存的打印设置传送给UI驱动38。
步骤S2.4:根据ExtEscape()的处理,假定UI驱动38已经获取到了打印设置。当打印设置包括显示用于在打印开始指令之后(在打印的过程中)改变打印设置的打印对话框的指令的设置时,UI驱动38接收由用户给出的对打印设置的改变。
步骤S2.2.2:随着用户关闭打印对话框,UI驱动38通过SendRecvBidiDataFromPort()::set使用任务ID作为密钥,并且将用户改变的打印设置传送至语言监视器32。因此,语言监视器32能够彼此关联保存任务ID和打印设置。此时,也传送指示用户是否通过选择“确认”或“取消”来关闭对话框的内容。步骤S3到S6与传统技术一样,因此不做进一步描述。直到此时,在应用程序处理中的打印(EMF数据的生成)完成。
接下来,在假脱机程序35的处理中再次执行打印处理,其中EMF数据被转换成RAW数据。
在OS10监控应用程序31和GDI34之间的通信,并且在预定的时机(例如,在StartPage()之后),OS10使得假脱机程序35开始假脱机程序处理。
步骤S7:假脱机程序35指示打印处理器41开始打印准备。
步骤S7.1:打印处理器41指示GDI34开始打印准备。
步骤S7.1.1:GDI34将打印设置传送至渲染驱动39。具体地讲,打印设置被存储在DrvEnablePDEV()的变元中并且被报告给渲染驱动39,其中,应用程序31已经通过CreateDC()的变元将该打印设置传递至GDI34。接下来,渲染驱动39能够查阅打印设置,直到任务终止(直到擦除设备上下文)。
步骤S7.1.2:GDI34指示渲染驱动39开始打印。具体地,GDI34将DrvStartDoc()函数传送至渲染驱动39。OS 10在预定的时机通过CreateDC()函数产生任务ID。GDI 34将任务ID设置成DrvStartDoc()函数的变元,因此渲染驱动39能够查阅任务ID。
步骤S7.2:接下来,打印处理器41以页为单位重复处理。首先,打印处理器41指示GDI 34接收新的页的打印数据。具体地,打印处理器41将GdiStartPageEMF()传送至GDI 34。
步骤S7.2.1:GDI 34将DrvStartPage()传送至渲染驱动39。
步骤S7.2.1.1:只有当接收到DrvStartPage()的第一DDI调用时,渲染驱动39通过SendRecvBidiDataFromPort()::get使用保存的任务ID作为密钥来向语言监视器32请求打印设置。语言监视器32保持指示在步骤S2.2.2用户是否通过选择“确认”或“取消”来关闭对话框的信息。当用户通过“确认”关闭打印对话框时,渲染驱动39基于打印设置生成打印数据。当用户通过“取消”关闭对话框时,渲染驱动39不会将数据传送到打印机或传真机。
步骤S7.2.2:GDI 34将渲染功能(文档数据)传送至渲染驱动39。渲染驱动39根据打印设置将文档数据转换成打印数据。
步骤S7.2.3:GDI 34向渲染驱动39报告一页的写入已经完成。具体地讲,GDI 34将DrvSendPage()函数传送至渲染驱动39。
接下来,以页为单位重复相同的处理。
也就是说,即使在EMF SPOOL中在开始打印之后改变打印设置,该打印设置也不会被盖写。
在图20和图21中,打印顺序依据spool格式而不同,因此看起来有不同之处。
然而,在渲染驱动39的以下函数中,在UI驱动38的以下函数中以及在语言监视器32的以下函数中,在RAW SPOOL和EMF SPOOL中执行相同的处理,其中
渲染驱动39的以下函数:
·DrvEnablePDEV()
·DrvStartDoc()
·DrvStartPage()
·DrvEscape()
UI驱动38的以下函数:
DrvDocumentEvent()DOCUMENTEVENT_STARTDOCPOST()
以及语言监视器32的以下函数
SendRecvBidiDataFromPort()::set
SendRecvBidiDataFromPort()::get
因此,不管spool格式如何,都能实现根据本实施例的管理打印设置的方法,即使在操作多个应用程序的情况下,用户也能够在打印开始之后改变打印设置。
第二实施例
在本实施例中,将说明在Point&Print环境下使用语言监视器32管理打印设置的方法。
图22示意性地示出了包括Point&Print环境在内的打印***的示例。四个客户端PC通过网络连接到一个服务器PC。打印机200被连接到服务器PC100,但是打印机200也可以连接到网络。
打印机驱动30被注册在服务器PC100中,服务器PC 110通过拷贝打印机驱动30将打印机驱动30分发到各个客户端PC,因此用户能够很容易地安装打印机驱动30。在下文中,假定客户端PC1被连接到服务器PC 110并且通过Point&Print安装打印机驱动。
在Point&Print环境下的服务器侧渲染中,客户端PC接收用户的打印设置,服务器PC 110执行渲染处理,因此很难共享打印设置。
同时,在本实施例中,服务器PC 110和客户端PC通过利用OS 10提供的打印架构内的语言监视器32来交换打印设置。因此,服务器PC 110通过打印架构中的处理能够从客户端PC中获取打印设置。因此,即使用户在打印开始之后改变打印设置,服务器PC 110也能够基于改变的打印设置执行渲染处理。
图23表示Point&Print环境下的语言监视器32的定位。语言监视器32是包含在***OS的打印架构中的模块。因此,即使通过Point&Print由客户端PC负责UI驱动38的处理,由服务器PC负责渲染驱动39的处理,也只有一个语言监视器32在服务器PC中起作用。因此,客户端PC的打印机驱动30和服务器PC 110的打印机驱动30访问一个语言监视器32。也就是说,当客户端PC的UI驱动38访问语言监视器32时,客户端PC的OS 10和服务器PC的OS 10在客户端PC和服务器PC 110之间建立通信(例如,通过使用RPC(远程过程调用))。然后,UI驱动38看起来正在访问客户端PC的语言监视器32。
如上所述,在客户端PC和服务器PC 110中安装了相同的***OS,因此客户端PC和服务器PC 110能够共享***OS打印架构的语言监视器32。利用由制造商唯一开发的模块,往往会出现访问权限的不同和通信错误;然而,在本实施例中,这种不便很少出现。此外,出于相同的原因,语言监视器32与OS 10有很好的兼容性。
在Point&Print中,存在RAW SPOOL和EMF SPOOL的spool格式。然而,在RAW SPOOL的情况下,没有服务器侧渲染。RAW SPOOL是应用程序的处理,因此渲染的位置受到了限制。
在其他情况下,也就是在RAW SPOOL的客户端侧渲染,EMF SPOOL的客户端侧渲染以及EMF SPOOL的服务器侧渲染的情况下,如图23所示使用语言监视器32。
图24用于说明Point&Print环境下的任务ID。当客户端PC通过RPC连接到服务器PC110,并且从客户端PC获取服务器PC110的打印机的句柄时,建立一个会话。当建立一个会话时,服务器PC110生成任务ID,并且把任务ID报告给客户端PC。因此,在RAW SPOOL的客户端侧渲染,EMF SPOOL的客户端侧渲染以及EMF SPOOL的服务器侧渲染的每种情况下,服务器PC110都生成任务ID。产生任务ID的时机与第一实施例相同。
在图24中,客户端PC1执行应用程序A,客户端PC2执行应用程序A和B,以及客户端PC3执行应用程序C。应用程序在任意的时机指示打印开始。
打印开始指令1:客户端PC2+应用程序A
打印开始指令2:客户端PC1+应用程序A
打印开始指令3:客户端PC3+应用程序C
打印开始指令4:客户端PC2+应用程序B
服务器PC 110的OS 10为打印开始指令1-4分配唯一的任务ID 1-4。也就是说,即使一个客户端PC开始从单个的应用程序开始打印时,或者一个客户端PC从多个应用程序开始打印时,或者一个客户端PC从单个的应用程序多次开始打印时,服务器PC 110分配彼此不重叠的任务ID。
与第一实施例类似,UI驱动38能够通过作为GDI 34的DDI调用的DrvStartDoc()的变元来接收由客户端PC从服务器PC 110获取的任务ID。渲染驱动39能够通过从GDI 34传送的DrvStartDoc()的变元从GDI 34来接收任务ID。
图25示意性地示出了Point&Print环境下的RAW SPOOL的打印过程。在Point&Print环境下,当用户设置RAW SPOOL(服务器侧渲染不能设置)时,在客户端PC执行渲染处理(生成RAW数据)。
(1)应用程序调用GDI 34。此时,服务器PC 110为服务器分配唯一的任务ID,并且将此任务ID返回至客户端PC。
(2)GDI 34调用打印机驱动30。
(3)打印机驱动30的渲染驱动39通过DrvStartDoc()的变元从GDI34中获取任务ID。此外,打印机驱动30的UI驱动38通过DrvDocumentEvent()DOCUMENTEVENT_STARTDOCPOST()从GDI34获取任务ID。当UI驱动38显示打印对话框时,用户能够改变打印设置。UI驱动38通过SendRecvBidiDataFromPort()::set将打印设置设置在语言监视器32中,其中该打印设置通过DrvEscape()从渲染驱动39获取。然后,当以页为单位开始打印时,渲染驱动39通过SendRecvBidiDataFromPort()::get从语言监视器32获取打印设置。
(4)根据所需,渲染驱动39执行渲染处理,并且将打印数据发送至假脱机程序35。假脱机程序35假脱机打印数据(RAW数据)。
(5)假脱机程序35通过RPC将打印数据送至服务器PC 110。
(6)处理转换至服务器PC 110,服务器PC 110的打印处理器41假脱机打印数据。
(7)假脱机程序35把打印数据传送至语言监视器32。
(8)语言监视器32和端口监视器33将打印数据送至打印机。在此阶段中,语言监视器32不能执行处理。
如上所述,除了在服务器PC 110生成任务ID之外,打印过程与在本地操作打印机驱动30的情况相同。因此,顺序图与图20的相同。因此,在Point&Print环境下在RAW SPOOL的情况下,能够实现使用语言监视器32管理任务ID和打印设置的操作。
图26示意性地示出了Point&Print环境下的EMF SPOOL的打印过程(客户端侧渲染)。在Point&Print环境下,当用户设置EMF SPOOL时,用户能够选择渲染侧。当用户选择客户端侧渲染时,能够在客户端PC执行渲染处理(RAW数据的生成)。
(1)应用程序调用GDI 34。此时,服务器PC 110分配用于服务器的唯一的任务ID,并且将此任务ID返回至客户端PC。
(2)GDI 34调用打印机驱动30。打印机驱动30的UI驱动38通过DrvDocumentEvent()DOCUMENTEVENT STARTDOCPOST()从GDI34获取任务ID。当UI驱动38显示打印对话框时,用户能够改变打印设置。UI驱动38通过SendRecvBidiDataFromPort()::set将通过DrvEscape()从渲染驱动39获取的打印设置设置在语言监视器32中。GDI34从打印数据生成EMF数据。
(3)假脱机程序35假脱机打印数据(EMF数据)。
(4)打印处理器41调用GDI34。
(5)GDI34调用打印机驱动30。
(6)打印机驱动30的渲染驱动39通过DrvStartDoc()的变元从GDI34中获取任务ID。当以页为单位开始打印时,渲染驱动39通过SendRecvBidiDataFromPort()::get从语言监视器32获取打印设置。打印机驱动30的渲染驱动39从EMF数据生成RAW数据。
(7)假脱机程序35通过RPC将打印数据(RAW数据)传送至服务器PC 110。
(8)处理转换至服务器PC 110,服务器PC 110的打印处理器41假脱机打印数据。
(9)假脱机程序35把打印数据传送至语言监视器32。
(10)语言监视器32和端口监视器33将打印数据送至打印机。在此阶段中,语言监视器32不能执行处理。
如上所述,在EMF SPOOL中,除了在服务器PC 110生成任务ID之外,打印过程与在本地操作打印机驱动30的情况相同。即使通过OS 10的功能由客户端PC和服务器PC 110分开执行处理,无论语言监视器32在客户端PC中还是在服务器PC 110中,客户端PC的打印机驱动30都能访问语言监视器32。此外,渲染驱动39能够通过语言监视器32获取在打印已经开始之后通过UI驱动38的打印对话框改变的打印设置。
因此,顺序图与图21A和21B的相同。因此,在Point&Print环境下在EMFspool(客户端侧渲染)的情况下,能够实现使用语言监视器32管理任务ID和打印设置的操作。
图27示意性地示出了Point&Print环境下的EMF spool(服务器侧渲染)的打印过程。在Point&Print环境下,当用户设置EMF spool时,用户能够选择渲染侧。当用户选择服务器侧渲染时,能够在服务器PC 110执行渲染处理(RAW数据的生成)。
(1)应用程序调用GDI 34。此时,服务器PC 110分配用于服务器的唯一的任务ID,并且将此任务ID返回至客户端PC。
(2)GDI 34调用打印机驱动30。打印机驱动30的UI驱动38通过DrvDocumentEvent()DOCUMENTEVENT_STARTDOCPOST()从GDI 34获取任务ID。当UI驱动38显示打印对话框时,用户能够改变打印设置。UI驱动38通过SendRecvBidiDataFromPort()::set将打印设置设置在语言监视器32中,其中该打印设置通过DrvEscape()从渲染驱动39获取。GDI34从打印数据生成EMF数据。
(3)假脱机程序35假脱机打印数据(EMF数据)。
(4)假脱机程序35通过RPC将打印数据(EMF数据)传送至服务器PC 110。
(5)处理转换至服务器PC 110,服务器PC 110的打印处理器41调用GDI 34。
(6)GDI 34调用打印机驱动30。
(7)打印机驱动30的渲染驱动39通过DrvStartDoc()的变元从GDI34中获取任务ID。然后,当以页为单位开始打印时,渲染驱动39通过SendRecvBidiDataFromPort()::get从语言监视器32获取打印设置。打印机驱动30的渲染驱动39从EMF数据生成RAW数据。打印机驱动30假脱机打印数据(RAW数据)。
(8)假脱机程序35把打印数据传送至语言监视器32。
(9)语言监视器32和端口监视器33将打印数据送至打印机。在此阶段中,语言监视器32不能执行处理。
如上所述,在EMF SPOOL中,除了在服务器PC 110生成打印任务ID之外,打印过程与在本地操作打印机驱动30的情况相同。即使,通过OS 10的功能由客户端PC和服务器PC 110分开执行处理,无论语言监视器32在客户端PC中还是在服务器PC 110中,打印机驱动30都能访问语言监视器32。此外,渲染驱动39能够通过语言监视器32获取在打印已经开始之后通过UI驱动38的打印对话框改变的打印设置。
因此,顺序图与图21A和21B的相同。因此,在Point&Print环境下在EMFSPOOL(客户端侧渲染)的情况下,能够实现使用语言监视器32管理任务ID和打印设置的操作。
根据本发明的一个实施例,提供一种信息处理装置,无论spool格式如何不同或打印器驱动的安装环境如何,该信息处理装置都能够在已经开始打印之后改变打印设置。
该信息处理装置和***不限于在此文中描述的具体的实施例,在不脱离本发明的范围的情况下可以进行任意的变形和修改。
本发明基于于2011年10月13日提交的日本在先专利申请No.2011-226153,其内容通过引用全部纳入此文。
Claims (12)
1.一种信息处理装置,包括:
操作接收单元,被配置成接收操作;
设置接收单元,被配置成在所述操作接收单元接收到开始打印指令或开始传送指令之后,显示用于打印或传送的设置条件,并且接收对所述设置条件的改变;
图像处理单元,被配置成从文档数据提供单元获取作为打印目标或传送目标的文档数据,并且根据所述设置条件将所述文档数据转换成打印设备的打印数据;以及
设置条件存储单元,在该设置条件存储单元中,经过操作***通过使用由所述设置接收单元获取的识别信息作为密钥来存储所述设置条件,其中所述识别信息识别打印处理或传送处理并且由所述操作***根据所述开始打印指令或开始传送指令而生成,其中,
所述图像处理单元从所述操作***中获取所述识别信息,并且通过使用所述识别信息作为密钥经由所述操作***从所述设置条件存储单元读取所述设置条件,并且基于所述设置条件将所述文档数据转换成所述打印设备的打印数据。
2.根据权利要求1所述的信息处理装置,其中,
当所述设置接收单元在接收到开始打印指令或开始传送指令之后显示用于打印或传送的所述设置条件时,所述设置接收单元调用所述操作***的预定的API函数以从所述图像处理单元获取所述设置条件。
3.根据权利要求1所述的信息处理装置,其中,
所述设置接收单元获取由所述操作接收单元在显示用于打印或传送所述设置条件之后接收的指示执行打印或执行传送或取消打印或取消传送的操作结果,并且将所述操作结果与所述设置条件一起存储在所述设置条件存储单元中,以及
当从所述设置条件存储单元读取的操作结果指示取消打印或取消传送时,所述图像处理单元取消将所述文档数据转换成所述打印数据。
4.根据权利要求1所述的信息处理装置,其中,
所述设置条件存储单元是语言监视器,以及
所述设置接收单元通过使用所述识别信息作为密钥调用所述操作***的预定的API函数,来在所述语言监视器中存储所述设置条件。
5.根据权利要求4所述的信息处理装置,其中,
所述图像处理单元通过使用所述识别信息作为密钥调用所述操作***的预定的API函数,来从所述语言监视器中读取所述设置条件。
6.根据权利要求1所述的信息处理装置,其中,
每次所述操作接收单元接收到开始打印指令或开始传送指令时,所述操作***在所述信息处理装置中生成任务ID作为所述识别信息的唯一项。
7.根据权利要求6所述的信息处理装置,其中,
所述操作***
对于由不同的文档数据提供单元提供的文档数据的打印处理或传送处理,生成所述识别信息的唯一项,
对于由相同的文档数据提供单元提供的不同的文档数据的打印处理或传送处理,生成所述识别信息的唯一项,以及
对于由相同的文档数据提供单元提供的相同的文档数据的不同的打印处理或传送处理,生成所述识别信息的唯一项。
8.根据权利要求1所述的信息处理装置,其中,
在所述操作接收单元接收开始打印指令或开始传送指令之后且在所述操作***生成不依赖于所述打印设备的中间打印数据之前,所述设置接收单元通过使用所述识别信息作为密钥来在所述设置条件存储单元中存储所述设置条件,并且
在所述操作***从所述打印处理或所述传送处理中释放所述文档数据提供单元之后,
被所述操作***调用的所述图像处理单元通过使用所述识别信息作为密钥来从所述设置条件存储单元读取所述设置条件。
9.一种***,在该***中第一信息处理装置、第二信息处理装置以及打印设备通过网络连接,所述***包括:
操作接收单元,被配置成接收操作;
设置接收单元,被配置成在所述操作接收单元接收到开始打印指令或开始传送指令之后,显示用于打印或传送的设置条件,并且接收对所述设置条件的改变;
图像处理单元,被配置成从文档数据提供单元获取作为打印目标或传送目标的文档数据,并且基于所述设置条件将所述文档数据转换成打印设备的打印数据;以及
设置条件存储单元,被提供在所述第二信息处理装置中,在所述设置条件存储单元中,经过所述第一信息处理装置和所述第二信息处理装置的操作***通过使用由所述设置接收单元获取的识别信息作为密钥来存储所述设置条件,其中所述识别信息识别打印处理或传送处理并且由所述第二信息处理装置的所述操作***根据开始打印指令或开始传送指令而生成,其中,
所述图像处理单元从所述第二信息处理装置的所述操作***中获取所述识别信息,并且通过使用所述识别信息作为密钥经由至少所述第二信息处理装置的所述操作***从所述设置条件存储单元读取所述设置条件,并且基于所述设置条件将所述文档数据转换成所述打印设备的打印数据。
10.根据权利要求9所述的***,其中,
所述第一信息处理装置包括所述操作接收单元、所述设置接收单元以及所述图像处理单元,且
所述第一信息处理装置将所述打印数据传送至所述第二信息处理装置。
11.根据权利要求9所述的***,其中,
所述第一信息处理装置包括所述操作接收单元和所述设置接收单元,
所述第二信息处理装置包括所述图像处理单元,
所述第一信息处理装置将由所述第一信息处理装置的操作***从所述文档数据转换的不依赖于所述打印设备的中间打印数据,传送至所述第二信息处理装置,以及
所述图像处理单元通过使用所述识别信息作为密钥从所述第二信息处理装置的所述设置条件存储单元读取所述设置条件,并且基于所述设置条件将所述中间打印数据转换成所述打印设备的打印数据。
12.一种非瞬时的计算机可读记录介质,存储使得包括用于接收操作的操作接收单元的信息处理装置执行如下的方法的程序,该方法包括:
在所述操作接收单元接收开始打印指令或开始传送指令之后,显示用于打印或传送的设置条件,并且接收对所述设置条件的改变;
通过设置模块来获取识别信息,其中所述识别信息识别打印处理或传送处理并且由操作***根据开始打印指令或开始传送指令生成;
通过使用所述识别信息作为密钥经由所述操作***在设置条件存储单元中存储所述设置条件;
通过图像处理模块从所述操作***获取所述识别信息;
通过所述图像处理模块,通过使用所述识别信息作为密钥经由所述操作***从所述设置条件存储单元中读取所述设置条件;
基于从所述设置条件存储单元读取的所述设置条件,通过所述图像处理模块将由文档数据提供单元提供的作为打印目标或传送目标的文档数据传换成打印设备的打印数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011226153A JP5857611B2 (ja) | 2011-10-13 | 2011-10-13 | 情報処理装置、システム、プログラム |
JP2011-226153 | 2011-10-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218183A true CN103218183A (zh) | 2013-07-24 |
CN103218183B CN103218183B (zh) | 2015-12-02 |
Family
ID=48085804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210387450.1A Expired - Fee Related CN103218183B (zh) | 2011-10-13 | 2012-10-12 | 信息处理装置及*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US8867077B2 (zh) |
JP (1) | JP5857611B2 (zh) |
CN (1) | CN103218183B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108469956A (zh) * | 2017-02-23 | 2018-08-31 | 京瓷办公信息***株式会社 | 图像形成装置、管理服务器和信息处理方法 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5584556B2 (ja) * | 2010-08-18 | 2014-09-03 | キヤノン株式会社 | 画像読取システム、画像読取装置、それらの制御方法、及びプログラム |
JP5360106B2 (ja) | 2011-03-25 | 2013-12-04 | ブラザー工業株式会社 | 情報処理プログラム、情報処理装置、および情報処理方法 |
JP5919930B2 (ja) * | 2012-03-21 | 2016-05-18 | 株式会社リコー | プログラム、情報処理装置、記憶媒体 |
JP6115340B2 (ja) | 2012-08-29 | 2017-04-19 | 株式会社リコー | 情報処理装置、プリントシステムおよびプログラム |
US20140207973A1 (en) * | 2013-01-18 | 2014-07-24 | Xerox Corporation | Systems and methods for auto-configuring installable device options in a windows print queue |
US9678697B2 (en) | 2013-02-28 | 2017-06-13 | Xerox Corporation | Systems and methods of displaying a printer driver user interface |
JP6089808B2 (ja) * | 2013-03-11 | 2017-03-08 | ブラザー工業株式会社 | 情報処理装置及びネットワークシステム |
JP6083266B2 (ja) | 2013-03-11 | 2017-02-22 | ブラザー工業株式会社 | 情報処理装置及びネットワークシステム |
JP6183025B2 (ja) * | 2013-07-23 | 2017-08-23 | ブラザー工業株式会社 | 情報処理プログラム、情報処理装置、および情報処理装置の制御方法 |
JP6331910B2 (ja) | 2013-09-17 | 2018-05-30 | 株式会社リコー | 情報処理装置、情報処理システム、及びプログラム |
JP6229390B2 (ja) * | 2013-09-17 | 2017-11-15 | 株式会社リコー | 画像処理制御プログラム、情報処理装置及び画像処理システム |
US9235382B2 (en) * | 2013-09-20 | 2016-01-12 | Microsoft Technology Licensing, Llc | Input filters and filter-driven input processing |
US9852482B2 (en) * | 2014-03-05 | 2017-12-26 | International Business Machines Corporation | Utility consumption advisor |
US9948798B2 (en) | 2014-03-06 | 2018-04-17 | Canon Kabushiki Kaisha | Method of managing a facsimile transmission |
JP6447215B2 (ja) | 2014-03-10 | 2019-01-09 | 株式会社リコー | 情報配信システム、情報処理装置、情報配信方法及びプログラム |
CN105335428A (zh) * | 2014-08-08 | 2016-02-17 | 国家电网公司 | 数据转化方法和装置 |
JP2017004064A (ja) * | 2015-06-04 | 2017-01-05 | 株式会社リコー | 情報処理システム、情報処理装置、適用方法及びプログラム |
JP6531581B2 (ja) | 2015-09-10 | 2019-06-19 | 株式会社リコー | 情報配信システム、情報処理装置、情報配信方法及びプログラム |
JP2017102901A (ja) | 2015-11-19 | 2017-06-08 | 株式会社リコー | プログラム、情報処理装置、設定方法および情報処理システム |
JP6597432B2 (ja) | 2016-03-18 | 2019-10-30 | 株式会社リコー | 情報処理装置、情報処理方法およびプログラム |
US10275192B2 (en) | 2016-09-08 | 2019-04-30 | Ricoh Company, Ltd. | Information processing apparatus, image processing system, and printer driver |
US10194038B2 (en) * | 2016-09-15 | 2019-01-29 | Ricoh Company, Ltd. | Information processing apparatus, information processing method, and information processing system |
JP6834402B2 (ja) | 2016-11-24 | 2021-02-24 | 株式会社リコー | 情報処理装置、情報処理システム、情報処理方法、及びプログラム |
US10338857B2 (en) | 2016-11-24 | 2019-07-02 | Ricoh Company, Ltd. | Information processing apparatus, information processing system, and information processing method |
US10191697B2 (en) | 2017-03-17 | 2019-01-29 | Ricoh Company Ltd. | Information processing apparatus, information processing system, and information processing method |
JP7099039B2 (ja) | 2018-05-10 | 2022-07-12 | 富士フイルムビジネスイノベーション株式会社 | 画像形成システム、端末装置及びプログラム |
JP7259326B2 (ja) * | 2018-12-28 | 2023-04-18 | 株式会社リコー | 情報処理装置、プログラム、画像形成システム、及び画像形成方法 |
JP2021193502A (ja) * | 2020-06-08 | 2021-12-23 | キヤノン株式会社 | 情報処理方法、情報処理装置およびプログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770812A (zh) * | 2004-11-05 | 2006-05-10 | 兄弟工业株式会社 | 图像处理***、图像处理设备、服务器和程序 |
CN101320316A (zh) * | 2007-03-30 | 2008-12-10 | 兄弟工业株式会社 | 网络***和网络设备 |
WO2010098476A1 (en) * | 2009-02-25 | 2010-09-02 | Ricoh Company, Ltd. | Image forming apparatus, image forming method and computer-readable information recording medium |
US20110116131A1 (en) * | 2008-08-08 | 2011-05-19 | Canon Kabushiki Kaisha | Information processing apparatus and method, and control program |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7187458B2 (en) * | 2001-12-27 | 2007-03-06 | Kabushiki Kaisha Toshiba | Printer |
JP2004032704A (ja) * | 2002-05-09 | 2004-01-29 | Canon Inc | 画像形成装置、その制御方法、プログラム、記憶媒体、印刷システムに好適な方法および印刷システム |
US20050073708A1 (en) * | 2003-10-01 | 2005-04-07 | Oh Myoung-Jin | Method of reporting print option in printing system |
JP2005182396A (ja) * | 2003-12-18 | 2005-07-07 | Oki Data Corp | 画像形成装置 |
JP4996050B2 (ja) * | 2004-10-29 | 2012-08-08 | キヤノン株式会社 | 印刷装置、及びその制御方法 |
JP4659531B2 (ja) | 2005-06-28 | 2011-03-30 | キヤノン株式会社 | ジョブ状態監視システム、ジョブ状態監視方法、プログラム及び記憶媒体 |
JP2007011700A (ja) * | 2005-06-30 | 2007-01-18 | Brother Ind Ltd | 情報処理装置、通信システム、管理装置、及び、プログラム |
JP2007122473A (ja) | 2005-10-28 | 2007-05-17 | Brother Ind Ltd | 文書管理システム、および文書管理システム用プログラム |
JP5039422B2 (ja) * | 2006-06-19 | 2012-10-03 | キヤノン株式会社 | 印刷装置、印刷装置の制御方法、コンピュータプログラム |
JP4229955B2 (ja) * | 2006-07-06 | 2009-02-25 | シャープ株式会社 | 画像形成装置、画像形成方法、及びプログラム |
JP5132361B2 (ja) * | 2008-02-28 | 2013-01-30 | キヤノン株式会社 | 情報処理装置、情報処理方法、プログラム及び記憶媒体 |
JP5245661B2 (ja) * | 2008-09-09 | 2013-07-24 | 株式会社リコー | 印刷制御装置、プログラム、記録媒体及び印刷制御方法 |
JP5267337B2 (ja) | 2009-06-01 | 2013-08-21 | 株式会社リコー | プログラム、記憶媒体、情報処理装置、プリンタ装置およびシステム |
JP5532770B2 (ja) | 2009-09-08 | 2014-06-25 | 株式会社リコー | 印刷制御プログラム、情報処理装置、および印刷制御プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP5793830B2 (ja) | 2010-05-18 | 2015-10-14 | 株式会社リコー | 情報処理装置、印刷制御プログラム、および記憶媒体 |
JP2012118824A (ja) | 2010-12-01 | 2012-06-21 | Ricoh Co Ltd | 印刷プログラム、情報処理装置および記録媒体 |
US8823979B2 (en) * | 2011-02-23 | 2014-09-02 | Ricoh Company, Ltd | Pseudo jobs in print queues for print job scheduling |
-
2011
- 2011-10-13 JP JP2011226153A patent/JP5857611B2/ja active Active
-
2012
- 2012-10-09 US US13/647,657 patent/US8867077B2/en not_active Expired - Fee Related
- 2012-10-12 CN CN201210387450.1A patent/CN103218183B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770812A (zh) * | 2004-11-05 | 2006-05-10 | 兄弟工业株式会社 | 图像处理***、图像处理设备、服务器和程序 |
CN101320316A (zh) * | 2007-03-30 | 2008-12-10 | 兄弟工业株式会社 | 网络***和网络设备 |
US20110116131A1 (en) * | 2008-08-08 | 2011-05-19 | Canon Kabushiki Kaisha | Information processing apparatus and method, and control program |
WO2010098476A1 (en) * | 2009-02-25 | 2010-09-02 | Ricoh Company, Ltd. | Image forming apparatus, image forming method and computer-readable information recording medium |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108469956A (zh) * | 2017-02-23 | 2018-08-31 | 京瓷办公信息***株式会社 | 图像形成装置、管理服务器和信息处理方法 |
CN108469956B (zh) * | 2017-02-23 | 2022-01-11 | 京瓷办公信息***株式会社 | 图像形成装置、管理服务器和信息处理方法 |
Also Published As
Publication number | Publication date |
---|---|
US8867077B2 (en) | 2014-10-21 |
US20130094056A1 (en) | 2013-04-18 |
CN103218183B (zh) | 2015-12-02 |
JP2013088869A (ja) | 2013-05-13 |
JP5857611B2 (ja) | 2016-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103218183B (zh) | 信息处理装置及*** | |
US9298411B2 (en) | Apparatus and computer-readable recording medium for converting data into printing data based on setting conditions | |
US9442678B2 (en) | Information processing apparatus, information processing system and non-transitory computer-readable information recording medium | |
EP2437157B1 (en) | Printing system, printing method, print server, control method, and program | |
JP5677047B2 (ja) | 印刷システム、情報処理装置、印刷方法、及び、プログラム | |
EP1830250B1 (en) | Non-postscript printer description file generating tool | |
CN103116479A (zh) | 打印***及控制方法 | |
US9160888B2 (en) | Information processing apparatus, user information management control method, and storage medium | |
JP2017102901A (ja) | プログラム、情報処理装置、設定方法および情報処理システム | |
CN102736872A (zh) | 打印***、信息处理装置及控制方法 | |
US20110019226A1 (en) | Server, printer, and computer readable medium | |
US9311036B2 (en) | Data processing system and method of data processing | |
US20100097630A1 (en) | Printer driver with context based restrictions | |
JP6191634B2 (ja) | プリンタドライバプログラム、印刷システム、サーバ、サーバプログラム、クライアント端末、クライアントプログラム | |
CN103324450B (zh) | 信息处理设备和信息处理方法 | |
JP2014041599A (ja) | プログラム、情報処理装置、システム | |
US9081530B2 (en) | Control system for forming and outputting image, control apparatus for forming and outputting image, and recording medium storing a control program for forming and outputting image | |
KR20080052007A (ko) | 복수의 출력을 위한 출력 시스템 및 방법 | |
JP4143638B2 (ja) | 印刷システム、情報処理装置、およびその制御方法、プログラム | |
US8860961B2 (en) | Information processing apparatus, information processing system and computer readable medium | |
JP4366042B2 (ja) | ジョブ管理装置、ジョブ管理方法、制御プログラム | |
US20230011917A1 (en) | Information processing apparatus, information processing system, information processing method, and non-transitory computer readable medium | |
JP2007087399A (ja) | 画像形成装置の表示調整方法 | |
CN105426135B (zh) | 信息处理装置和信息处理*** | |
JP2014154072A (ja) | 仮想プリンタドライバ、情報処理装置、及び情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151202 Termination date: 20211012 |