CN102520895B - 使用事件为中心的登记模型的打印机驱动器与应用的分离 - Google Patents
使用事件为中心的登记模型的打印机驱动器与应用的分离 Download PDFInfo
- Publication number
- CN102520895B CN102520895B CN201110414199.9A CN201110414199A CN102520895B CN 102520895 B CN102520895 B CN 102520895B CN 201110414199 A CN201110414199 A CN 201110414199A CN 102520895 B CN102520895 B CN 102520895B
- Authority
- CN
- China
- Prior art keywords
- printer
- information
- event
- assembly
- application
- 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.)
- Active
Links
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/1207—Improving or facilitating administration, e.g. print management resulting in the user being informed about print result after a job submission
-
- 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/1224—Client or server resources management
-
- 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/1259—Print job monitoring, e.g. job status
-
- 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
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)
- User Interface Of Digital Computer (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
本发明的一些实施例提供了被配置成在打印操作期间操控信息对用户的呈现的打印机用户接口(UI)组件。打印机UI组件可以使由打印机驱动器提供的再现和配置功能性与信息对最终用户的呈现分离,由此减小由于打印机驱动器出错而造成应用可能崩溃或挂起的风险。在一些实施例中,建立信息应当依据其被呈现给用户的事件的登记处,并且打印机UI组件可以对于这些事件中的某些或所有进行登记,使得当指定的事件发生时,打印机UI组件可以被调用来使得信息被呈现给用户。
Description
技术领域
本发明总的涉及设备驱动器,更具体地,涉及打印机驱动器。
背景技术
设备驱动器是常常使得一个或多个较高级别软件应用能够与硬件设备交互的软件代码体。通常,设备驱动器接受来自由用户与其交互的较高级别的应用的通用命令,并把命令翻译成被驱动的打印机设备被配置来处理的较低级别命令。通过作为翻译器,设备驱动器可以简化较高级别应用的编程,因为那些应用不必被编程来发出由设备处理的较低级别语言的命令。设备驱动器还可以提供标准化的接口,较高级别的应用通过该接口可以调用设备的功能。
打印机驱动器是使得较高级别应用能够调用由打印机设备提供的功能的软件代码体。典型地,打印机驱动器提供的功能性大致可归类为再现、配置和用户体验功能性。概略地,由打印机驱动器提供的再现功能性把当打印工作被发起时生成的信息翻译成遵照该打印机设备被配置来处理的页面描述语言(PDL)的命令和数据。配置功能性使得较高级别的程序能够配置和查看打印机设备的配置方面,诸如,打印机设备支持的纸张尺寸、是否支持彩色打印等等。用户体验功能性管理打印操作期间由打印机设备对用户的信息呈现,诸如,让用户知道打印作业已开始或结束、墨水供应量低等等。
发明内容
申请人已经意识到传统的打印机驱动器的几个问题。例如,打印机驱动器常常在打印操作期间试图把信息显示给用户(例如,经由状态监视器,诸如在显示器的右下角,指示墨水剩余量、打印作业的开始或结束、或允许用户输入PIN号来开始打印的对话框等等)的时候出错。在这方面,在传统的系统中,包括打印机驱动器的代码被装载到发起打印的应用的进程,这样,应用实际上将打印机驱动器作为它的进程的一部分执行。打印机驱动器代码通常由打印机制造商以二进制码来编程,以使得应用和底层的操作系统具有有限的权限进入打印机驱动器在任何时候可能正试图执行的操作。因为打印机驱动器代码在应用的进程内被执行,所以打印机驱动器的任何出错(例如,因为对当前离线的网络资源的调用没有被应答,由于“for”循环未曾终结等等而失败的向用户显示信息的尝试)均被通知到应用,且可以使得它崩溃或“挂起”。因为这一点,打印机驱动器是应用出错的常见原因。
传统的打印机驱动器的另一个问题是,它们包括在执行以前被编译的代码。结果,每个打印机驱动器对于使用特别的操作系统和处理器结构体系的系统是特定的(即,仅在该系统中可使用)。因此,由用户团体的第一部分使用的打印机驱动器可能不能被使用不同操作系统和/或处理器结构体系的该用户团体的第二部分使用。结果,在市场上不同打印机驱动器的数量不必要地多。
本发明的一些实施例通过提供被配置成在打印操作期间操控信息对用户的呈现的“打印机用户接口(UI)组件”,而解决这些和/或其它缺点。通过使打印机驱动器的核心再现和配置功能性与呈现信息给最终用户的那个分离(decouple),以及允许打印机UI组件操控信息的这种呈现,本发明的实施例可以减小由于打印机驱动器出错而造成应用可能崩溃或挂起的风险。在一些实施例中,建立信息应当根据其被呈现给用户的事件的登记处,以及可以对于这些事件中的某些或所有事件来登记打印机UI组件,使得当指定的事件发生时,打印机UI组件可以被调用且把信息呈现给用户。打印机UI组件可以把用户提供的任何输入转送到适当的组件以进行附加处理,因此其充当交叉进程(cross-process)的接口。
在一些实施例中,打印机UI组件可包括独立的应用。然而,不是本发明的所有实施例都被限于这样的实现方案。例如,打印机UI组件可包括一个或多个可执行文件、动态链接库,或打印机UI组件可以通过使用任何其它适当的一个或多个组件而被实现。在一些实施例,包括打印机UI组件的代码体不必在执行之前被编译。例如,打印机UI组件可以通过使用一个或多个脚本语言而被编程。通过去除对于编译包括打印机UI组件的代码的需要,打印机UI组件可以在各种各样的处理器结构体系中被使用,并在多种操作系统的任何一种下执行。当然,本发明的实施例不限于以这样的方式实现打印机UI组件,因为可以利用任何适当的实现方式。
以上是本发明的非限制性概要,本发明是由所附权利要求规定的。
附图说明
附图不打算按比例画出。在图中,各个图上所说明的每个相同的或几乎相同的组件用同样的数字来代表。为了清晰起见,可能不是每个组件在每个图上都加标签。在图上,
图1是描绘按照本发明的一些实施例的、用于使得最终用户能够改变打印设置的示例性组件和技术的框图;
图2是描绘按照本发明的一些实施例的、可被利用来使得应用能够发起打印的样本组件和技术的框图;
图3是描绘按照本发明的一些实施例的、使得应用能够完成打印作业的示例性组件和技术的框图;
图4是描绘按照本发明的一些实施例的、在事件发生后通过其可以调用组件来使得信息被显示给用户的过程的例子的流程图;
图5是描绘可被利用来实现本发明的一些实施例的示例性计算机的框图;以及
图6是描绘在其上可以记录体现本发明的多方面的指令的示例性存储器的框图。
具体实施方式
本发明的一些实施例提供在打印操作期间将信息呈现给用户的打印机UI组件。例如,可以建立一个打印相关的事件的登记处,信息应当根据所述事件被呈现给用户,以及打印机UI组件可以对于这些事件中的某些或所有事件进行登记。当发生指定的事件时,打印机UI组件可以被打印机驱动器、操作系统(例如,打印子系统)、或一个或多个其它组件调用。当被调用时,打印机UI组件可以呈现信息给用户,并把由用户提供的任何输入转送到适当的组件以进行附加处理。照此,打印机UI组件可以提供交叉进程接口,使得能转送涉及例如打印机设备状态和管理的信息。因为打印机UI组件操控打印相关的信息对用户的呈现,所以可以使打印机驱动器的核心再现和配置功能性与涉及到信息呈现的功能性分离,由此减小由于打印机驱动器出错而造成应用将崩溃或挂起的风险。
图1-3描绘了其间在打印机UI组件可被调用来操控打印相关的信息对用户的呈现的示例性情景。更具体地,图1-3的每个图均描绘了示例性方式,包括应用、操作系统的打印子系统、打印机UI组件和打印机驱动器的一组示例性组件以所述方式来互操作以及转送信息,以便在打印相关的操作期间,完成信息对用户的呈现。
图1描绘包括用户改变打印设置的示例性情景,诸如通过发起打印作业(例如,在某些操作系统下,通过点击“文件”,接着“打印……”,或使用发起打印作业的任何其它方式)且然后指示改变打印设置的愿望(例如,通过点击由打印对话呈现的“属性”,或使用发起对打印设置的改变的任何其它方式)来进行。
图1描绘打印机设备135,它可以是具有能力来打印信息(例如,预定义的页面布局中的文档)的许多类型的设备中的任何设备。打印机设备135可以是物理地体现的、虚拟的、或是二者的组合。还显示了应用105,它可包括具有能力来发起信息的打印的许多类型应用中的任何应用,诸如字处理、电子表格、呈现、照片管理或其它类型的应用。虽然在图1上是与应用105分开地被描绘的,但标准UI110可以形成应用105的一部分,和/或可以包括执行涉及打印操作的信息的显示的一个或多个独立的组件。作为例子,标准UI110可包括当用户指示来自应用105内的发起打印的愿望时呈现打印对话框给用户的组件。
打印机驱动器120包括使得应用105能够调用打印机设备135的功能的代码。打印机驱动器120可以包括任何适当的指令主体,它使得应用和/或操作系统能够发出指令和信息到打印设备,诸如用于按照预定义的页面布局进行打印。打印子系统115形成专用来管理打印操作和在应用105与打印机驱动器120之间的信息转送的操作系统的一部分。
在图1的例子中,打印机UI组件125是当发生指定的事件时可被调用来呈现信息给用户的独立的组件。然而,应当意识到,打印机UI组件125不必包括一个或多个独立的组件,并且它可以以任何适当的方式被实现。例如,打印机UI组件125可以替换地形成所描绘的一个或多个其它组件的一部分,诸如打印子系统115和/或应用105。另外,应当意识到,术语“打印机UI组件”的使用并不将本发明的实施例限制于利用单个组件来执行这里公开的功能。打印机UI组件125可包括任何适当数目的单元,因为本发明的实施例在这方面不被限制。
在图1所示的示例性情景的开始,应用105使得标准UI110被打开,如在150所指示的。这例如可以是用户在应用105内点击“文件”,接着“打印……”,或提供指示打印信息的愿望的其它输入的结果,这会使得打印对话框被打开。然而,本发明的实施例不限于接收指示打印愿望的用户输入或作为那个指示的结果而与用户交互的任何具体方式。任何的一个或多个用户动作和/或应用处理可以使得标准UI110被打开。
标准UI110然后发出指令到打印子系统115以打开定制的UI,如在155所指示的。作为例子,这可以当用户在包括标准UI110的对话框被打开时点击“属性”时发生。当然,可以利用指示更改打印设置的愿望的任何输入,因为本发明的实施例在这方面不被限制。在一些实施例中,当接收到这样的指示时,进行打印子系统115的调入。当然,打印子系统115可以以任何适当的方式被调用,这可能牵涉到或不牵涉到所进行的调入。另外,打印子系统115不必如在155处所指示的那样被调用。例如,在本发明的一些实施例中,标准UI110可以与登记数据库130(例如直接地)通信,以便确定定制UI的打开是否是组件已对于其进行登记的事件。本发明的实施例不限于任何特定的实现方式。
在图1所示的例子中,打印子系统115然后对应用/事件登记数据库130发出查询,以便确定定制UI的打开是否是组件(例如,打印机UI组件125和/或另一个组件)已对于其进行登记的事件,如在160指示的。在一些实施例中,应用/事件登记数据库130可包括一个或多个被登记来操控某些指定的事件的组件的指示。例如,打印机驱动器的供应者(例如,制造由打印机驱动器驱动的打印机设备的独立的硬件售主,和/或一个或多个其它实体)可以指定信息应当依据其被呈现给用户的某些事件,诸如打印作业的开始或完成、某些错误或设备状态条件等等。多种类型事件的任何事件可以被指示,并且多种类型组件的任何组件可以对于每个事件进行登记,因为本发明的实施例在这方面不被限制。而且,应当意识到,可能包括或不包括数据库的任何适当的储藏库(repository)可包括一个或多个组件对于指定的事件进行登记的指示。本发明的实施例不限于任何特定的实现方式。
在图1所示的示例性情景下,应用/事件登记数据库130指示:打印机UI组件125已对于定制UI的打开进行登记,如在165所指示的。打印子系统115于是调用打印机UI组件125,如在170所指示的,以及提供指令给与该事件相关的打印机UI组件125。例如,打印子系统115可以提供要被呈现给用户的可选项的指示,以及对于这些可选项的可允许的选择。虽然图1上未示出,但是打印机UI组件125把这些可选项呈现给用户,并且接收关于所述可选项的选择。根据用户的选择,打印机UI组件125设置上下文(例如,通过更新被提供来转送上下文的对象),和提供信息给打印子系统115,如在175所指示的。例如,如果用户作出改变用于打印作业的纸张尺寸的选择,或指示应当执行无边界的打印,则这个信息可以在175被转送到打印子系统115。打印子系统115然后提供上下文的指示(例如,指示上下文的对象)到标准UI110,如在180所指示的。作为改变的结果,标准UI110例如可以更改呈现打印相关的信息的方式(例如,在打印对话框中)。
标准UI110然后提供改变的上下文的指示到应用105,如在185所指示的。应用105例如可以使用这个信息来确定:如果打印按照用户的选择开始,所述改变是否影响信息被提供给打印机驱动器120的方式。例如,用户对新的纸张尺寸或无边界打印的选择可以使得:如果打印开始,在提供信息给打印机驱动器120之前,该应用改变指定图像将被呈现到的区域的信息。图1的示例性情景然后完成。
图2描绘其中用户接着指令应用105开始打印的示例性情景。在本例中,应用105发起打印作业,如在205所指示的。当然,应当意识到,不是所有的实施例都牵涉到发起打印作业的应用105,因为任何适当的(多个)组件都可以发起打印作业,诸如UI110和/或打印子系统115。在图2所示的例子中,应用105因而通过引发事件而发起打印作业,这是籍以发出请求来执行对于特定事件的发生而定义的代码的技术,尽管可以替换地利用任何适当的(多项)技术。
如在210所指示的,打印机驱动器120然后向打印子系统115指示所引发的事件,打印子系统115依据此查询事件/应用登记数据库130,以确定组件是否已对于所述事件进行登记,如在215所指示的。在所描绘的示例性情景中,打印子系统115确定打印机UI组件125已对于所述事件进行登记,如在220所指示的,则调用打印机UI组件125,如在225所指示的。虽然图2上未示出,但是打印机UI组件125然后可以把各种信息和/或涉及打印作业的可选项呈现给用户。例如,打印机UI组件125可以呈现对话框,其使得用户能够例如输入用于打印作业的PIN,和/或提供其它信息。打印机UI组件125然后通过设置用于打印作业的上下文和提供信息到打印子系统115而提供被供应给打印子系统115的任何信息,如在230所指示的。打印子系统115然后把信息传递到打印机驱动器120,如在235所指示的。虽然在图2上未描绘,但打印机驱动器120可以接着发出指令到打印机设备135以通过使用由应用105提供的数据和/或命令而开始打印。图2所示的示例性情景于是完成。
应当意识到,图2上所描绘的示例性情景仅仅是说明性的,并且可能有许多变例。例如,不必执行在230和235指示的通信,因为某些实施例可以提供来让打印机UI组件125和/或打印机驱动器120发出指令到打印机设备135,而无需牵涉到打印子系统115。可以执行任何适当的处理来发出指令到打印机设备,因为本发明的实施例在这方面不被限制。
图3描绘用户籍以被告知打印作业提交的完成的示例性情景。正如在图2所示的示例性情景下,应用105向打印机驱动器120引发指示打印作业提交完成的事件,如在305所指示的,使得打印机驱动器120向打印子系统115引发所述事件,如在310所指示的。打印子系统115然后通过查询应用/事件登记数据库130来确定是否有任何组件已对于所引发的事件进行登记,如在315所指示的。在所显示的示例性情景中,打印子系统115确定打印机UI组件125已对于该事件进行登记,如在320所指示的,则调用打印机UI组件125,如在325所指示的。虽然在图3上未示出,但是调用打印机UI组件125可以使得信息被呈现给最终用户,诸如,打印作业已被提交给打印机设备用于打印的通知、墨水或纸张供应量低的指示(如果可应用的话)等等。可以呈现多种类型信息的任何信息。如果信息以允许用户供应输入的方式被呈现,那么其指示作为改变的上下文被提供给打印机子系统115,如在330所指示的,然后打印机子系统把信息传递到打印机驱动器120,如在335所指示的。图3的示例性情景然后完成。
在图1-3的每个图上还显示:打印子系统115可以周期地接收来自打印机设备135的信息,诸如,指示打印机设备135的当前状态的信息,如在140所指示的。例如,打印子系统115可以周期地轮询打印机设备135,以便确定关于它的状态的信息,诸如它是否被堵塞、它的墨水和/或纸供应量是否低等等。在一些实施例中,如果发生了组件已对于其登记的事件(例如,如通过查询应用/事件登记数据库130而确定的),则打印子系统115可以调用打印机UI组件125来呈现与该事件相关的信息给用户。例如,各种指示可被呈现来告知用户:如何解决所述事件。
应当意识到,以上参照图1-3描述的情景仅仅是说明性例子,并且打印机UI组件可以在多种其它情景的任何情景下被调用来呈现信息给用户。而且,应当意识到,图1-3所示的组件仅仅是例子,因为经由软件、硬件、或它们的组合实现的、多种类型组件的任何组件可以替换地被利用来处理和转送打印相关的信息。本发明的实施例不限于任何特定的实现。
图4描绘用于呈现关于打印相关的操作的信息给用户的示例性过程400。在过程400的开始,在动作405发生事件,诸如打印作业的发起、打印对话的打开、打印作业的完成、等等。过程400然后进行到动作410,在其中作出关于组件是否已对于该事件进行登记的确定。例如,数据库可以存储关于组件已对于其进行登记的事件的指示,并且可以查询该数据库以确定组件是否已对于事件进行登记。如果组件已进行登记,则过程400进行到动作415,其中登记的组件被调用来把与事件相关的信息呈现给用户。如果在动作410确定没有组件对于该事件进行登记,或在动作415完成后,过程400完成。
用于实践本发明的特征的系统和方法的各种方面可以在诸如图5所示的示范性计算机系统500那样的一个或多个计算机系统上被实现。计算机系统500包括(多个)输入设备502、(多个)输出设备501、处理器503、存储器系统504和存储装置506,所有的这些被直接地或间接地经由互连机制505进行耦合,互连机制505可包括一个或多个总线、交换机、网络和/或任何其它的适当的互连。(多个)输入设备502接收来自用户或机器(例如,操作人员)的输入,(多个)输出设备501显示或传送信息到用户或机器(例如,液晶显示器)。(多个)输入和输出设备尤其可被使用来呈现用户接口。可被使用来提供用户接口的输出设备的例子包括用于输出的视觉呈现的打印机或显示屏,和用于输出的听觉呈现的扬声器或其它声音生成设备。可被使用于用户接口的输入设备的例子包括键盘和指示设备,诸如鼠标、触摸板和数字化图形输入板。作为另一个例子,计算机可以通过语音识别或以其它可听的格式接收输入信息。
处理器503典型地执行被称为操作系统的计算机程序(例如,微软Windows族操作系统或任何其它适用的操作系统),它控制其它计算机程序的执行,并且提供调度、输入/输出和其它设备控制、记帐、编译、存储装置指派、数据管理、存储器管理、通信和数据流控制。总起来说,处理器和操作系统规定了为其编写应用程序和其它计算机程序语言的计算机平台。
处理器503也可以执行一个或多个计算机程序以实现各种功能。这些计算机程序可以以任何类型的计算机程序语言来编写,包括过程编程语言、面向对象的编程语言、宏语言、或它们的组合。这些计算机程序可被存储在存储系统506中。存储系统506可以把信息保持在易失性或非易失性介质上,并且它可以是固定的或可移除的。存储系统506被更详细地显示在图6上。
存储系统506可包括有形的计算机可读和可写的非易失性记录介质601,在其上存储规定计算机程序或要被该程序使用的信息的信号。记录介质例如可以是盘存储器、闪存和/或可使用来记录和存储信息的任何其它制造品。典型地,在操作中,处理器503使得数据从非易失性记录介质601读出到易失性存储器602(例如,随机存取存储器,或RAM),该易失性存储器602与介质601相比,允许由处理器503更快速地访问信息。存储器602可被安置在存储系统506或存储器系统504中,如图5所示。处理器503通常处理在集成电路存储器504、602内的数据,然后,在处理完成后将数据拷贝到介质601。已知有各种用于管理在介质601与集成电路存储器504、602之间的数据移动的机制,而本发明不限于任何机制,无论是现在已知的还是以后开发的。本发明也不限于任何特定的存储器504或存储系统506。
在这样描绘了本发明的至少一个实施例的几个方面以后,应当意识到,各种更改、修改和改进对于本领域技术人员而言是容易想到的。这样的更改、修改和改进被规定为本公开内容的一部分,并且被规定为在本发明的精神和范围内。因此,以上的说明和附图仅仅是作为例子。
本发明的上述的实施例可以以多种方式的任何方式被实现。例如,实施例可以通过使用硬件、软件、或二者的组合被实现。当以软件被实现时,软件代码可以在任何适当的处理器或处理器集合上被执行,而不管是在单个计算机上提供的还是被分布在多个计算机和/或系统之间的。这样的处理器可被实现为集成电路,在一个集成电路组件中有一个或多个处理器,虽然处理器可以使用具有任何适当的格式的电路而被实现。
应当意识到,执行这里所描述的功能的任何组件或组件集合通常可被看作为控制上述功能的一个或多个控制器。所述一个或多个控制器可以以许多方式被实现,诸如用专用硬件,或通过利用使用微代码或软件而被编程的一个或多个处理器来执行以上叙述的功能。在控制器存储或提供用于系统操作的数据的场合下,这样的数据可被存储在中央储藏库中、在多个储藏库中、或在它们的组合中。
还应当意识到,计算机可以以多种形式的任何形式被具体化,诸如机架安装式计算机、台式计算机、膝上型计算机、或平板计算机。另外,计算机可以被具体化为通常不被看作为计算机、但具有适当的处理能力的设备,这些设备包括个人数字助理(PDA)、智能电话、或任何其它适当的便携式或固定式电子设备。
另外,计算机可以具有一个或多个输入和输出设备。这些设备尤其可被使用来呈现用户接口。可被使用来提供用户接口的输出设备的例子包括用于输出的视觉呈现的打印机或显示屏,和用于输出的听觉呈现的扬声器或其它声音生成设备。可被使用于用户接口的输入设备的例子包括键盘和指示设备,诸如鼠标、触摸板和数字化图形输入板。作为另一个例子,计算机可以通过语音识别或以其它可听的格式接收输入信息。
这样的计算机可以通过任何适当形式的一个或多个网络被互连,这些网络包括局域网或广域网,诸如企业网或互联网。这样的网络可以是基于任何适当的技术,并可以按照任何适当的协议操作且可以包括无线网、有线网、或光纤网络。
另外,这里概述的各种方法或过程可被编码成在利用多种操作系统或平台的任何一种的一个或多个处理器上可执行的软件。另外,这样的软件可以通过使用多种适用的编程语言和/或编程或脚本工具的任何一种被编写,并且还可被编译成在框架或虚拟环境下执行的可执行机器语言代码或中间代码。
在这方面,本发明可以被体现为用一个或多个程序被编码的计算机可读介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、压密盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、在现场可编程门阵列或其它半导体器件中的电路配置、或其它非瞬时的有形的计算机可读存储介质),所述程序当在一个或多个计算机或其它处理器上被执行时,执行实现以上讨论的本发明的各种实施例的方法。计算机可读介质或媒体可以是可传送的,使得被存储在其上的程序可被装载到一个或多个不同的计算机或其它处理器,来实现如以上讨论的本发明的各种方面。当在这里使用时,术语“非瞬时的计算机可读存储介质”仅仅包括可被看作为制品(即,制造品)或机器的计算机可读介质。
术语“程序”或“软件”在这里以通用的意义被使用来指任何类型的计算机代码或计算机可执行指令集,其可被利用来对计算机或其它处理器编程,以便实现如以上讨论的本发明的各种方面。另外,应当意识到,按照本实施例的一个方面,在被执行时完成本发明的方法的一个或多个计算机程序不必驻留在单个计算机或处理器上,而是可以以模块方式分布在许多不同的计算机或处理器之间,以便实现本发明的各种方面。
计算机可执行指令可以以诸如程序模块那样的许多形式,被一个或多个计算机或其它设备执行。通常,程序模块包括例行程序、程序、对象、组件、数据结构等等,其执行特定的任务或实现特定的抽象数据类型。典型地,程序模块的功能性可以按需要在各种实施例中被组合或分布。
另外,数据结构可以以任何适当的形式被存储在计算机可读媒体中。为了说明的简明起见,数据结构可被显示为具有通过在数据结构中的位置而相关的字段。这样的关系同样可以通过给字段的存储指派以计算机可读介质中的位置来传达字段之间的关系而达到,然而,任何适当的机制可被使用来建立数据结构的字段中的信息之间的关系,包括通过使用指针、标记、或建立在数据元素之间的关系的其它机制。
本发明的各种方面可以单独地、组合地、或以在以上描述的实施例中没有具体地讨论的各种各样的安排来被使用,所以,在其应用上不限于在以上的说明中所阐述的和在附图上所图示的组件的细节和安排。例如,在一个实施例中描述的方面可以以任何方式与在其它实施例中描述的方面相组合。
另外,本发明可被体现为方法,其示例已被提供。作为方法的一部分被执行的动作可以以任何适当的方式被排序。因此,实施例可被构建成其中动作以不同于所举例说明的次序的次序被执行,其可包括同时执行某些动作,虽然在这里描述的说明性实施例中被显示为顺序的动作。
在权利要求中用来修改权利要求元素的诸如“第一”、“第二”、“第三”等等那样的次序性术语的使用本身并不暗示一个权利要求元素超过另一个元素的任何优先权、优先顺序或次序,或方法的动作被执行的时间上的次序,而是仅仅被用作为用于将具有某个名字的一个权利要求元素与(若非次序术语的使用)具有相同名字的另一个元素区分开的标签,以便区分权利要求元素。
另外,这里使用的措辞或术语是为了用于说明,而不应当看作为限制。这里“包括”、“包含”或“具有”、“含有”、“牵涉到”及其变化的使用打算包括此后列出的项目及其等同物,以及附加的项目。
Claims (10)
1.一种在包括操作系统(115)、在操作系统下执行的应用(105)、与操作系统和应用通信的打印机驱动器(120)和由打印机驱动器驱动的打印机设备(135)的系统中使用的方法,该方法包括:
响应于打印机驱动器在打印操作期间试图把信息显示给该应用的用户的事件的发生,确定要调用特定组件以在打印操作期间操控信息对用户的呈现,其中该特定组件与操作系统分开、与应用分开和与打印机驱动器分开;以及
使用该特定组件来使得涉及到由打印机设备进行的打印的信息被显示给用户。
2.权利要求1的方法,其中所述特定组件包括使用脚本语言编写的代码体,使得该代码体不必在执行之前被编译。
3.权利要求1的方法,其中该信息与该事件相关,该系统还包括存储对于事件进行登记的组件的指示的储藏库,以及确定要调用的特定组件包括:
查询该储藏库,以便确定所述特定组件对于所述事件是否被登记。
4.权利要求3的方法,其中所述特定组件接收来自操作系统、应用和打印机驱动器中的一个的、与该事件相关的第一信息,并将与该事件相关的第二信息传递到操作系统、应用和打印机驱动器中的另一个。
5.一种在包括操作系统(115)、在操作系统下执行的应用(105)、与操作系统和应用通信的打印机驱动器(120)和由打印机驱动器驱动的打印机设备(135)的系统中使用的设备,包括:
用于在发生打印机驱动器在打印操作期间试图把信息显示给该应用的用户的第一事件后,查询存储对于事件进行登记的组件的指示的储藏库(130),以便识别(410)对于该第一事件进行登记、要被调用以在打印操作期间操控信息对用户的呈现的第一组件的装置;以及
用于使用(415)该第一组件来使得信息被显示给用户的装置,所述信息涉及到由打印机设备进行的打印,该第一组件是与操作系统、应用和打印机驱动器分开的。
6.权利要求5的设备,其中第一事件是由操作系统、应用和打印机驱动器之一所引发的事件。
7.权利要求5的设备,其中第二信息包括用于该第一事件的上下文。
8.权利要求5的设备,其中所述信息涉及打印机设备执行的打印或打印机设备的状态。
9.一种在包括操作系统(115)、在操作系统下执行的应用(105)、与操作系统和应用通信的打印机驱动器(120)和由打印机驱动器驱动的打印机设备(135)的系统中使用的系统,包括:
储藏库(130),存储对于事件进行登记的组件的指示;以及
至少一个处理器(503),被编程来:
在发生打印机驱动器在打印操作期间试图把信息显示给发起打印的应用的用户的第一事件后,查询该储藏库,以便识别(410)对于该第一事件进行登记、要被调用以在打印操作期间操控信息对用户的呈现的第一组件,该第一组件不形成操作系统、该应用、或该打印机驱动器的一部分;
使用(415)该第一组件来使得信息被显示给用户,该信息涉及到由打印机设备进行的打印。
10.权利要求9的系统,其中被使得显示的信息涉及由打印机设备执行的打印或打印机设备的状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/966841 | 2010-12-13 | ||
US12/966,841 US9182930B2 (en) | 2010-12-13 | 2010-12-13 | Printer driver and application decoupling using event centric registration model |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102520895A CN102520895A (zh) | 2012-06-27 |
CN102520895B true CN102520895B (zh) | 2015-12-09 |
Family
ID=46199110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110414199.9A Active CN102520895B (zh) | 2010-12-13 | 2011-12-13 | 使用事件为中心的登记模型的打印机驱动器与应用的分离 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9182930B2 (zh) |
CN (1) | CN102520895B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8904048B2 (en) | 2011-09-08 | 2014-12-02 | Microsoft Corporation | Bidi extension for connected devices |
JP6021329B2 (ja) * | 2011-12-26 | 2016-11-09 | キヤノン株式会社 | 配信装置、制御方法およびコンピュータプログラム |
JP7208026B2 (ja) * | 2019-01-17 | 2023-01-18 | キヤノン株式会社 | 画像形成装置及びその制御方法、並びにプログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101657790A (zh) * | 2007-05-01 | 2010-02-24 | 佳能株式会社 | 打印控制系统、打印控制系统的控制方法和信息处理设备的控制程序 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604843A (en) | 1992-12-23 | 1997-02-18 | Microsoft Corporation | Method and system for interfacing with a computer output device |
US6825941B1 (en) | 1998-09-21 | 2004-11-30 | Microsoft Corporation | Modular and extensible printer device driver and text based method for characterizing printer devices for use therewith |
JP3957998B2 (ja) * | 2000-08-08 | 2007-08-15 | キヤノン株式会社 | 印刷システム、画像処理装置及び情報処理装置 |
US20020138564A1 (en) * | 2001-03-21 | 2002-09-26 | Treptow Jay A. | Universal printing and document imaging system and method |
US7689673B2 (en) | 2002-04-23 | 2010-03-30 | Canon Kabushiki Kaisha | Remote creation of printer instances on a workstation |
US7284246B2 (en) * | 2002-04-23 | 2007-10-16 | Canon Kabushiki Kaisha | Extensible device driver |
US7522299B2 (en) | 2003-06-30 | 2009-04-21 | Microsoft Corporation | System and method for automatic configuration |
US20050046886A1 (en) * | 2003-08-28 | 2005-03-03 | Sharp Laboratories Of America, Inc. | Direct printing component architecture for installed printers |
US20060017948A1 (en) | 2004-07-22 | 2006-01-26 | Sharp Laboratories Of America, Inc. | Open source printer driver |
JP2006079138A (ja) | 2004-09-07 | 2006-03-23 | Ricoh Co Ltd | ステータス取得方法、プリンタドライバ及び情報処理装置 |
US7493327B1 (en) | 2004-09-23 | 2009-02-17 | Microsoft Corporation | Schema-facilitated device capability discovery |
US20060106775A1 (en) | 2004-11-18 | 2006-05-18 | Microsoft Corporation | Multilevel device capabilities hierarchy |
US20060146353A1 (en) | 2004-12-30 | 2006-07-06 | Microsoft Corporation | Strategies for rendering job information using a multi-personality driver device |
US8572672B2 (en) | 2005-07-15 | 2013-10-29 | Microsoft Corporation | Management of document content processing using bi-directional communication |
US8014025B2 (en) * | 2005-12-05 | 2011-09-06 | Lexmark International, Inc. | System and method for outputting a job |
JP5409624B2 (ja) | 2008-06-20 | 2014-02-05 | キヤノン株式会社 | プログラム、情報処理方法、および情報処理装置 |
US8314950B2 (en) | 2009-01-26 | 2012-11-20 | Ricoh Company, Ltd. | Approach for using settings mismatch tolerance levels to handle mismatches between print job settings and printing device settings |
-
2010
- 2010-12-13 US US12/966,841 patent/US9182930B2/en active Active
-
2011
- 2011-12-13 CN CN201110414199.9A patent/CN102520895B/zh active Active
-
2015
- 2015-10-30 US US14/927,472 patent/US20160048357A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101657790A (zh) * | 2007-05-01 | 2010-02-24 | 佳能株式会社 | 打印控制系统、打印控制系统的控制方法和信息处理设备的控制程序 |
Also Published As
Publication number | Publication date |
---|---|
US20120147415A1 (en) | 2012-06-14 |
CN102520895A (zh) | 2012-06-27 |
US20160048357A1 (en) | 2016-02-18 |
US9182930B2 (en) | 2015-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391114B (zh) | 页面可视化渲染方法及装置 | |
CN109582301B (zh) | 基于任务调度系统的业务处理方法、装置、设备及介质 | |
RU2639667C2 (ru) | Контекстное приглашение в пробной версии приложения | |
US8891111B2 (en) | Adaptable printer driver | |
CN103488471A (zh) | 更新硬件库以供具有fpga协处理器的计算机系统上的应用使用 | |
CN113170002B (zh) | 用于为联络中心应用提供上下文协助的系统和方法 | |
CN101968735B (zh) | 信息处理设备及其控制方法 | |
CN102193817A (zh) | 简化物理和虚拟部署的管理 | |
CN102207835A (zh) | 终端设备 | |
WO2023179725A1 (zh) | 应用集成方法及装置 | |
CN114201197A (zh) | 固件升级方法、装置、电子设备及可读存储介质 | |
CN102520895B (zh) | 使用事件为中心的登记模型的打印机驱动器与应用的分离 | |
JP2019159816A (ja) | 情報処理装置、電子機器及び情報処理システム | |
CN113094048A (zh) | 数据显示规则确定方法、显示方法、装置、设备及介质 | |
CN105229604A (zh) | 信息处理设备、信息处理方法、以及程序 | |
CN104424006A (zh) | 装置及控制方法 | |
JP3733290B2 (ja) | 印刷制御装置および印刷制御方法および記憶媒体 | |
US20140092435A1 (en) | Applying individual preferences to printed documents | |
US20210110005A1 (en) | License management apparatus, license management method, and recording medium storing license management program | |
KR20070061098A (ko) | 임베디드 리눅스 커널 및 응용 프로그램의 통합 설정을위한 웹 기반의 개발환경 제공 시스템 및 방법 | |
CN114493493A (zh) | 决策引擎及决策引擎实现方法 | |
WO2013057607A1 (en) | Computer program interface | |
US20230376280A1 (en) | Methods, systems and computer program products for optimizing computer programming for workflow development | |
CN102736893B (zh) | 多层打印机驱动程序模型 | |
CN114201240B (zh) | 配置helm chart的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150604 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20150604 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: Microsoft Corp. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |