打印机驱动器、信息处理装置以及计算机可读记录介质转让专利

申请号 : CN201010511654.2

文献号 : CN102023832B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 山田哲

申请人 : 株式会社理光

摘要 :

本发明涉及打印机驱动器、信息处理装置以及计算机可读记录介质。打印机驱动器包括:分配单元,基于为每个设置值指定存储位置的存储位置信息来分配设置值;压缩单元,将如上分配的每个设置值转换为具有标识每个存储位置的格式,并且从中产生压缩数据;存储单元,在由存储位置信息指定的存储位置中存储由压缩单元压缩了的每条压缩数据;第一解压缩单元和第二解压缩单元,对存储在存储位置的压缩数据进行解压缩;设置窗口显示单元,利用通过由第一解压缩单元执行的解压缩而获取的每个设置值来显示打印设置窗口;以及打印数据产生单元,利用通过由第二解压缩单元执行的解压缩而获取的每个设置值来产生打印数据。

权利要求 :

1.一种打印机驱动器,包括:

分配单元,基于对每个设置值指定存储位置的存储位置信息来分配设置值;

压缩单元,

将分配的每个设置值转换为具有标识每个存储位置的格式,并且从中产生压缩数据;

存储单元,在由存储位置信息指定的存储位置中存储由压缩单元压缩的每条压缩数据;

第一解压缩单元和第二解压缩单元,对存储在存储位置中的压缩数据进行解压缩;

设置窗口显示单元,利用通过第一解压缩单元执行的解压缩而获取的每个设置值来控制打印设置窗口的显示;以及打印数据产生单元,利用通过第二解压缩单元执行的解压缩而获取的每个设置值来产生打印机可解释的打印数据;

所述打印机驱动器还包括:

字符串产生单元,通过将每个被分配的设置值和用于每个存储位置的每个设置值的标识符配对来产生字符串,其中,压缩单元通过压缩由字符串产生单元产生的每个字符串来产生压缩数据。

2.根据权利要求1所述的打印机驱动器,其中,存储位置包括注册表和DEVMODE结构。

3.根据权利要求2所述的打印机驱动器,其中,DEVMODE结构的私有区域被分成两个区域,核心区域和插件区域,核心区域用作从在进行核心区域的插件扩展之前的设置值产生的压缩数据的存储位置,并且插件区域用作从在进行插件区域的插件扩展之后增加的设置值产生的压缩数据的存储位置。

4.根据权利要求3所述的打印机驱动器,其中,当存储在插件区域中的压缩数据不是必须的时,第一解压缩单元仅获取和解压缩存储在核心区域中的压缩数据。

5.根据权利要求1所述的打印机驱动器,其中,设置窗口显示单元:

基于标识符,从通过利用第一解压缩单元解压缩压缩数据而获取的字符串提取每个设置值,并且利用提取的每个设置值来控制打印设置窗口的显示,以及打印数据产生单元:基于标识符,从通过利用第二解压缩单元解压缩压缩数据而获取的字符串提取每个设置值,并且利用提取的每个设置值来产生打印数据。

6.一种信息处理装置,安装有打印机驱动器,其中,打印机驱动器包括:分配单元,基于对每个设置值指定存储位置的存储位置信息来分配设置值;

压缩单元,

将分配的每个设置值转换为具有标识每个存储位置的格式,并且从中产生压缩数据;

存储单元,在由存储位置信息指定的存储位置中存储由压缩单元压缩的每条压缩数据;

第一解压缩单元和第二解压缩单元,对存储在存储位置中的压缩数据进行解压缩;

设置窗口显示单元,利用通过第一解压缩单元执行的解压缩而获取的每个设置值来控制打印设置窗口的显示;以及打印数据产生单元,利用通过第二解压缩单元执行的解压缩而获取的每个设置值来产生打印机可解释的打印数据;

所述打印机驱动器还包括:

字符串产生单元,通过将每个被分配的设置值和用于每个存储位置的每个设置值的标识符配对来产生字符串,其中,压缩单元通过压缩由字符串产生单元产生的每个字符串来产生压缩数据。

7.根据权利要求6所述的信息处理装置,其中,存储位置包括注册表和DEVMODE结构。

8.根据权利要求7所述的信息处理装置,其中,DEVMODE结构的私有区域被分成两个区域,核心区域和插件区域,核心区域用作在进行核心区域的插件扩展之前的设置值的存储位置,并且插件区域用作在进行插件区域的插件扩展之后增加的设置值的存储位置。

9.根据权利要求8所述的信息处理装置,其中,当存储在插件区域中的压缩数据不是必须的时,第一解压缩单元仅获取和解压缩存储在核心区域中的压缩数据。

10.根据权利要求6所述的信息处理装置,其中,设置窗口显示单元:

基于标识符,从通过利用第一解压缩单元解压缩压缩数据而获取的字符串提取每个设置值,并且利用提取的每个设置值来控制打印设置窗口的显示,以及打印数据产生单元:基于标识符,从通过利用第二解压缩单元解压缩压缩数据而获取的字符串提取每个设置值,并且利用提取的每个设置值来产生打印数据。

说明书 :

打印机驱动器、信息处理装置以及计算机可读记录介质

[0001] 相关申请的交叉引用
[0002] 本申请要求2009年9月14日在日本提交的2009-211574号日本专利申请和2010年6月14日在日本提交的2010-134857号日本专利申请的优先权并将它们全部内容以参考的方式引入到本申请中。

技术领域

[0003] 本发明涉及打印机驱动器、信息处理装置以及在其中记录打印机驱动器的计算机可读记录介质。

背景技术

[0004] 不同型号的打印机具有不同的功能,有时会增加选项来扩展这样的功能。例如,如果修整器被附着到或者从打印机的主体移除,则会增加或者减少多种可用功能。如果功能的数量增加或者减少,则例如打印机驱动器中必须存储的设置值等信息量也会增加或者减少。
[0005] 为了解决上述问题,已经公开了无需打印机功能扩展便可产生可由打印机处理的数据的技术。例如,根据日本特开2008-097574号所公开的技术,在其中存储打印设置的数据结构中(例如,Devmode结构)中,为基于与打印机功能相关的功能设置信息而设置的打印设置值预留区域,并且上述打印设置值被分配到上述区域。当从分配给上述数据结构的打印设置值产生打印机可处理数据时就涉及上述功能设置信息。在日本特开2008-097574号中公开的技术能够产生如下数据:其无需通过采用如此的结构来进行打印机功能扩展便能由打印机来处理。
[0006] 在传统的打印机驱动器中,与日本特开2008-097574号所公开的方式相同,通常按照数据结构格式来存储设置值。
[0007] 然而,这种数据结构具有在计算机程序中存储数据的格式,并且其数据结构在其编码时被静态确定了。因此,如果打印机功能的数量增加或者减小了,特别是如果数量增加了,则必须更新(重新设计)上述数据结构。换言之,上述数据结构必须被重新编码和重新编译来扩展在其中存储打印设置的数据结构。因此,必须重新创建和重新分配修改了的打印机驱动器来支持打印机功能扩展。

发明内容

[0008] 本发明的目标之一是至少部分地解决传统技术的上述问题。
[0009] 根据本发明的目的,提供一种打印机驱动器,包括:分配单元,基于对每个设置值指定存储位置的存储位置信息来分配设置值;压缩单元,将分配的每个设置值转换为具有标识每个存储位置的格式,并且从中产生压缩数据;存储单元,在由存储位置信息指定的存储位置中存储由压缩单元压缩的每条压缩数据;第一解压缩单元和第二解压缩单元,对存储在存储位置中的压缩数据进行解压缩;设置窗口显示单元,利用通过第一解压缩单元执行的解压缩而获取的每个设置值来控制打印设置窗口的显示;以及打印数据产生单元,利用通过第二解压缩单元执行的解压缩而获取的每个设置值来产生打印机可解释的打印数据。
[0010] 根据本发明的另一个方面,提供一种安装了打印机驱动器的信息处理装置,其中,上述打印机驱动器包括:分配单元,基于对每个设置值指定存储位置的存储位置信息来分配设置值;压缩单元,将分配的每个设置值转换为具有标识每个存储位置的格式,并且从中产生压缩数据;存储单元,在由存储位置信息指定的存储位置中存储由压缩单元压缩的每条压缩数据;第一解压缩单元和第二解压缩单元,对存储在存储位置中的压缩数据进行解压缩;设置窗口显示单元,利用通过第一解压缩单元执行的解压缩而获取的每个设置值来控制打印设置窗口的显示;以及打印数据产生单元,利用通过第二解压缩单元执行的解压缩而获取的每个设置值来产生打印机可解释的打印数据。
[0011] 根据本发明的又一个方面,提供一种计算机可读记录介质,其中记录打印机驱动器。
[0012] 当联系附图考虑时,本发明上述和其它的目标、特性、优点以及技术和在工业上的重要性通过阅读本发明当前优选实施例的下述详细说明而变得更易于理解。

附图说明

[0013] 图1是根据本发明第一实施例的打印机系统的整体配置的概要图;
[0014] 图2是根据第一实施例的PC配置的框图;
[0015] 图3是根据第一实施例的DEVMODE结构的概要图;
[0016] 图4是根据第一实施例的布局信息的例子的概要图;
[0017] 图5是基于如图4所示的布局信息和如图7所示的功能信息的打印设置窗口的例子的概要图;
[0018] 图6是根据第一实施例的存储位置信息的例子的概要图;
[0019] 图7是根据第一实施例的功能信息的例子的概要图;
[0020] 图8是用于解释由根据第一实施例的打印设置模块来执行的操作(设置)的流程图;
[0021] 图9是用于解释由根据第一实施例的打印设置模块来执行的操作(显示GUI)的流程图;
[0022] 图10是用于解释由根据第一实施例的绘图模块来执行的操作的流程图;
[0023] 图11是用于解释根据第一实施例响应于对打印设置窗口的调用和由应用程序提出的打印请求而由打印机驱动器执行的操作的顺序图;
[0024] 图12是根据本发明的第二实施例的DEVMODE结构的概要图;
[0025] 图13是根据第二实施例的存储位置信息的例子的概要图;
[0026] 图14是根据第二实施例的布局信息的例子的概要图;
[0027] 图15是根据第二实施例的功能信息的例子的概要图;
[0028] 图16是根据第二实施例基于如图14所示的布局信息和如图15所示的功能信息的打印设置窗口的例子的概要图;
[0029] 图17是用于解释由根据第二实施例的打印设置模块来执行的操作(设置)的流程图;
[0030] 图18是用于解释由根据第二实施例的打印设置模块来执行的操作(显示GUI)的流程图;
[0031] 图19是用于解释由根据第二实施例的打印设置模块来执行的操作(不显示GUI来执行验证)的流程图;以及
[0032] 图20是用于解释由根据第二实施例的绘图模块来执行的操作的流程图。

具体实施方式

[0033] 参照附图,下面详细说明根据本发明的典型实施例的打印机系统。
[0034] 第一实施例
[0035] 打印机系统的整体配置
[0036] 图1是根据本发明第一实施例的打印机系统的整体配置的概要图。如图1所示,在第一实施例中,个人计算机(PC)100和打印机150通过网络160连接。打印机150响应于PC 100提出的打印请求来执行打印。
[0037] PC 100的配置
[0038] 图2是PC 100的配置的框图。如图2所示,PC 100包括处理单元101、存储单元102以及通信单元103。处理单元101包括作为控制器的未图示的中央处理单元(CPU)和包括只读存储器(ROM)和随机访问存储器(RAM)的作为主存储器来发挥功能的一组存储器。
当PC 100启动和执行时,从ROM和存储单元102中将应用程序104、操作系统(OS)105以及各种驱动器(图2仅图示了打印机驱动器106)加载到上述主存储器中并在其中进行扩展,并由CPU执行。PC 100具有公用计算机的硬件配置,具有例如键盘或者鼠标的输入设备和例如显示器的输出设备,为了简化说明而未在图2中图示它们。
[0039] 包括在如图2所示的打印机驱动器106中的功能块代表实现打印机150的控制的主功能或者单元。
[0040] 通信单元103与通过网络160连接的打印机150交换信息。
[0041] 应用程序104是允许用户提供打印指令的软件。如果用户希望打印在应用程序104中编辑的数据,应用程序104接受用户提出的打印机指令。此时,应用程序104不单独地产生待发送给打印机150的打印数据,而是将待打印的信息和对应于打印指令的打印请求发送给OS 105。
[0042] OS 105是用于管理PC 100中的硬件和软件的计算机程序。OS 105执行例如启动计算机程序、读取或者存储信息以及诸如此类的控制。最典型的OS的广为人知的例子包括Microsoft Windows(注册商标)和UNIX(注册商标)。OS 105将待打印的信息(例如,文档数据或者图像数据)和从应用程序104接收到的打印机请求发送给打印机驱动器106。
[0043] 存储单元102是用于在其中存储各种信息的存储器。更详细地,存储单元102是例如硬盘驱动器(HDD)。存储在存储单元102中的信息包括设置信息,上述设置信息定义与实现打印机驱动器106的功能的过程相关的信息(任何在过程中所需要的信息,例如用于上述过程的设置值或者允许上述设置值改变的显示信息)。上述设置信息的例子包括布局信息、存储位置信息以及功能信息。除此之外,由OS 105提供的DEVMODE结构和注册表(registry)也存储在存储单元102中。
[0044] 布局信息是描述显示在设置窗口中的图形用户界面(GUI)组件的布局的信息。存储位置信息是指定关于每个设置值存储的位置的信息。功能信息是指定与连接的打印机的功能(规范)、每个上述设置值被允许设定的范围或者设置之间的限制相关的信息。
[0045] 打印机驱动器106包括用于控制用户界面(UI)的打印设置模块111和控制绘图的绘图模块112,作为用于执行包括在驱动器中的功能的模块组。
[0046] 打印设置模块111包括设置窗口显示单元121、分配单元122、字符串产生单元123、压缩单元124、设置存储单元125、压缩数据获取单元126以及解压缩单元127。
[0047] 设置窗口显示单元121控制显示在监视器屏幕中的GUI(打印设置窗口)的显示作为一个UI。根据第一实施例的设置窗口显示单元121基于存储在存储单元102中的布局信息来显示打印设置窗口。当显示打印设置窗口时,设置窗口显示单元121显示仅用于在上述限制下允许利用的功能和允许设定的设置(设置的范围,设置值)的GUI组件。
[0048] 分配单元122参照存储位置信息,并且将每个设置值分配给在存储位置信息中指定的存储位置。
[0049] 字符串产生单元123为每个存储位置将由分配单元122分配的设置值转换成可变长度的字符串,其是设置的名称和值的对。例如,产生例如{“Duplex”:”on”,”Orientation”:”portrait”,…}的字符串。在该字符串中,设置的名称用于标识每个设置值的标识符或者设置值的地址。
[0050] 压缩单元124通过例如zipping的方式来压缩分别与存储位置对应并由字符串产生单元123产生的字符串,来为每个存储位置产生压缩数据。因为数据大小通过压缩而变小,即使设置值的数量增加了,也能够抑制存储在DEVMODE结构中的压缩数据的大小的增加,其中DEVMODE结构是一种大小固定的数据结构。可以利用任何类型的压缩模式。
[0051] 设置存储单元125将由压缩单元124产生的每条压缩数据存储到每个存储位置(在注册表或者DEVMODE结构中)。DEVMODE结构包括公共DEVMODE(公共区域)和私有DEVMODE(私有区域),所述公共DEVMODE是其使用由OS 105确定的固定区域,所述私有DEVMODE是在其中驱动器的创建者可自由地管理信息的自由区域。在第一实施例中,存储在DEVMODE结构中的压缩数据存储在DEVMODE结构的私有区域中。
[0052] 压缩数据获取单元126读取存储在注册表和DEVMODE结构中的压缩数据。
[0053] 解压缩单元127对由压缩数据获取单元126从注册表和DEVMODE结构中获取的压缩数据进行解压缩,并将数据扩展到内部存储器中。
[0054] 绘图模块112包括压缩数据获取单元131、解压缩单元132以及打印数据产生单元133。
[0055] 压缩数据获取单元131读取存储在注册表和DEVMODE结构中的压缩数据。
[0056] 解压缩单元132对由压缩数据获取单元131从注册表和DEVMODE结构中获取的压缩数据进行解压缩,并将数据扩展到内部存储器中。
[0057] 打印数据产生单元133验证打印设置,解压缩打印设置(当前设置值)是否符合限制,以根据验证了的打印设置和应用程序104请求待打印的绘图数据来产生可由打印机150解释的打印数据。产生的打印数据通过通信单元103发送给打印机150。
[0058] 现在利用一些具体的例子来解释设置信息(布局信息、存储位置信息以及功能信息)。
[0059] 布局信息
[0060] 图4是布局信息的一个例子的概要图。在图4的例子中,仅示出布局信息的一部分。如图4所示的布局信息由JavaScript Object Notation(JSON)格式描述,但是可以以任意其它格式来描述。
[0061] 如图4所示,在上述布局信息中,为显示在打印设置窗口中的每个GUI组件指定布局数据。布局数据具有类型、名称以及坐标轴的属性。
[0062] 类型指定GUI组件的类型。类型的值CheckBox指定所述GUI组件被显示为复选框组件。ComboBox指定所述GUI组件被显示为组合框组件。SpinBox指定所述GUI组件被显示为数值设定框组件。虽未图示,但是通过在类型中指定EditBox或者ListBox,GUI组件也可以被显示为编辑框组件或者列表框组件。
[0063] 名称代表设置的名称。在名称的值中,“duplex”表明设置是双面打印。“Orientation”表明该设置是用于指定打印朝向的。“Copies”表示该设置是用于指定拷贝的份数。“Papersize”或者“layout”虽未图示但是也可被描述成指定纸张大小或者总体打印设置的设置。
[0064] 坐标轴代表显示GUI组件的坐标,其中,作为坐标轴的属性之一的x表示以对话框的左上角为原点的水平坐标,y也是坐标轴的属性之一,表示以对话框的左上角为原点的垂直坐标。例如,如图4所示的在双面打印设置(双向)的坐标轴指定由类型属性指定的复选框组件被显示在水平位置25和垂直位置30。
[0065] 设置窗口显示单元121从存储单元102读取布局信息,产生与读取的布局信息相应的设置窗口并将产生的打印设置窗口显示到PC 100中的显示装置(未图示)中。此时,打印设置模块111仅显示在布局信息中描述的GUI组件中基于功能信息允许设置的那些组件,所述功能信息在后面进行说明。
[0066] 图5是通过读取如图4所示的布局信息和如图7所示的后述的功能信息,由包含在打印机驱动器106中的设置窗口显示单元121显示的打印设置窗口的例子的概要图。如图5所示,复选框组件显示在用于双面打印设置的显示名称“双向”下,组合框组件显示在用于打印朝向设置的显示名称“朝向”下,以及数值设定框组件显示在用于拷贝份数设置的显示名称“拷贝”下。(打印朝向设置和拷贝份数设置的默认设置值依赖于后述的功能信息)。如图5所示的确定按钮是用于存储变更了的打印设置的按钮,取消按钮是用于取消这种变更的按钮。
[0067] 存储位置信息
[0068] 存储位置信息说明为每个设置值指定存储位置的信息。图6表示仅一部分存储位置信息的例子。在图6所示的例子中,存储位置信息是以JSON格式来说明的,但是可以以任意其它格式来说明。
[0069] 在存储位置信息中,在关键字“registry”和“devmode”下面的段中描述的每个设置的名称与在布局信息和功能信息中指定的每个设置的名称相对应。与关键字“registry”下面描述的每个设置的名称(如图6所示的例子:finisher、hdd、、fold...)相对应的设置值存储在注册表中。与关键字“devmode”下面描述的每个设置的名称(如图6所示的例子:duplex、orientation…)相对应的设置值存储在DEVMODE结构中。上述“finisher”、“hdd”以及“fold”代表修整器、硬盘以及纸文件夹,它们是包含在打印机150中的功能。
[0070] 功能信息
[0071] 图7是功能信息的例子的概要图。在图7中,为了简化说明,仅示出了双面打印(双向)、打印朝向设置(朝向)以及拷贝份数的设置(拷贝)。然而,功能信息是用于为每个设置值指定允许设定的设置值的范围和设置中的限制的信息。在实际中,在功能信息中说明与打印相关的各种类型的信息,例如纸张的大小设置或者装订设置。如图7所示的功能信息用可扩展标记语言(XML)格式来说明,但是可以用任意其它的格式来说明(例如JSON)。
[0072] 在如图7所示的功能信息的例子中,每条设置信息由“feature”标签定义。上述“feature”标签具有名称、默认值以及类型的属性。无需赘言,如图7所示的例子仅是一个例子,也可以定义和利用其它属性。
[0073] 属性“name”代表设置的名称,与在布局信息中的“name”对应。在如图7所示的例子中,在属性“name”中的值“duplex”指定所述设置用于双面打印。值“orientation”指定打印朝向设置。值“copies”指定拷贝份数的设置。属性“default”指定可选值中的初始值。属性“type”指定设置值被输入的格式。在“type”中的一个值“pickone”指定一个可选的格式。除了“pickone”之外,可以利用用于指定字符串中的输入格式的“string”或者用于指定数值中的输入格式的“number”。
[0074] “pickone”标签表明可选择的设置值,且该设置值是按照“pickone”标签中的属性值“name”来指定的。在打印朝向设置中,“pickone”的属性“pickone name”具有代表垂直朝向的值“portrait”或者代表水平朝向的值“landscape”。在双面打印中,“off”代表该功能已关闭,“on”代表该功能已开启。在拷贝份数设置中,“min”代表最小数目的拷贝,且“max”代表最大数目的拷贝。
[0075] 未图示的“constraint”标签可以在“feature”标签围绕的部分中指定。利用“constraint”标签描述的部分在“feature”标签包围的设置中指定有关限制的信息,所述“feature”标签是父标签(例子:)。当限制条件满足(在上述例子中的“off”)时,“constraint”标签中的一个属性“fixvalue”允许设置值被强制性地改变。
[0076] 在“constraint”标签包围的部分中,限制条件可利用“condition”标签来指定(例子:)。“condition”标签为作为父标签的“constraint”标签指定限制条件。可用属性“expression”指定条件(在上述例子中,当设置AAAA取“on”以外的值时,上述条件被满足)。“constraint”标签也可以在“pickone”标签包围的部分中和“pickone”标签自身中指定,换言之,可替换者自身可具有限制信息。
[0077] 如上所述,功能信息指定用于管理的信息,上述用于管理的信息应该由与每个打印相关的设置相关的打印机驱动器106执行。功能信息被提供给打印机的每个支持型号,并且描述包含在每个打印机中的所有功能,其中包括选项。打印设置模块111和绘图模块112在确定允许利用的功能或者在验证设置值(当前值)时,参照功能信息。
[0078] 由打印机设置模块111执行的操作(设置)
[0079] 现在参照图8来解释由包含在根据第一实施例的打印机驱动器106中的打印机设置模块111执行的操作(设置)。图8是由打印设置模块111执行的操作(设置)的流程图。
[0080] 首先,在PC 100的内部存储器中保存用于在其中临时存储设置值等的工作区域(步骤S801)。
[0081] 当用户执行操作来开启打印设置窗口时,设置窗口显示单元121使打印设置窗口(GUI)显示在与PC 100连接的显示装置(未图示)(步骤S802)。
[0082] 然后,设置窗口显示单元121接受由用户通过显示的打印设置窗口(GUI)执行的设置值的设置操作(例如,设置中的变更)(步骤S803)。
[0083] 然后,输入设置值存储在PC 100的内部存储器中(步骤S804)。
[0084] 如果用户操作结束(例如,如果“确认”按钮在如图5所示的打印设置窗口中被按下)(在步骤S805中为是),系统控制进行到步骤S806。如果没有(在步骤S805中为否)时,系统控制回退到步骤S803,并继续接受用户的设置操作。
[0085] 在步骤S806,分配单元122参照存储位置信息,且将每个设置值分配到与设置名称关联的存储位置(注册表或者DEVMODE结构)。换言之,在例如如图6所示的存储位置信息中,与关键字“registry”下面的段中指定的设置的名称相应的设置值被分配到注册表作为它的存储位置,与在关键字“devmode”下面的段中指定的设置的名称相应的设置值被分配到DEVMODE结构作为它的存储位置。
[0086] 然后,字符串产生单元123将存储在注册表中的每个设置值和存储在DEVMODE结构中每个设置值转换成字符串(步骤S807)。
[0087] 然后,压缩单元124通过例如zipping的方法压缩转换成字符串的设置值(步骤S808)。
[0088] 然后,设置存储单元125在各自的存储位置(注册表和DEVMODE结构)中存储压缩了的设置值(压缩数据)(步骤S809)。
[0089] 如上解释了由打印机驱动器106的打印设置模块111执行的设置操作。由打印设置模块111执行的操作(显示GUI)
[0090] 现在参照图9来解释由包含在根据第一实施例的打印机驱动器106中的打印机设置模块111执行的操作(显示GUI)。图9是由打印设置模块111执行的操作(显示GUI)的流程图。
[0091] 首先,压缩数据获取单元126确定根据第一实施例的压缩数据是否存在于DEVMODE结构(在图9和之后简化成DEVMODE)的私有区域中。如果存在(在步骤S901中为是),系统控制进行到步骤S902。若不存在(在步骤S901中为否)时,系统控制进行到步骤S903。
[0092] 在步骤S902中,压缩数据获取单元126获取存储在DEVMODE结构中的设置值的压缩数据。
[0093] 在步骤S903中,压缩数据获取单元126确定根据第一实施例的压缩数据是否存在于注册表中。如果存在(在步骤S903中为是),系统控制进行到步骤S904。如果不存在(在步骤S903中为否)时,系统控制进行到步骤S905。
[0094] 在步骤S904,压缩数据获取单元126获取存储在注册表中的设置值的压缩数据。
[0095] 然后,解压缩单元127对在步骤S902和步骤S904中获取的压缩数据进行解压缩,并且将上述数据扩展到内部存储器中(步骤S905)。
[0096] 然后,设置窗口显示单元121通过利用扩展到内部存储器中的设置值来显示打印设置窗口(GUI)(步骤S906)。之后,用户可以通过打印设置窗口更改已经设置的设置值。利用在初始设置中的默认设置值显示GUI。当显示打印设置窗口时,基于功能信息,仅为在限制下允许使用的功能和允许设定的设置(设置的范围、设置值)显示GUI组件。在限制下允许使用的功能和允许设定的设置(设置的范围、设置值)通过基于功能信息而执行的验证的方式来确定。
[0097] 在再次显示打印设置窗口时由打印机驱动器106中的打印设置模块111执行的操作如上所述。
[0098] 由绘图模块112执行的操作
[0099] 现在参照图10来解释由包含在根据第一实施例的打印机驱动器106中的绘图模块112执行的操作。图10是由绘图模块112执行的操作的流程图。在下面的解释中,假设绘图模块112已经从应用程序104中接受了绘图数据和打印请求。
[0100] 首先,压缩数据获取单元131确定根据第一实施例的压缩数据是否存在于DEVMODE结构的私有区域中。如果存在(在步骤S1001中为是),系统控制进行到步骤S1002。如果不存在(在步骤S1001中为否),系统控制进行到步骤S1003。
[0101] 在步骤S1002中,压缩数据获取单元131获取存储在DEVMODE结构中的设置值的压缩数据。
[0102] 然后,压缩数据获取单元131确定根据第一实施例的压缩数据是否存在于注册表中。如果存在(在步骤S1003中为是),系统控制进行到步骤S1004。如果不存在(在步骤S1003中为否),系统控制进行到步骤S1005。
[0103] 在步骤S1004中,压缩数据获取单元131获取存储在注册表中的设置值的压缩数据。
[0104] 然后,解压缩单元132对在步骤S1002和步骤S1004中获取的压缩数据分别进行解压缩,并且将上述数据扩展到内部存储器中(步骤S1005)。
[0105] 然后,打印数据产生单元133基于被扩展到内部存储器中并由在功能信息中指定的限制反映的设置值(当前值)和从应用程序104中接收到的绘图数据来产生可由打印机150解释的打印数据(步骤S1006)。
[0106] 最后,打印数据产生单元133将产生的打印数据转发给打印机150(步骤S1007)。
[0107] 由包含在打印机驱动器106中的绘图模块112执行的操作由此如上所述。
[0108] 联系应用程序104的操作,现在参照图11的顺序图来解释响应于对打印设置窗口的调用和由应用程序104提出的打印请求由打印机驱动器106执行的内部操作。由打印设置模块111和绘图模块112执行的操作主要由设置窗口显示单元121、分配单元122、字符串产生单元123、压缩单元124、设置存储单元125、压缩数据获取单元126、解压缩单元127、压缩数据获取单元131、解压缩单元132以及打印数据产生单元133执行。
[0109] 当响应于用户向打印机150提出打印设置请求时,应用程序104向打印设置模块111提交一个对打印设置窗口的调用以显示允许用户为打印机150执行打印设置的打印设置窗口(t1)。
[0110] 当从应用程序104接收到对打印设置窗口的调用时,打印设置模块111基于布局信息和功能信息来产生用于允许用户对打印机150的功能提供各种设置的设置窗口,并且将设置窗口显示到PC 100的显示单元上(未图示)(t2)。此时,如前所述,基于功能信息,仅为在限制下允许使用的功能和允许设定的设置(设置的范围、设置值)显示GUI组件。
[0111] 然后,打印设置模块111接受用于打印机150的、由用户通过打印设置窗口输入的打印设置值(t3)。
[0112] 当用户完成打印设置输入时(例如当打印设置窗口中的确定按钮被按下时),打印设置模块111参照存储在存储单元102中的存储位置信息,并且将由用户输入的设置值分配到各个存储位置(注册表和DEVMODE结构)(t4)。
[0113] 在打印设置模块111中,在t4中分配的设置值被转换成用于每个被分配的位置的字符串(t5),并且转换成字符串的设置值由例如zipping的方式被压缩(t6)。
[0114] 压缩设置值(压缩数据)被分别存储在它们的存储位置(注册表和DEVMODE结构)(t7)。
[0115] 然后,打印设置模块111返还DEVMODE结构,在其中压缩数据被返回给应用程序104(t8)。
[0116] 当用户随后在应用程序104中向打印机150提出打印请求时,应用程序104接受打印请求(t9),并且所述打印请求被从应用程序104转发到绘图模块112(t10)。此时,绘图数据与打印请求一起被发送。
[0117] 当接收到打印请求时,绘图模块112读取存储在注册表和DEVMODE结构中的压缩数据,来分别获取压缩数据(t11)。
[0118] 然后,绘图模块112对获取到的压缩数据进行解压缩,并且将数据扩展到内部存储器中(t12)。
[0119] 然后,绘图模块112参照存储在存储单元102中的用于打印机150的功能信息,检验被扩展的设置值(当前值)并且将在功能信息中指定的限制反映到设置值(当前值)。然后,绘图模块112从设置值和绘图数据产生可由打印机150解释的打印数据(t13)。
[0120] 然后,通过通信单元103将产生的打印数据从绘图模块112发送到打印机150(t14)。
[0121] 在发送打印数据之后,绘图模块112向应用程序104发送通知,通知打印数据发送完成(t15)。
[0122] 在从绘图模块112接收到打印数据发送完成的通知时(t15),应用程序104结束打印过程(t16)。
[0123] 在上面,联系应用程序104的操作,解释了响应于对打印设置窗口的调用和由应用程序104提出的打印请求由打印机驱动器106执行的内部操作。
[0124] 如上所述,在第一实施例中,与打印设置相关的每个设置值是与设置的名称成对的,以便被转换成可变长度的压缩和存储的字符串(特别地,以例如DEVMODE结构的数据结构)。这样,即使待存储的设置值的数量随着打印机功能的增加而增加(只要这种增加不是极限的增加),无需变更在其中存储设置值的数据结构(DEVMODE结构)的大小,这与传统的例子不同。换言之,数据结构不必重新设计,且打印机驱动器106无需重新创建。另外,因为每个设置值与作为字符串的设置的名称成对,因此在压缩数据被解压缩之后,可以容易地提取设置值。
[0125] 第二实施例
[0126] 现在,参照图12至20解释本发明的第二实施例。根据第二实施例的硬件配置与第一实施例的相同。因此,在下面仅解释与第一实施例的不同的组件。
[0127] DEMODE结构
[0128] 图12是根据第二实施例的DEVMODE结构的概要图。如图12所示,DEVMODE结构的私有区域PrivateDEVMODE被分割成核心区域和插件区域。在插件扩展被添加之前的设置值存储在核心区域。在插件扩展被添加之后的设置值被存储在插件区域。因此,在下面解释根据第二实施例的存储位置信息。
[0129] 存储位置信息
[0130] 与第一实施例中相同,存储位置信息描述了为每个设置值指定存储位置的信息。如图13中,仅图示了示例的存储位置信息的一部分。在图13所示的例子中,以JSON格式描述存储位置信息,但是也可以利用其它任意的格式描述。
[0131] 在存储位置信息中,在关键字“registry”、“devmode”以及“plug-in”下面的段中指定的设置的名称与在布局信息和功能信息中指定的设置对应(参见图14和15)。与在关键字“registry”下面描述的每个设置的名称(在如图13所示的例子中的finisher、hdd、fold…)对应的设置值存储在注册表中。与在关键字“devmode”下面描述的每个设置的名称(在如图13所示的例子中的duplex、orientation…)对应的设置值存储在DEVMODE结构的核心区域中。与在关键字“plug-in”下面描述的每个设置的名称(在如图13所示的例子中的watermark_text、watermark_color…)的每个设置的名称对应的设置值存储在DEVMODE结构的插件区域中。在第二实施例的说明中,用于打印水印的功能是通过插件的方式添加的,然而,任何功能都可以通过插件的方式添加。
[0132] 这样,关键字“registry”、“devmode”以及“plug-in”用于指定存储位置。与由这些关键字下面描述的设置的名称对应的设置值分别存储在由这些关键字指定的存储位置。“watermark_text”和“watermark_color”分别对应于要被打印的文本作为水印和文本的颜色。
[0133] 在如图14所示的示例的布局信息中,在根据第一实施例的如图4所示的布局信息中额外提供了用于水印文本设置的布局数据和用于水印颜色设置的布局数据,因为用于描述GUI组件的布局数据的段(在如图14所示的例子中的组合框)允许用户将待打印的文本设置为水印和文本的颜色,并且对应于“watermark_text”和“watermark_color”。
[0134] 在如图15所示的示例的功能信息中,与“watermark_text”和“watermark_color”对应的设置信息被添加到根据第一实施例的如图7所示的功能信息中,以提供“watermark_text”和“watermark_color”的定义。在如图15所示的例子中,功能信息指定GUI组件(在本例中是组合框)上可选择的设置值,其可用于选择待打印的文本作为文本的水印和颜色(在如图15所示的例子中,“top secret”、“confidential”等被定义为水印文本的可选项,以及“gray”、“red”等被定义成用于水印颜色的可选项)。图16是通过读取分别由图14和图15所示的布局信息和功能信息,通过包含在打印机驱动器106中的设置窗口显示单元121而显示的示例打印设置窗口的概要图。在打印设置窗口中提供的选项和默认设置值由功能信息确定。
[0135] 由打印设置模块111执行的操作(设置)
[0136] 在下面解释根据第二实施例的由包含在打印机驱动器106中的打印设置模块111执行的操作(设置)。
[0137] 由根据第二实施例的打印设置模块111执行的操作与由根据第一实施例的打印设置模块111执行的操作的不同在于如图8所示的步骤S806至S808中执行的特定步骤。操作的基本流程与图8所示的流程相同。因此,在下面详细地解释由根据第二实施例的打印设置模块111执行的步骤S806’至S808’(图17),其对应于如图8所示的步骤S806至S808。
[0138] 第二实施例与第一实施例的相同之处在于分配单元122参照存储位置信息,并且分配每个设置值到与设置名称相关的存储位置。然而,因为作为存储位置的DEVMODE结构的私有区域被划分成核心区域和插件区域,因此在第二实施例中,具有三个存储位置:注册表、DEVMODE结构的私有区域中的核心区域以及插件区域,这不同于第一实施例的两个存储位置:注册表和DEVMODE结构中的私有区域。然而,在第二实施例中,在步骤S806’,分配单元122参照存储位置信息,并且在存储位置信息中指定的键(“registry”、“devmode”以及“plugin”)之后,分配每个设置值到与设置名称相关的存储位置(注册表,或者DEVMODE结构中的核心区域或者插件区域)。
[0139] 在步骤S807’,字符串产生单元123分别将存储注册表,DEVMODE结构的核心区域、以及插件区域中的设置值转换成字符串。
[0140] 在步骤S808’,压缩单元124利用例如zipping的方式压缩与每个存储位置相对应的被转换成字符串的每个设置值。然后,所产生的压缩数据被存储在相应的存储位置。
[0141] 由打印设置模块111执行的操作(显示GUI)
[0142] 由包含在根据第二实施例(图18)的打印机驱动器106中的打印设置模块111执行的操作(显示GUI)与由根据第一实施例的打印设置模块111执行的操作的不同在于压缩数据是从三个区域中获取的,即是从注册表、核心区域以及插件区域中获取的,因为作为存储位置的DEVMODE结构的私有区域被分为核心区域和插件区域。换言之,根据第二实施例,在与根据图9所示的第一实施例的步骤S902对应的步骤中,从DEVMODE结构中的核心区域和插件区域中获取压缩数据(步骤S902’)。剩余的步骤与根据第一实施例的那些步骤相同。
[0143] 与在下面描述的例子不同,其中进行了插件扩展,但是在操作中并不需要在插件区域中的任何压缩数据,此处解释的操作需要在插件区域的压缩数据。因此,从DEVMODE结构中的核心区域和插件区域获取压缩数据。若未进行插件扩展,或者扩展了没有设置值的插件,则没有压缩数据存储在插件区域中。因此,仅从核心区域获取压缩数据。
[0144] 由打印设置模块111执行的操作(不显示GUI而执行验证)
[0145] 从应用程序传递到打印机驱动器的一些命令使打印设置模块111来显示GUI,而另一些命令则不是。一些命令也不需要插件区域中的任何压缩数据(包括关于设置值的信息)。在这样的操作的一个例子中,图19示出未使GUI显示而由打印设置模块111执行的验证操作。
[0146] 在图19中所示的操作与由打印设置模块111执行的上述操作(显示GUI)之间的一点不同在于打印设置模块111仅从核心区域获取压缩数据,而不是从如图19所示在对应于上述的步骤S902’的步骤S902”从插件区域获得。例如当使用不需要待处理(在本例子中,待验证)的设置值的插件时,执行该种操作。在这种配置中,即使当安装有插件时,打印设置模块111仅从核心区域获取压缩数据。因为由应用程序发出的一些命令不需要存储在插件区域中的压缩数据,在该示例的操作中仅获取存储在核心区域中的必要的数据,即使压缩数据存储在核心区域和插件区域二者中。这样,与从核心区域和插件区域这二者中获取压缩数据的配置相比,改善了速度性能。
[0147] 另一个不同在于仅执行了验证,而在对应于图18的步骤S906的图19中的步骤S1906未显示GUI。执行该验证来决定限制下允许使用的功能,以及允许设定的设置(设置的范围,设置值)。其它步骤与如图9和图18所示的步骤相同。
[0148] 由打印设置模块111执行的操作不限于如上解释的例子。由打印设置模块111执行的操作不限于参照图18和19所说明的例子,并且如果应用程序提出不需要在通过插件的方式扩展功能时添加的设置值的命令,则在与这样的命令对应的过程中,可通过允许打印设置模块111仅从核心区域获取数据来改善速度性能。
[0149] 由绘图模块112执行的操作
[0150] 根据第二实施例的由包含在打印机驱动器106中的绘图模块112执行的操作与根据第一实施例的由包含在打印机驱动器106中的绘图模块112执行的操作的不同在于从注册表、核心区域以及插件区域这三个区域获取压缩数据,因为作为存储位置的DEVMODE结构的私有区域被分为核心区域和插件区域。换言之,在对应于根据第一实施例的图10所示的步骤S1002的步骤中,从DEVMODE结构中的核心区域和插件区域这二者中获取压缩数据(步骤S1002’)。其它步骤与根据第一实施例的图10的流程图中的那些步骤相同。若没有进行插件的扩展,或者如果扩展的插件并未伴随着任何设置值,则仅从核心区域获取压缩数据,因为没有压缩数据存储在插件区域中。
[0151] 响应于用于打印设置窗口的调用和应用程序提出的打印请求,参考图11描述的并且由根据第一实施例打印机驱动器执行的一系列步骤与第二实施例相同。
[0152] 上面解释了第一与第二实施例之间的不同。在第二实施例中,与打印设置(特别是那些存储在例如DEVMODE结构的数据结构中的设置)相关的每个设置值也与待转换为可变长度的字符串的设置的名称成对,并且字符串以与第一实施例相同的方式压缩和存储。然而,在第二实施例中,在数据结构(DEVMODE结构)中用于压缩数据的存储位置被分成两个区域(核心区域和插件区域),并且在进行插件扩展之前的设置值存储在核心区域中,并且当通过插件的方式来进行扩展功能时所添加的设置值存储在插件区域中。在这种配置中,即使通过插件的方式来扩展了功能,当不需要通过插件方式来扩展功能时所添加的设置值时,通过仅从核心区域获取数据来改善速度方面的性能。
[0153] 根据实施例的打印机驱动器106以可安装的或者可执行的格式记录,并且可用于从计算机可读记录介质中获取,例如压缩磁盘只读存储器(CD-ROM)、软盘(FD)、可记录压缩磁盘(CD-R)或者数字化视频光盘(DVD)中。
[0154] 这些计算机程序也可以存储在连接到例如Internet的网络的计算机中,并且可做成从网络下载。
[0155] 根据本发明,即使对应于打印机功能的数量增加了设置值的数量,无需变更在其中存储设置值的数据结构的大小也可以存储设置值。因此,无需重新设计在其中存储设置值的数据结构,重新编码和重新编译打印机驱动器或者重新发布变更了的打印机驱动器。
[0156] 尽管为了完整和清楚地公开,本发明已参照特定的实施例进行了描述,但是所附的权利要求并不因此仅限于此,而是可以被理解为包括所有本领域技术人员所进行的完全落入此处所给出的基础教导的范围的修改和改变。