用于为打印作业数据提供索引数据的方法和系统的制作方法

文档序号:6554344阅读:146来源:国知局
专利名称:用于为打印作业数据提供索引数据的方法和系统的制作方法
技术领域
本发明涉及打印方法和系统。
背景技术
打印服务器一般接收打印作业和将这些作业发送给打印机以供打印。打印机理解描述如何可生成对设备的输出的页面描述语言(PDL)。存在多种不同的PDL,包括Post Script、PDF和PCL的多个变体。
另外,也存在诸如EMF(增强元文件)和Metro等其它页面描述语言,Metro是Avalon图形原语的持久形式。EMF和Metro被称为中间页面描述语言。该中间格式可由驱动器解析,且被转换成用于特定设备的PDL。该过程被称为呈现,而所产生的输出被称为呈现的打印流。
在打印服务器上的呈现有众多缺点。例如,呈现是处理器密集型和存储器密集型的。因此,在打印服务器上的呈现可降低服务器的性能。另外,大多数打印设备是输入/输出绑定的,因为它们自然地受到设备可输出页面的速率的抑制。
因此,随时间推移,形成这样一种认识,将处理器和存储器密集型操作移至客户机端将缓和某些性能问题和与在打印服务器上执行这些活动相关联的问题。从而,客户机可预呈现和预光栅化打印作业数据,使得服务器不必这样做。
然而,将预光栅化的数据发送给打印服务器可产生开销。例如,在出错的情况下,整个作业一般必须从头重新开始。这是因为服务器一般仅可将出错条件与数据流中的近似字节偏移量相关,而不能使出错条件与特定页面相关,也不能在重新开始之后跳至打印作业中的特定页面。另外,几乎不可能任意地跳至数据流中的一字节位置,因为跳过的字节可含有将打印机置于打印后续字节所需的特定状态的打印机命令。因此,如果该作业在100页的文档的第99页上失败,那么所有100页都需要被再次发送。
在任意字节位置处作业的异常中止产生类似的问题。尤其是在某些控制码可能已经改变打印机的状态时。由于改变的状态,后续的排列良好的作业可能不能被正确解释。例如,控制码可将打印机置于将后续数据解释为不可预测数量的字节的位图的模式中。如果与该控制码相关联的打印作业被任意地异常中止,那么后续打印作业可含有被错误地解释为位图的不定数量的字节。在这种情形中,服务器无法了解如何使得打印机返回到适当的状态。
从而,本发明源于与提供以向打印服务器提供可期望的灵活性程度的方式有效地利用打印服务器资源的方法和系统相关联的问题。

发明内容
各种实施例开发(和消费)描述打印作业数据的某些特征的元数据和预光栅化打印作业数据。可从客户机设备将该元数据以及预光栅化数据提供给打印服务器,且该元数据可允许打印服务器确定打印作业数据的性质或上下文。在某些实施例中,元数据可描述诸如页面边界和状态转移数据等内容。通过确定打印作业数据的性质或上下文,打印服务器能够智能地对该信息进行操作,且在至少某些实施例中,实现除非预光栅化数据被发送给打印服务器否则不可能的附加打印服务器特征。


图1示出了根据一个实施例,含有打印作业部分和元数据部分的文档的示例性表示。
图2示出了根据一个实施例的客户机设备的示例性组件。
图3示出了根据一个实施例的打印服务器的示例性组件。
图4是描述根据一个实施例的方法中的步骤的流程图。
图5示出了含有在图2的客户机设备和图3的打印服务器中均可使用来实现各种实施例的组件的示例性计算设备。
具体实施例方式
概观以下描述的各个实施例开发描述打印作业数据的某些特征的元数据和呈现的打印作业数据。在本文档的上下文中,“呈现”数据可包含包括但不限于一个或多个向量部分或光栅部分的数据。该元数据以及呈现数据可以由客户机设备向打印服务器提供,且可允许打印服务器确定打印作业数据的性质或上下文。在某些实施例中,元数据可描述诸如页面边界和状态转移数据等内容。通过确定打印作业数据的性质或上下文,打印服务器能对该信息智能地操作,且至少在某些实施例中,实现除非将呈现数据发送给打印服务器否则不可能的附加打印服务器特性。
例如,打印服务器使用元数据以理解打印作业数据的上下文,可确保全体页面都被发送给打印机。例如,在机器休眠过程中,系统可确保在休眠前将整个页面输出给打印机。另外,打印服务器可确保打印机在终止作业之前返回至适当的状态。例如,如果用户重新开始一个作业,那么系统可确保发送正确的控制码以使打印机从例如期望打印流包含位图的状态中返回。另外,在服务器需要关机或设备出错的情况中,打印机服务器可从给定页面重新开始打印作业。此外,打印服务器可在逐页基础上产生输出以允许诸如检查打印等可靠情形。
关于PDL的某些假设以下所述的各个实施例是在关于用于或可用于本发明实施例的PDL的若干假设的基础上构建的。
首先,假设PDL实现改变或转移打印机状态但不产生任何输出的良好定义的数据块。作为示例而非限制,某些示例性转移包括字体下载、模式改变(诸如从文本编码转换成光栅编码、图形属性状态改变(例如,画刷、画笔等)和代码页和字符设置模式改变)、过程声明(诸如由PostScript所使用的)、上下文栈操作(诸如由PostScript所使用的)、仿射变换、图象流定义、宏定义等。
其它的假设是,这些模式改变中的至少某些保持对某些数量的字节起效,然后返回至前一模式,而其它模式改变通过在流中的给定点处发送适当数据来反转。
又一假设是,PDL含有使得打印机产生输出的数据序列。由此,解码数据的方式取决于之前的状态转移。例如,字符序列的输出将取决于所下载的字体。作为另一示例,对PostScript命令序列的解释将取决于已定义的过程声明。
此外,另一假设是,使打印机产生输出的数据块中的某一些必须作为不可中断的块来发送。例如,如果位图被下载至打印机,则给定块的所有数据将被解释为位图数据,且该序列不能转义。
而且,关于在产生PDL过程中的打印机驱动器的假设如下。该驱动器必须准确地跟踪打印机的状态以产生输出。因此,打印机必须了解(至少大体上)之前的状态转移序列中的哪一个与当前输出相关。
示例性实施例图1在100处概括地示出包含打印作业部分102和元数据部分104的文档的示例性表示。
在该示例中,打印作业部分102包含字节的顺序序列形式的呈现数据,元数据部分104包含提供对打印作业部分的索引的索引流。在该特定示例中,打印作业部分102被置于未变状态中。即,打印作业部分包含原始的预光栅化数据。本领域的技术人员可以理解,这样做的一个原因是,这允许预光栅化的数据以非常方便的方式来处理。尤其是在至少某些操作系统中,打印作业流中的每一序列可以是被映射至存储器的存储器,然后被写出至内核,而无需将数据复制至进程空间。
在本示例中,该索引流描述状态转移、不可中断和可中断的数据块部分和页面编号。
可以理解和领会,尽管元数据部分104被示为分开的流时,但不必如此。例如,元数据部分可与打印作业部分的部分交叉,或构成打印作业部分的一部分。
打印作业部分的组成部分在示出和描述的实施例中,打印作业部分102包含无差别的字节序列,且如图1中的图例所示,包含以下逻辑块。状态改变块是导致打印机如上所述改变状态的字节序列。数据块是可中断块且可接收终止该块的一组控制字符。不可中断数据块是在数据流内不可转义的数据的块(例如,以PCL编写的位图组成不可中断的数据块)。
当打印作业部分被发送给打印服务器时,它导致文档被输出至打印机。
元数据部分的组成部分在示出和描述的实施例中,元数据部分104为打印作业部分的结构提供文档并提供对打印作业部分的索引。如图1的图例所示,在该示例中,元数据部分104包含索引流,且包含块序列。在一个实施例中,索引流可由用于快速索引页面的查找表终止。索引流组成在至少某些实施例中独立于它所引用的PDL的良好定义的格式。在示出和描述的实施例中,索引流使用位置和范围的概念以指定打印作业部分的各个块,来引用打印作业部分的块。因此,使用块的位置,可确定块的正确位置或起始点。使用相关联的范围(诸如相对于特定位置的字节数),可以确定特定块的范围。
在示出和描述的实施例中,构成索引流的块如下页面编号块是引用进入正确状态以允许页面由打印机解释所需的所有块的块。该块标识页面数据引用块的哪些部分是不可中断的。此外,该块引用必须发送以使打印机返回至正常状态的块。在至少某些实施例中,系统在接收到输出页面以及使打印机返回至正常状态所必须的所有块之前不会开始输出页面。
依赖状态块引用块是引用打印作业部分102中可能不连续的状态块的序列的块。以上提供各种状态的示例。可以理解和领会,在至少某些实施例中,打印作业部分中不必将块标识为状态转移块(或就这点而言的任何其它类型的块)。打印作业部分中的块的类型是依靠由依赖状态块引用块所提供的引用来了解的。
可中断数据块引用块是引用打印作业部分中的数据块且指示如果紧随该可中断数据块的块被发送给打印机则该块将被正确解释的块。即,由可中断数据块引用块所引用的块可转义,而不会损害紧随其后的块。可中断数据块引用块之后的下一块可能是状态转移块。
不可中断数据块引用块是标识打印作业部分中的不可中断数据块的块。即,不可中断数据块必须尽可能地完整地发送给打印机。如果数据在块中跳至随后的块,那么输出是无意义的。这些类型的引用块一般可用于标识不能在块中转义的封装的数据块(诸如位图)。这些类型的块也可用于标识转义。
返回状态块引用块标识打印作业部分中的哪个或哪些块需要被发送给打印机以使打印机返回至特定状态。
关闭状态序列块包含用于在与打印作业部分102相关联的文档的打印完成之后关闭打印机的状态的数据。在索引流中并入关闭状态序列块有助于解决与打印作业部分102相关联的排序问题。具体地,考虑以下。想象打印作业部分102的原始流在其开始处包括持续直至文档结尾处的状态改变。在打印作业部分102的结尾处,提供关闭状态序列块以关闭该状态。在打印作业部分102中该关闭状态序列块的唯一位置是在该打印作业部分结尾处。为性能和简洁起见,在众多系统中,打印服务器在接收到其所有块及其返回状态块之前将不会开始将页面发送给打印机。因为除了打印作业部分的结尾处以外,返回状态序列无法插入至打印作业部分的其它位置,一种解决方案是,如果必须,将关闭状态序列插入至索引流中,然后允许索引流的返回状态块引用块引用打印作业部分中的一个块(如图1的索引流的最后一块),或者更一般地,引用索引流中的一个块(如页面0和1的返回状态块所为)。
使用打印作业部分102和元数据部分104,打印系统中的组件可处理打印作业部分中的任意页面、从文档中的任意中断点恢复、并可确保当前的不可中断块总是被处理完成。从而,打印系统一般可保证使打印机返回至它可在任何点接收新作业的状态。
生成打印作业和元数据部分的示例性系统图2示出了可用于产生上述打印作业部分和元数据部分的客户机设备200的一个实施例的示例性组件。
在该示例中,客户机设备200包括,可接收与打印作业相关联的中间格式数据的某种类型的计算机可读介质202,以及其它组件。流水线管理器204管理处理该中间格式数据的组件的流水线。在该示例中,组件流水线包括含有多个过滤器的过滤器组合装置206,以及驱动器208。在该示例中,驱动器208被配置成将中间格式数据处理成呈现打印作业部分和元数据部分。本领域的技术人员可以理解,由于驱动器就能够在呈现状态转换中间格式的程度上了解该中间格式的结构和处理要求,如果该驱动器也了解元数据部分的组成部分,那么该驱动器在将该中间格式处理成其呈现格式时,可合适地构建该元数据。
输出作业过滤器210然后可以接收打印作业和元数据部分两者,并合适地打包数据用于发送给打印服务器。
或者,在驱动器没有被配置成产生元数据部分的情况中,可在驱动器与输出作业过滤器之间插入解释器组件。在该情况下,驱动器可将中间格式处理成呈现数据,并将该数据提供给解释器组件。该解释器组件又可处理该呈现数据以提供除呈现数据以外的元数据部分,呈现数据和元数据部分然后均可被转送给输出作业过滤器。该特定实施例可在未被配置成产生元数据部分的传统驱动器的环境中使用。此外,该实施例为不希望生产支持元数据部分的产生的驱动器的独立硬件供应商(IHV)提供了灵活性。
消费打印作业和元数据部分的示例性系统图3示出了可用于消费上述打印作业部分和元数据部分的打印服务器300的一个实施例的示例性组件。
在该实施例中,客户机设备300包括接收器组件302、输入设备适配器304、协议适配器、流水线管理器308、调度器310和一个或多个逻辑作业对象312以及其它组件。
在该特定实施例中,输入设备适配器304被配置成理解它所接收的元数据部分或索引流。以这种方式,该系统的其它组件不必涉及元数据部分。
在操作中,接收器组件302从客户机设备接收打印作业,包括呈现数据和索引流,并将该作业的各个部分写出至磁盘。此处,接收器组件将打印作业部分(即,呈现数据)和元数据部分(即,索引流)写出至磁盘。结合从客户机接收打印作业,该接收器组件例示用于组织和维护贯穿打印服务器对打印作业进行的处理的该打印作业的状态的逻辑作业对象312。
输入设备适配器304接收打印作业部分和元数据部分两者,并如上所述,被配置成理解元数据部分。当准备好打印打印作业时,调度器310例示流水线/流水线管理器308,后者又管理相关联文档的打印。
输入设备适配器304然后将打印作业部分传输给负责将打印数据传输给打印机的协议适配器306。输入设备适配器304解释该索引流,且仅当页面的所有数据可用时发送该页面。因此,它监视索引流,以确保在将特定页面的相关联页面数据发送给协议适配器306之前,该页面的所有数据可用。协议适配器306负责从输入设备适配器304接收页面数据,以及合适地将数据传输给打印机。
在失败的情况中,协议适配器306向流水线管理器308告知该失败,流水线管理器308然后将此传输给输入设备适配器304。输入设备适配器304然后可将该信息写回至逻辑作业对象312,然后着手从该失败中恢复。为此,输入设备适配器304使用索引流来对呈现数据进行反向查找以到达该失败时或该失败之前的适当点,以更正该呈现数据。一旦完成之后,输入设备适配器可更新逻辑作业对象312,并将该适当的数据传输给协议适配器,使得打印可以继续。
示例性方法图4是描述根据一个实施例的方法中的步骤的流程图。可结合任何合适的硬件、软件、固件或其组合来实现该方法。在示出的示例中,将该方法分成由合适配置的客户机设备执行的动作以及由合适配置的打印服务器执行的动作。分别在图2和3中提供了客户机设备和打印服务器的示例。可以理解和领会,这些示例仅构成例子,而不旨在限制所要求保护的主题的应用。相反,可利用其它不同类型的客户机设备和打印服务器,而不背离所要求保护的主题的精神和范围。
步骤400接收与打印作业相关联的数据。该数据可采用任何合适的形式,诸如任何合适的页面描述语言,仅举几个例子,诸如PostScript、PDF和/或PCL的各种变体。此外,本领域的技术人员可以理解,这样的数据可采用诸如增强元文件(EMF)或Metro(这是Avalon图形原语的持久形式)等中间页面描述语言的形式。
步骤402处理该数据以提供打印作业部分和元数据部分。在示出和描述的实施例中,打印作业部分包含呈现数据,而元数据部分描述该打印作业部分的结构并提供对该打印作业部分的索引。可按照任何合适的方式实现该步骤。例如,可由诸如打印驱动器208(图2)等合适配置的打印驱动器实现该步骤。作为替代或者除此之外,可由如上所述的打印驱动器和解释器组件来实现该步骤。
此外,元数据部分可采用任何合适的形式或结构。这样的元数据部分的一个示例在以上相对于图1提供和讨论。可以理解和领会,图1的示例仅组成一个例子,而不旨在限制所要求保护的主题的应用。
步骤404将打印作业部分和元数据部分传输给打印服务器。
由打印服务器执行的步骤406接收打印作业部分和元数据部分。步骤408处理该打印作业和元数据部分,并作为响应,实现打印相关的活动。以上给出打印相关的活动的示例,它可包括而非限制,仅举几个示例,在无需从开头重新开始打印作业的情况下从失败中恢复、确保标识了整个页面以供传输给打印机、确保在终止作业之前打印机返回至适当的状态以及无序输出页面。
步骤410将打印作业部分的至少一部分发送给打印机以供打印。可以理解,该步骤可结合步骤408或作为步骤408的一部分执行。分开列出该步骤,以阐明由步骤408执行的打印相关活动中的至少某一些不必要求将打印作业部分的一部分发送给打印机,这些活动例如从失败中恢复或将打印机置于适当的状态中。
示例性客户机设备/打印服务器组件图5示出了含有在图2的客户机设备和图3的打印服务中均可使用以实现上述实施例的组件的示例性计算设备。
计算设备542包含一个或多个处理器或处理单元544、系统存储器546和将包含系统存储器546在内的各个系统组件耦合至处理器544的总线548。系统总线548表示任何若干类型的总线结构中的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口和使用各种总线体系结构中的任一种的局部总线。系统存储器546包括只读存储器(ROM)550和随机存取存储器(RAM)552。基本输入/输出系统(BIOS)554包含有助于诸如启动时在计算设备542中元件之间传递信息的基本例程,它可被存储在ROM 550中。
计算设备542还可以包括用于从磁硬盘(未示出)中读取或向其写入的磁硬盘驱动器556,用于从可移动磁盘560中读取或向其写入的磁盘驱动器558,以及用于从诸如CD ROM或其它光学介质等可移动光盘564中读取或向其写入的光盘驱动器562。磁硬盘驱动器556、磁盘驱动器558和光盘驱动器562由SCSI接口566或某种其它适当的接口连接至总线548。驱动器及其相关联的计算机可读介质为计算机542提供了对计算机可执行指令、数据结构、程序模块和其它数据的非易失性存储。尽管此处所示的示例性环境使用磁硬盘、可移动磁盘560和可移动光盘564,但本领域的技术人员应理解,也可在示例性操作环境中使用能存储可由计算机访问的数据的其它类型的计算机可读介质,包括盒式磁带、闪存卡、数字多功能盘、随即存储存储器(RAM)、只读存储器(ROM)等。
可以在硬盘556、磁盘560、光盘564、ROM 550或RAM 552上存储包括操作系统570、一个或多个应用程序模块572(诸如用户代理或浏览器)、其它程序模块574和程序数据576等多个程序模块。用户可以通过诸如键盘578和定点设备580等输入设备向计算机542输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备由耦合至总线548的接口582连接至处理单元544。监视器584或其它类型的显示设备也经由诸如视频适配器586等接口连接至总线548。除监视器之外,个人计算机一般包括其它外围输出设备(未示出),诸如扬声器和打印机。
计算机542可使用至一台或多台远程计算机,诸如打印服务器588的逻辑连接在网络化环境中操作,打印服务器588又被连接至一台或多台打印机。打印服务器588可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机542描述的许多或所有元件。图5中所示逻辑连接包括局域网(LAN)590和广域网(WAN)592。这样的网络环境在办公室、企业范围计算机网络,内联网和因特网中是常见的。
当在LAN网络环境中使用时,计算机542通过网络接口或适配器594连接至局域网。当在WAN网络环境中使用时,计算机542通常包括调制解调器596或用于通过诸如因特网等广域网592建立通信的其它装置。调制解调器596可以是内置或外置的,它通过串行端口接口568连接至总线548。在网络化环境中,相对于计算机542所描述的程序模块或其部分可以存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
一般而言,计算机542的数据处理器是通过在不同时刻存储在该计算机的各种计算机可读存储介质中的指令来编程的。程序和操作系统一般分布在例如,软盘或CD-ROM上。从那里,安装它们或者将它们加载至计算机的辅助存储器中。在执行时,将它们至少部分加载至计算机的主要电子存储器中。当计算机可读存储介质包含用于结合微处理器或其它数据处理器实现所述的块的指令或程序时,此处所述的系统包含这些和其它各种类型的计算机可读存储介质。当根据此处所述的方法和技术编程计算机时,所述系统也包括计算机本身。
为说明起见,此处将诸如操作系统等程序和或其它可执行程序组件示为分离的块,但可认识到,这样的程序和组件在不同的时刻驻留在计算机的不同存储组件中,并由计算机的数据处理器执行。
扩展或变化在上述示例中,在索引流环境中描述了元数据部分104(图1)。注意到,该索引流可包含分离的流,或者可与呈现打印作业部分交错。另外,元数据部分可采用其它的形式,而不背离所要求保护的主题的精神和范围。例如,在被称为打印作业语言(PJL)的语言中,元数据部分可被实现为PJS注释,合适配置的打印机通常忽略该注释。
结论各种实施例开发(和消费)描述打印作业数据的某些特征的元数据和呈现的打印作业数据。可从客户机设备将该元数据以及呈现数据提供给打印服务器,且该元数据可允许打印服务器确定打印作业数据的性质或上下文。在某些实施例中,元数据可描述诸如页面边界和状态转移数据等内容。通过确定打印作业数据的性质或上下文,打印服务器能够智能地对该信息进行操作,且在至少某些实施例中,实现除非呈现数据被发送给打印服务器否则不可能的附加打印服务器特征。
尽管以结构化特征和/或方法性步骤专用的语言描述本发明,但可以理解,在所附权利要求书中所定义的本发明不必限于所述的特定特征或步骤。相反,该特定特征和步骤是作为实现所要求保护的本发明的较佳形式来揭示的。
权利要求
1.一种方法,包括接收与打印作业相关联的数据;以及处理所接收的数据,以提供打印作业部分,所述打印作业部分的至少一部分被配置成将被发送给打印机以供打印;以及元数据部分,所述元数据部分描述所述打印作业部分的结构。
2.如权利要求1所述的方法,其特征在于,还包括将所述打印作业部分和所述元数据部分传输给打印服务器。
3.如权利要求1所述的方法,其特征在于,所述接收的动作包括接收页面描述语言数据。
4.如权利要求1所述的方法,其特征在于,所述接收的动作包括接收中间页面描述语言数据。
5.如权利要求1所述的方法,其特征在于,所述接收和处理的动作至少是由打印驱动器执行的。
6.如权利要求1所述的方法,其特征在于,所述处理的动作包括提供包含以下各项的打印作业部分一个或多个状态改变块;一个或多个可中断数据块;和一个或多个不可中断数据块;以及提供包含对所述打印作业部分进行引用的以下块中的一个或多个的元数据部分引用进入正确的状态以允许页面由所述打印机解释所需的所有块的页面编号块;引用所述打印作业部分中的状态块序列的依赖状态块引用块;引用可被中断的数据块的可中断数据块引用块;引用不可中断数据块的不可中断数据块引用块;标识所述打印作业部分中的哪个或哪些块需要被发送给所述打印机以使所述打印机返回到特定状态的返回状态块引用块;和包含用于在与所述打印作业部分相关联的文档的打印完成之后关闭所述打印机状态的数据的关闭状态序列块。
7.如权利要求6所述的方法,其特征在于,所述元数据部分包含索引流,且所述关闭状态序列块被置于所述索引流的前端。
8.一种方法,包括接收与将被打印的文档相关联的数据,所述数据包括打印作业部分,所述打印作业部分的至少一部分被配置成将被发送给打印机以供打印;和元数据部分,所述元数据部分描述所述打印作业部分的结构;处理所述打印作业部分和所述元数据部分;以及响应于处理所述打印作业部分和所述元数据部分,实现一个或多个打印相关活动。
9.如权利要求8所述的方法,其特征在于所述打印作业部分包括一个或多个状态改变块;一个或多个可中断数据块;和一个或多个不可中断数据块;以及所述元数据部分包含对所述打印作业部分进行引用的以下块中的一个或多个引用进入正确的状态以允许页面由所述打印机解释所需的所有块的页面编号块;引用所述打印作业部分中的状态块序列的依赖状态块引用块;引用可被中断的数据块的可中断数据块引用块;引用不可中断数据块的不可中断数据块引用块;标识所述打印作业部分中的哪个或哪些块需要被发送给所述打印机以使所述打印机返回到特定状态的返回状态块引用块;和包含用于在与所述打印作业部分相关联的文档的打印完成之后关闭所述打印机状态的数据的关闭状态序列块。
10.如权利要求9所述的方法,其特征在于,所述打印相关活动的至少其中之一包括将所述打印作业部分的至少一部分发送给打印机以供打印。
11.如权利要求9所述的方法,其特征在于,所述打印相关活动的至少其中之一不包括将所述打印作业部分的至少一部分发送给打印机以供打印。
12.如权利要求11所述的方法,其特征在于,所述打印相关活动的至少其中之一包括在无需从打印作业的开始处重新开始所述打印作业的情况下从打印失败中恢复。
13.如权利要求11所述的方法,其特征在于,所述打印相关活动的至少其中之一包括确保在页面被传输给打印机之前标识了整个页面。
14.如权利要求11所述的方法,其特征在于,所述打印相关活动的至少其中之一包括确保在终止打印作业之前打印机返回至适当的状态。
15.一种或多种包含配置成用于打印文档的数据结构的计算机可读介质,所述数据结构包括;包含呈现数据的打印作业部分;以及描述所述打印作业部分的结构的元数据部分。
16.如权利要求15所述的计算机可读介质,其特征在于,所述元数据部分包含分离的数据流。
17.如权利要求15所述的计算机可读介质,其特征在于,所述打印作业部分包含一个或多个状态改变块、一个或多个可中断数据块和一个或多个不可中断数据块。
18.如权利要求17所述的计算机可读介质,其特征在于,所述元数据部分使用位置和块范围引用所述打印作业部分的块。
19.如权利要求17所述的计算机可读介质,其特征在于,所述元数据部分可包括对所述打印作业部分进行引用的以下块中的一个或多个引用进入正确的状态以允许页面由所述打印机解释所需的所有块的页面编号块;引用所述打印作业部分中的状态块序列的依赖状态块引用块;引用可被中断的数据块的可中断数据块引用块;引用不可中断的数据块的不可中断数据块引用块;标识所述打印作业部分中的哪个或哪些块需要被发送给所述打印机以使所述打印机返回特定状态的返回状态块引用块;和包含用于在与所述打印作业部分相关联的文档的打印完成之后关闭所述打印机状态的数据的关闭状态序列块。
20.如权利要求19所述的计算机可读介质,其特征在于,所述元数据部分包含索引流,且所述关闭状态序列块被置于所述引用数据流中的前端。
全文摘要
各种实施例开发(和消费)描述打印作业数据的某些特征的元数据和呈现的打印作业数据。可从客户机设备将该元数据以及呈现数据提供给打印服务器,且该元数据可允许打印服务器确定打印作业数据的性质或上下文。在某些实施例中,元数据可描述诸如页面边界和状态转移数据等内容。通过确定打印作业数据的性质或上下文,打印服务器能够智能地对该信息进行操作,且在至少某些实施例中,实现除非呈现数据被发送给打印服务器否则不可能的附加打印服务器特征。
文档编号G06F17/30GK1834892SQ200610004499
公开日2006年9月20日 申请日期2006年2月15日 优先权日2005年3月15日
发明者A·F·马克色, B·J·库恩, M·A·劳伦斯, O·H·弗尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1