专利名称:便于进行无驱动打印的系统的制作方法
技术领域:
所公开的实施例涉及用于计算机系统的打印机。更具体地,公开的实施例涉及无需管理特定于打印机的驱动软件而工作的基于计算机的打印系统。
背景技术:
对于计算机用户,打印机往往是成问题的。在计算机用户初始安装打印机时,电缆和电源线的装配通常不成问题。然而,用户通常不得不安装特定于打印机的驱动程序,这包括从盘载入驱动程序或者导航到某个网站并下载驱动程序。即使打印机驱动程序已经载入计算机系统中,用户也常常不得不从打印机制造商的网站下载和安装该驱动程序的更新。 这些安装操作是耗时的,并且通常需要用户找到和输入长的软件许可密钥。因此,需要一种便于安装打印机而没有上述问题的系统。
发明内容
所公开的实施例提供了一种便于无驱动打印的系统。该系统包括发现部件,其被配置成识别可访问的打印机和便于选择可访问的打印机,其中该发现部件还被配置成从可访问的打印机获得性能信息。该系统还包括传输部件,其被配置成传输数据到所选择的打印机,其中该传输部件还被配置成从所选择的打印机获得性能信息。最后,该系统包括页面描述语言部件,其被配置成基于所获得的所选择的打印机的性能信息而生成用于所选择的打印机的打印机数据。在某些实施例中,该系统提供集成架构,该集成架构使得发现部件、传输部件和页面描述语言部件能够被应用访问。在某些实施例中,该集成架构包括提供对发现部件、传输部件和/或页面描述语言部件的访问的一个或多个应用编程接口(API)。这些API使得进行调用(calling)应用能够通过API与被调用的其它应用代码交互。各种函数调用、消息或其它类型的启用 (invocation)(其进一步可以包括各种各样的参数)可以经由API在进行调用的应用和被调用的代码之间被传递。此外,API可以向进行调用的应用代码提供使用在API中定义并且在被调用的应用代码中实现的数据类型或类别的能力。用于通过该API进行操作的方法包括经由该API传递一个或多个函数调用、消息、其它类型的启用或参数。在某些实施例中,在从可访问的打印机获得性能信息时,发现部件被配置成从该可访问的打印机获得当前状态信息。在某些实施例中,该当前状态信息能够规定打印机是否离线;打印机是否正忙; 或打印机中是否存在错误状况。在某些实施例中,打印机的性能信息能够规定例如打印机所支持的文件大小;打印机所支持的文件格式版本;打印机所支持的文件格式扩展名(extension);打印机所支持的色彩空间;打印机所支持的位深度;或打印机所支持的分辨率。在某些实施例中,从所选择的打印机获得的性能信息使得系统能够生成用于所选
5择的打印机的打印机数据,而无需系统维护用于所选择的打印机的特定于打印机的软件或特定于打印机的配置信息。一些实施例包括在如下环境中的一个或多个应用编程接口(API)在该环境中, 进行调用的程序代码通过一个或多个所述接口与被调用的其它程序代码交互。各种函数调用、消息或其它类型的启用(其进一步可以包括各种各样的参数)可以经由API在进行调用的程序和被调用的代码之间被传递。此外,API可以向进行调用的程序代码提供使用在 API中定义并且在被调用的程序代码中实施的数据类型或类别的能力。至少某些实施例包括进行调用的软件部件通过API与被调用的软件部件进行交互的环境。用于在该环境中通过API进行操作的方法包括经由该API传递一个或多个函数调用、消息、及其它类型的启用或参数。
图1示出根据所公开的实施例的打印系统。图2示出根据所公开的实施例的在执行打印操作时涉及的部件。图3给出一个流程图,其示出根据所公开的实施例的打印处理。图4给出一个流程图,其示出根据所公开的实施例的无驱动打印处理。图5给出一个流程图,其示出根据所公开的实施例的从打印机角度而言的打印处理。图6示出根据所公开的实施例的支持通用光栅格式(universal-raster-format) 的(支持URF的)关键字(key)的结构。图7示出根据所公开的实施例的独立于设备的位图容器的结构。图8示出根据所公开的实施例,软件部件如何通过API彼此调用。图9示出根据所公开的实施例,可以如何通过系统栈(system stack)进行API调用。
具体实施例方式给出以下描述以使得任何本领域技术人员能够进行和使用所公开的实施例,并且以下描述是在特定应用及其需求的情境下被提供的。对所公开的实施例的各种修改对本领域技术人员而言将是容易明白的,并且这里定义的一般原理可以应用于其它实施例和应用,而不背离所公开的实施例的精神和范围。因此,所公开的实施例不限于示出的实施例, 而是要符合与这里公开的原理和特征一致的最宽范围。在该具体实施方式
部分描述的数据结构和代码通常存储在非暂态性计算机可读存储介质上,该非暂态性计算机可读存储介质可以是能够存储由计算机系统使用的代码和 /或数据的任何设备或介质。该非暂态性计算机可读存储介质包括但不限于易失性存储器;非易失性存储器;磁和光存储设备,诸如磁盘驱动器、磁带、⑶(紧凑盘)、DVD (数字通用盘或数字视频盘);或现在已知的或以后开发的能够存储代码和/或数据的其它介质。在该具体实施方式
部分描述的方法和处理可以体现为代码和/或数据,其可以存储在如上所述的非暂态性计算机可读存储介质中。当计算机系统读取和执行存储在非暂态性计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储在该非暂态性计算机可读存储介质中的方法和处理。而且,以下所述的方法和处理可以包括在硬件模块中。例如,硬件模块可以包括但不限于,专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、以及现在已知的或以后开发的其它可编程逻辑器件。当硬件模块被激活时,该硬件模块执行包括在该硬件模块中的方法和处理。无驱动打印所公开的实施例便于实现“无驱动打印”,其使得计算设备能够向打印机进行打印而不必担心安装或更新相关联的打印机驱动软件。这是通过增加发现协议(例如, Bonjour )和相关联的网络打印协议(例如,IPP)从而这些协议返回用于生成针对所选择的打印机的打印机数据的打印机性能信息来实现的。注意,所公开的实施例不同于需要为每个所支持的打印机维护特定驱动程序的现有系统。在这些现有系统中,特定打印机的特征和性能被存储在由打印机厂商创建的静态性能文件(例如,PostScript 打印机描述(PostScript Printer Description,PPD)文件) 中,并且这些静态性能文件存储在移动设备本身上。与此对比,所公开的实施例询问打印机 (不是静态文件)以确定打印机的“当前”操作性能。除了发现协议和网络打印协议之外, 所公开的实施例还提供规定打印页面的外观(appearance)的页面描述语言。所公开的实施例此外还提供一种架构,其使得应用能够容易地使用发现协议、网络打印协议和页面描述语言。该架构可以利用使得应用能够访问这些部件的一个或多个 API来实现。下面描述所公开的实施例的细节,但是首先我们描述打印系统。打印系统图1示出根据所公开的实施例的打印系统100。打印系统100包括计算设备102 和打印机106。计算设备102—般可以包括任何类型的计算机系统或计算设备,例如个人计算机系统、服务器计算机系统、膝上型计算机、笔记本计算机、平板计算机、个人数字助理、 数字媒体接收机(例如,Apple TV )、数码相框、蜂窝电话、或便携式导航系统。打印机106 一般可以包括能够将文本数据或图像打印到某些类型的打印介质(例如,纸或相片介质) 上的任何设备或系统。例如,打印机106可以包括独立的打印机或者另选地包括打印系统, 其中打印系统包括耦接到一个或多个打印机的打印服务器。计算设备102通过网络104耦接到打印机106。网络104 —般可以包括能够将网络节点耦接在一起的任何类型的通信通道。例如,网络104可以包括无线网络连接,例如 Bluetooth (蓝牙) 网络连接;蜂窝网络连接(例如,3G/4G网络或Edge网络);基于在电气与电子工程师协会(IEEE)802. 11中描述的标准的网络连接;无线个人区域网(PAN)连接,例如基于IEEE 802. 15中描述的标准的网络连接;或任何对等(无线或有线)网络技术。网络104还可包括有线网络连接,例如基于IEEE 802. 3中描述的标准的网络连接。在打印处理中,计算设备102初始通过下面将更详细地描述的发现协议与打印机 106进行联系。接下来,在打印机106被识别和选择之后,有可以若干种可以完成打印的方式。如果计算设备102具有打印机106的驱动程序,或者如果打印机106支持无驱动的打印,则计算设备102可以使用该驱动程序或无驱动打印协议来生成用于打印作业的打印机数据。打印机数据然后可通过网络104被发送给打印机106。下面更详细地描述该处理。 (注意,术语“无驱动打印”指的是在计算设备上无需特定于打印机的软件或特定于打印机的配置而工作的打印技术。)
打印部件图2示出根据所公开的实施例,在执行打印操作时涉及的部件。参考图2,计算设备102包括需要执行打印操作的应用202。例如,应用202可以包括允许用户打印特定文件的打印实用程序。可替换地,应用202可以包括定期需要执行打印操作的任何类型的通用或专用的基于计算机的应用,例如字处理程序。应用202向API 203进行调用,API 203提供便于访问许多部件的架构,这些部件包括发现部件204、页面描述语言部件205和网络打印部件206。在操作过程中,应用202使用实施发现协议(例如,Bonjour )的发现部件204,来识别可用的打印机以及便于选择所识别的打印机之一。注意,发现部件204与打印机106 中相对应的发现部件212通信(以虚线230示出)。接下来,在选择了打印机106之后,应用202使用页面描述语言部件205来呈现(render)打印作业以产生相对应的打印机数据 208。打印机数据208然后被发送给网络打印部件206,网络打印部件206实施用于远程打印的网络协议,例如互联网打印协议(IPP)。网络打印部件206将打印机数据208传送给打印机106中相对应的网络打印部件214(以虚线232示出)。如上所述,打印机106包含发现部件212和网络打印部件214。此外,打印机106 包括支持使用例如JPEG (联合图像专家组)标准216、PDF (便携式文档格式)标准217和 RF(光栅格式(Raster Format))标准218进行打印的部件。这些部件通过打印控制器219 发送数据到打印机106中的打印头220,从而打印控制器219可以转换该数据,并且打印头 220可以将转换后的数据打印到某种类型的打印介质(例如,纸)上。打印处理图3给出一个流程图,其示出根据所公开的实施例的打印处理。首先,系统使用发现协议(例如,Bonjour 协议)来识别可以由计算设备102访问的打印机(步骤302)。如上所述,该发现协议还从打印机获得性能信息。接下来,系统向用户(或应用)给出可用打印机的列表,并且允许该用户(或该应用)选择所识别的打印机之一(步骤304)。接下来,系统检查所选择的打印机的互操作性(步骤306)。例如,系统可以从该打印机获得指出该打印机支持JPEG、PDF和RF的信息,在这种情况下系统可以使用任何所支持的格式。另一方面,如果该信息指出打印机只能支持RF,则系统使用RF来向该打印机发送数据。接下来,系统具有若干选项。如果所选择的打印机支持无驱动打印,则系统可以从所选择的打印机获得打印机性能信息,并且可以基于所获得的打印机性能信息生成用于该打印机的打印机数据。接下来,系统可以向所选择的打印机发送所生成的打印机数据(步骤308)。如上所述,该性能信息可以在发现协议的询问过程中或者在随后的网络打印协议询问过程中从所选择的打印机获得。另一方面,如果移动设备包含用于所选择的打印机的特定驱动程序,则系统可以使用该特定驱动程序来生成和发送打印机数据到所选择的打印机(步骤310)。系统可以可替换地发送打印作业到包括一个或多个提供打印服务的服务器的云(cloud)。这使得该云能够生成用于所选择的打印机的打印机数据(步骤312)。通常,系统可以基于若干因素(例如,功耗和/或计算负载),在无驱动打印、云打印、和使用本地驱动程序当中进行选择。在一个实施例中,如果可能的话,系统使用无驱动打印,而如果不支持无驱动打印,则系统使用用于该打印机的本地驱动程序。最后,如果不支持这样的本地驱动程序,则系统使用云来生成打印机数据。打印机件能信息如上所述,打印机性能信息可以在发现协议(Bonjour )的询问过程中或者在随后的网络打印协议(IPP)询问过程中从所选择的打印机获得。更具体地,在发现协议过程中,所选择的打印机可以返回特定于打印机的、规定所选择的打印机可以接受什么类型的数据的信息和规定所选择的打印机的性能的信息。而且,该特定于打印机的信息使得计算机设备能够生成用于所选择的打印机的打印机数据,而无需计算机维护用于所选择的打印机的特定于打印机的软件或特定于打印机的配置信息。一旦移动设备实际上通过IPP在与打印机通信,IPP协议就可以提供相同的特定于打印机的信息。(这避免了必须高速缓存发现协议和网络打印协议之间的信息。)该打印机性能信息可以规定打印介质的属性,例如介质尺寸、类型(例如,纸或者相片介质)和页边距。该打印机性能信息还可规定修整(finishing)属性,例如关于装订、 穿孔和目录单的属性。打印机性能信息此外还可以规定关于打印机特征的信息,例如它是否可以两面印刷(双面)、使用哪个输出位、以及使用哪个介质来源(托盘)。打印机性能属性还可规定关于文件的属性,例如打印机所支持的文件大小、打印机所支持的文件格式版本、以及打印机所支持的文件格式扩展名。打印机性能信息还可规定各种打印机性能,例如打印机所支持的色彩空间、打印机所支持的位深度、以及打印机所支持的分辨率。打印机性能信息此外还可以规定从打印机获得的当前状态信息。例如,该当前状态信息可以规定打印机是否离线;打印机是否正忙;或打印机中是否存在错误状况。当用户正在选择可用的打印机时,该当前状态信息可以被提供给用户。无驱动的打印图4给出一个流程图,其示出根据所公开的实施例的无驱动打印处理。(该流程图示出在图3的步骤308中进行的无驱动打印处理中发生的操作的一部分。)首先,系统获得所选择的打印机的性能信息(步骤402)。如上所述,该性能信息可以在作为初始的发现协议的一部分的询问过程中或者在随后的IPP询问过程中从所选择的打印机获得。接下来, 系统排队等候所选择的打印机(步骤404)并且允许用户(或应用)为打印作业选择具体的介质类型(步骤406)。系统然后基于所获得的性能信息生成用于所选择的打印机的打印机数据(步骤 408)。接下来,系统向所选择的打印机发送该打印机数据(步骤410)。最后,系统接收所选择的打印机的状态信息,其指出打印机数据是否被成功地打印(步骤412)。在打印机侧的打印处理图5给出一个流程图,其示出根据所公开的实施例的从打印机角度而言的打印处理。首先,打印机使用打印机中的发现部件来与客户端通信,以便于客户端选择打印机。在发现处理中,发现部件可以向客户端提供该打印机的性能信息(步骤50 。接下来,打印机使用打印机中的传输部件从客户端接收打印机数据。在该处理中,传输部件还可向客户端提供该打印机的性能信息(步骤504)。最后,打印机可以使用打印机中的页面描述语言部件来打印从客户端接收到的打印机数据(步骤506)。优选的文档格式为了便于无驱动打印,某些所公开的实施例向互联网打印协议(IPP)标准增加了新的关键字。特别地,某些实施例包括新的优选文档格式的关键字(作为MIME媒体类型), 其使得打印机能够从该打印机所支持的所有文档格式中规定“优选的”文档格式。该优选的文档格式可用于提高性能。例如,优选的文档格式可以比打印机所支持的其它文档格式更高效地打印。注意,IPP标准已经提供了支持文档格式的关键字,其规定打印机所支持的具体文档格式。然而,现有的IPP标准不提供任何方式来指示所支持的文档格式中哪种为优选的。支持URF的关键字某些实施例还向发现协议和传输协议增加了新的“支持URF的关键字”。更具体地,某些实施例向发现协议增加了新的支持URF的关键字作为Bonjour TXT记录的一部分,还向传输协议增加了类似的支持URF的关键字作为一种新的用于IPP协议的打印机描述属性。该支持URF的关键字规定打印机所支持的标准化的一组性能,其使得客户端能够生成针对该客户端的打印机数据,而无需客户端维护用于所选择的打印机的特定于打印机的软件或者特定于打印机的配置信息。标准化的这组性能被选择为使得客户能够生成用于任何类型的打印机的打印机数据。在一个实施例中,标准化的这组性能包括也出现在图6中的支持URF的关键字600 的图表中的以下内容(1)打印机所支持的色彩空间;(2)打印机所支持的针对特定色彩空间的位深度;(3)打印机所支持的最大拷贝数;(4)打印机是否支持双面打印;(5)打印机所支持的特定修整(例如,装订、折叠、穿孔);(6)打印机所支持的输入槽(input slot);(7)面朝上/面朝下的输入朝向;(8)打印机所支持的介质类型(例如,普通纸、亮光纸);(9)打印机所支持的输出盒;(10)面朝上/面朝下的输出朝向;(11)支持的打印质量;以及(12)支持的分辨率。在另外的实施例中,支持URF的关键字可以包括这些性能的子集。独立于设备的位图容器某些实施例支持一种新的用于打印机数据的独立于设备的位图容器。例如,独立于设备的位图容器可以被实现为多目的网络邮件扩充(MIME)子类型。这种新的独立于设备的位图容器包括文件头、以及至少一组页面头(page header)和页面位图。在一个实施例中,页面头可以具有为要由打印机打印的页面规定以下属性的预定格式。(这些属性也出现在图7中示出的独立于设备的位图容器700中。)(1)位深度;(2)色彩空间;(3)双面模式;
(4)打印质量;(5)介质类型;(6)输入槽;(7)输出盒;(8)拷贝数目;(9) 一个或多个修整;(10)宽度;(11)高度;和(12)分辨率。在可替换实施例中,页面头可以具有规定这些属性的子集的预定格式。jML在某些实施例中,系统可以执行优化以提升速度、提高打印质量和节省电池电力。 这可以通过为打印机数据选择减少生成打印机数据时涉及的计算操作数量的文件类型、从而提高速度且减小计算设备所耗费的功率量来实现。例如,如果打印机支持PDF并且计算设备正在打印PDF文件,则代替将PDF文件转换成光栅数据并将光栅数据发送到打印机,将 PDF文件发送到打印机使用少得多的电池电力并且更快。(注意,通过节省计算操作和计算时间,系统腾出资源和时间以执行其它操作,例如,以提高打印质量。)同样,在云将生成的打印机数据返回到计算设备的情况中,系统可以选择减小打印机数据文件大小的文件格式。这减少了将打印机数据转发到打印机所需的数据传送操作数,从而提高了速度以及减小了计算设备耗费的功率量。在另一个示例中,系统可以通过基于与云往返传递数据所耗费的功率是否会被将与打印机有关的呈现(rendering)操作转移到云所节省的功率所抵消,来在无驱动打印和云打印之间进行选择,从而节省功率。通过使用云,耗费功率的计算操作可以从移动设备 (其使用电池电力运行)转移到云中的服务器(其使用插座电力(wall power)运行),这有可能节省大量的电池电力。缺陷解决方案在有些情况下,打印机制造商可能试图实现遵循无驱动打印机规范的打印机,但是这种实现可能具有一个或多个缺陷(bug)。在这种情况下,系统可以维护包含针对具体打印机型号的这样的已知缺陷的数据库。在打印操作过程中,系统可以首先在数据库中执行查找,如果存在针对打印机的一个或多个已知缺陷,则系统可以调整如何生成打印机数据以补偿这些已知缺陷。应用编程接口一个或多个应用编程接口(API)可以用于某些实施例。API是由程序代码部件 (以下称为“API实现部件”)实现的接口,其允许另一程序代码部件(以下称为“API调用部件”)访问和使用由API实现部件提供的一个或多个函数、方法、程序、数据结构、类别、和 /或其它服务。API可以定义在API调用部件和API实现部件之间传递的一个或多个参数。API允许API调用部件的开发者(其可以是第三方开发者)利用由API实现部件提供的规定特征。可能有一个API调用部件,或者可能有多于一个这样的部件。API可以是计算机系统或程序库为了支持来自应用的服务请求而提供的源代码接口。API可以用可在构建应用时被解释或编译的编程语言来规定。在某些实施例中,API实现部件可以提供多于一个API,每个API提供API实现部件所实现的功能的不同方面的一个不同视图或是访问这些不同方面。在其它实施例中,API 实现部件本身可以经由下层API调用一个或多个其它部件,从而既是API调用部件,也是 API实现部件。API定义API调用部件在访问和使用API实现部件的规定特征时所使用的语言和参数。例如,API调用部件通过由API暴露的一个或多个API调用或启用(例如,体现为函数或方法调用)来访问API实现部件的规定特征,并经由所述API调用或启用使用参数来传递数据和控制信息。API实现部件可以响应于来自API调用部件的API调用,通过API返回值。虽然API定义API调用的语法和结果(例如,如何启用API调用以及API调用做什么),但是API可以不揭示API调用如何实现由API调用规定的函数。各种API调用经由一个或多个应用编程接口在调用(API调用部件)和API实现部件之间被传递。传递API调用可以包括发布、启动、启用、调用、接收、返回、或响应函数调用或消息。函数调用或其它API 启用可以通过参数列表或其它结构发送或接收一个或多个参数。参数可以是常量、关键字、 数据结构、对象、对象类别、变量、数据类型、指针、数组、列表、或指向函数或方法的指针,或另一种引用要经由API传递的数据或其它项的方式。而且,数据类型或类别可以由API提供并且由API实现部件实现。从而,API调用部件可以通过使用API中提供的定义来声明这样的类型或类别的变量,使用指向其的指针,使用或实例化其常量值。一般,API可用于访问由API实现部件提供的服务或数据,或者启动由API实现部件提供的操作或计算的执行。举例而言,API实现部件和API调用部件可以是操作系统、库、 设备驱动程序、API、应用程序、或其它模块(应当理解,API实现部件和API调用部件可以是彼此相同或不同类型的模块)。API实现部件在有些情况下可以至少部分地体现为固件、 微代码、或其它硬件逻辑。在某些实施例中,API可以允许客户端程序使用由软件开发工具包(SDK)库提供的服务。在其它实施例中,应用或其它客户端程序可以使用由应用架构提供的API。在这些实施例中,应用或客户端程序可以将调用结合到由SDK提供的以及由API 提供的函数或方法中,或使用SDK中定义的和由API提供的数据类型或对象。应用架构在这些实施例中可以为响应由所述架构定义的各种事件的程序提供主事件循环。API允许应用利用所述应用架构规定事件以及对事件的响应。在某些实施方式中,API调用可以向应用报告硬件设备的性能或状态,包括关于诸如输入性能和状态、输出性能和状态、处理性能、 电力状态、存储容量和状态、通信性能等方面的性能或状态,并且API可以部分地由固件、 微代码、或部分在硬件部件上执行的其它低级逻辑来实现。API调用部件可以是本地部件(S卩,与API实现部件在相同的数据处理系统上)或在网络上通过API与API实现部件通信的远程部件(S卩,与API实现部件在不同的数据处理系统上)。应当理解,API实现部件也可以用作API调用部件(即,它可以向由另一 API 实现部件暴露的API进行API调用),并且API调用部件也可以通过实现暴露给另一 API调用部件的API而用作API实现部件。API可以允许以不同编程语言写成的多个API调用部件与API实现部件通信(从而,API可以包括用于转换API实现部件和API调用部件之间的调用和返回的特征);然而, API也可以由特定编程语言实现。图8是示出示例性API体系结构的框图,其可以用于本发明的某些实施例。如图 8所示,API体系结构800包括实施API 820的API实现部件810 (例如,操作系统、库、设备驱动程序、API、应用程序、或其它模块)。API 820规定可以由API调用部件830使用的一个或多个函数、方法、类别、对象、协议、数据结构、格式、和/或API实现部件的其它特征。 API 820可以规定至少一个调用约定,其规定API实现部件中的函数如何从API调用部件接收参数,以及该函数如何返回结果到API调用部件。API调用部件830(例如,操作系统、 库、设备驱动程序、API、应用程序、或其它模块)通过API 820进行API调用,以访问和使用 API实现部件810中由API 820规定的特征。API实现部件810可以响应于API调用,通过 API 820向API调用部件830返回值。将理解,API实现部件810可以包括未通过API 820规定且对于API调用部件830 不可用的另外的函数、方法、类别、数据结构、和/或其它特征。应当理解,API调用部件830 可以与AP1实现部件810位于相同系统上,或者可以远离API实现部件810设置并且在网络上利用API820访问API实现部件810。虽然图8示出单个API调用部件830与API820 交互,但是应当理解,其它API调用部件(其可能是以与API调用部件830不同的语言(或相同的语言)写成的)也可以使用API 820。API实现部件810、API 820、和API调用部件830可以存储在机器可读介质中,机器可读介质包括用于以机器可读形式存储信息的任何机构(例如,计算机或其它数据处理系统)。例如,机器可读介质包括磁盘、光盘、随机存取存储器、只读存储器、闪存器件,等等。在图9( “软件栈”)的示例性实施例中,应用可以利用服务API向服务A或B进行调用,以及利用OS API向操作系统(OS)进行调用。服务A和B可以利用OS API向OS进行调用。给出了以上对实施例的描述仅仅是出于例示和描述的目的。它们不旨在穷举或将本说明书限制到所公开的形式。因此,许多修改和变化对于本领域技术人员将是显然的。此外,上述公开不旨在限制本说明书。本说明书的范围由所附的权利要求限定。相关申请本申请基于35U. S.C. §119要求2010年2月9日提交的、由与本申请相同的发明人作出的题为“Walk-Up Printing without Drivers”的美国临时专利申请 No. 61/302,916(代理卷号吣.4 1^- 8977旧?1)的优先权。本申请还基于!35U. S. C. § 119 要求2010年6月4日提交的、由与本申请相同的发明人作出的题为“Walk-Up Printing without Drivers” 的美国临时专利申请 No. 61/351, 461 (代理卷号 No. APL-P8977USP2) 的优先权。本申请还基于35U.S.C. §119要求2010年8月31日提交的、由与本申请相同的发明人作出的题为“Walk-UpPrinting without Drivers”的美国临时专利申请 No. 61/378,832(代理卷号吣.六 1^- 8977旧?3)的优先权。本申请还基于!35U. S. C. § 119 要求2010年2月9日提交的、由与本申请相同的发明人作出的题为“Framework that Supports Driverless Printing” 的美国临时专利申请 No. 61/302,922 (代理卷号 No. APL-P9004USP1)的优先权。本申请还基于!35U. S. C. § 119要求2010年6月4日提交的、由与本申请相同的发明人作出的题为“Framework that Supports DriverlessPrinting”的美国临时专利申请No. 61/351, 466 (代理卷号No. APL-P9004USP2)的优先权。本申请还基于35U. S.C. § 119要求2010年6月M日提交的、由与本申请相同的发明人作出的题为“Framework that Supports Driverless Printing”的美国临时专利申请No. 61/358,306 (代理卷号No. APL-P9004USP3)的优先权。本申请还基于35U. S. C. § 119要求2010年8月31日提交的、由与本申请相同的发明人作出的题为“Framework that Supports Driverless Printing” 的美国临时专利申请 No. 61/378,827 (代理卷号 No. APL-P9004USP4)的优先权。 本申请涉及与本申请同日提交的、由与本申请相同的发明人作出的题为“Walk-Up Printing without Drivers"的未决美国专利申请(尚未分配申请号)(代理卷号 NO.APL-P8977US1)。本申请还涉及与本申请同日提交的、由与本申请相同的发明人作出的题为“Printer that Supports Driverless Printing”的未决美国专利申请(尚未分配申请号)(代理卷号No.APL-P9004US》。本申请还涉及与本申请同日提交的、由与本申请相同的发明人作出的题为“Framework that Supports Driverless Printing”的未决美国专利申请(尚未分配申请号)(代理卷号No. APL-P9004US1)。
权利要求
1.一种便于进行无驱动打印的系统,包括打印机侧的部件,被配置成向客户端传送数据结构,其中该数据结构规定打印机所支持的以下性能 分辨率; 色彩空间; 位深度; 输入槽;面朝上/面朝下的输入朝向; 输出盒;面朝上/面朝下的输出朝向; 双面打印支持; 介质类型; 拷贝支持; 支持的修整;和打印质量;其中该数据结构使得客户端能够生成用于打印机的打印机数据,而无需该客户端维护用于该打印机的特定于打印机的软件或者特定于打印机的配置信息。
2.如权利要求1所述的系统,其中该打印机侧的部件被配置成在发现协议过程中向客户端发送所述数据结构;并且其中该发现协议使得客户端能够发现所述打印机。
3.如权利要求2所述的系统, 其中该发现协议是Bonjour ;并且其中该数据结构是在Bonjour TXT记录中实现的。
4.如权利要求1所述的系统,其中该打印机侧的部件被配置成在传输协议过程中向客户端发送所述数据结构;并且其中该传输协议使得客户端能够向打印机发送打印机数据。
5.如权利要求4所述的系统,其中该传输协议是互联网打印协议IPP ;并且其中该数据结构被实现为规定IPP打印机描述属性的关键字。
6.一种便于进行无驱动打印的系统,包括打印机侧的部件,被配置成向客户端传送数据结构,其中该数据结构规定针对打印机的优选的文档格式;其中该数据结构能够从该打印机传送到客户端,以使得客户端能够以该优选的文档格式生成用于该打印机的打印机数据;并且其中该优选的文档格式比该打印机支持的其它文档格式更高效地打印。
7.如权利要求6所述的系统,其中该打印机侧的部件被配置成在传输协议过程中向客户端发送所述数据结构;并且其中该传输协议使得客户端能够向打印机发送打印机数据。
8.如权利要求7所述的系统,其中该传输协议是互联网打印协议IPP ;并且其中该数据结构被实现为规定IPP打印机描述属性的关键字。
9.一种便于进行无驱动打印的系统,包括打印机侧的部件,被配置成接收来自客户端的数据结构,其中该数据结构实现用于打印机数据的独立于设备的位图容器;其中该独立于设备的位图容器包括至少一个具有预定格式的页面头,所述预定格式针对要由打印机打印的页面规定以下属性, 位深度; 色彩空间; 双面模式; 打印质量; 介质类型; 输入槽; 输出盒; 拷贝数目; 一个或多个修整; 宽度; 高度;和分辨率;并且其中该预定格式为客户端提供一种独立于设备的、向打印机传送打印机属性的方式, 这使得该客户端能够打印到该打印机,而无需该客户端维护用于该打印机的特定于打印机的软件或者特定于打印机的配置信息。
10.如权利要求9所述的系统,其中该独立于设备的位图容器被实现为多目的网络邮件扩充子类型。
11.一种便于进行无驱动打印的系统,包括客户端侧的部件,被配置成接收来自打印机的数据结构,其中该数据结构规定打印机所支持的以下性能 分辨率; 色彩空间; 位深度; 输入槽;面朝上/面朝下的输入朝向; 输出盒;面朝上/面朝下的输出朝向; 双面打印支持; 介质类型; 拷贝支持; 支持的修整;和打印质量;其中该数据结构使得客户端能够生成用于打印机的打印机数据,而无需该客户端维护用于该打印机的特定于打印机的软件或者特定于打印机的配置信息。
12.一种便于进行无驱动打印的系统,包括客户端侧的部件,被配置成接收来自打印机的数据结构,其中该数据结构规定针对该打印机的优选的文档格式;其中该数据结构使得客户端能够以该优选的文档格式生成用于该打印机的打印机数据;并且其中该优选的文档格式比该打印机支持的其它文档格式更高效地打印。
13.一种便于进行无驱动打印的系统,包括客户端侧的部件,被配置成向打印机发送数据结构,其中该数据结构实现用于打印机数据的独立于设备的位图容器;其中该独立于设备的位图容器包括至少一个具有预定格式的页面头,所述预定格式针对要由打印机打印的页面规定以下属性, 位深度; 色彩空间; 双面模式; 打印质量; 介质类型; 输入槽; 输出盒; 拷贝数目; 一个或多个修整; 宽度; 高度;和分辨率;并且其中该预定格式为客户端提供一种独立于设备的、向打印机传送打印机属性的方式, 这使得该客户端能够打印到该打印机,而无需该客户端维护用于该打印机的特定于打印机的软件或者特定于打印机的配置信息。
全文摘要
所公开的实施例涉及一种便于进行无驱动打印的系统。更具体地,所公开的实施例涉及一种存储便于进行无驱动打印的数据结构的计算机可读存储介质,其中该数据结构规定打印机所支持的下列性能分辨率;色彩空间;位深度;输入槽;面朝上/面朝下的输入朝向;输出盒;面朝上/面朝下的输出朝向;双面打印支持;介质类型;拷贝支持;支持的修整;以及打印质量。注意,该数据结构使得客户端能够生成用于打印机的打印机数据,而无需客户端维护用于该打印机的特定于打印机的软件或特定于打印机的配置信息。
文档编号G06F3/12GK102189848SQ201110034709
公开日2011年9月21日 申请日期2011年2月9日 优先权日2010年2月9日
发明者H·米勒, M·R·斯威特 申请人:苹果公司