一种页面打印方法及装置与流程

文档序号:12119281阅读:202来源:国知局
一种页面打印方法及装置与流程

本申请涉及计算机应用技术领域,尤其涉及一种页面打印方法及装置。



背景技术:

随着互联网的快速发展,浏览网页已经成为很多用户的日常行为,相应地,在特定场景下对所浏览的网页页面进行打印输出,也成为一种更为普遍的需求。

目前,实现页面打印的最基本方式是调用网页浏览器的打印功能,但是浏览器提供的打印功能一般较为简单,缺少可定制性。针对该问题,现有技术提供的另一种页面打印的实现方式是,在网页页面中增加打印功能操作接口(例如页面按钮、页面菜单等),允许用户使用网页自身提供的打印功能,从而实现更为丰富的打印效果。这种方式一般要求用户预先在浏览器中安装特定的打印功能插件,该插件与页面上的操作接口相配合,用户使用打印功能后,页面(这里可以视作一个应用)首先根据打印需求生成特定格式的打印指令,然后将打印指令发送给打印功能插件,打印功能插件对打印指令进行解析后,驱动打印机硬件完成打印操作。

利用网页自身提供打印功能的方式,可以有效地丰富打印样式,然而,每种不同的打印效果都需要不同的打印指令来实现,用户每次选择打印功能后,页面都需要重新生成相应打印指令,而且打印样式越复杂,则需要生成的指令内容也越复杂,不利于提升应用的执行效率。另一方面,不同的打印功能插件所使用的打印指令规范不同,开发人员在开发网页时,需要先掌握相应的指令规范,如果需要实现复杂的打印样式,还需要用到更多复杂的指令,这无形中增加了开发人员的学习成本。



技术实现要素:

本申请提供一种页面打印方法及装置,以避免在打印过程中生成复杂的打印指令,技术方案如下:

根据本申请的第一方面,提供一种页面打印方法,应用于打印控制设备,该方法可以包括:

接收应用发送的页面打印指令,所述页面打印指令中携带:打印样式模板标识、待打印数据、以及所述待打印数据与所述打印样式模板中数据变量的对应关系信息;

根据所述打印样式模板标识,获取预设的打印样式模板;

根据所述对应关系信息,利用所述待打印数据对所获取的打印样式模板中的数据变量进行赋值;

对已赋值的打印样式模板进行绘制;

针对绘制结果生成打印任务;

将所述打印任务发送至打印设备进行打印。

根据本申请的第二方面,提供一种页面打印装置,应用于打印控制设备,该装置可以包括:

打印指令接收模块,用于接收应用发送的页面打印指令,所述页面打印指令中携带:打印样式模板标识、待打印数据、以及所述待打印数据与所述打印样式模板中数据变量的对应关系信息;

模板获取模块,用于根据所述打印样式模板标识,获取预设的打印样式模板;

模板赋值模块,用于根据所述对应关系信息,利用所述待打印数据对所获取的打印样式模板中的数据变量进行赋值;

绘制模块,用于对已赋值的打印样式模板进行绘制;

打印任务生成模块,用于针对绘制结果生成打印任务;

打印任务发送模块,用于将所述打印任务发送至打印设备进行打印。

本申请实施例所提供的技术方案,将打印样式预先定义在打印模板中,应用在执行打印操作时,只需要给出需要打印的数据,通过指定打印模板即可以实现打印样式的选择,不需要通过打印指令来控制打印样式,有效提高了应用的执行效率。对于应用开发人员而言,也不需要掌握复杂的打印指令规范即可实现丰富的打印样式,可以有效降低学习成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是本申请方案运行系统的一种架构示意图;

图2a和图2b分别是本申请方案运行系统的第二种和第三种架构示意图;

图3是本申请的页面打印方法的流程示意图;

图4是本申请打印样式模板的一种示意图;

图5是本申请一种打印需求的效果示意图;

图6是本申请打印样式模板的另一种示意图;

图7a和图7b是本申请两种打印设备配置项的示意图;

图8是本申请的页面打印装置的结构示意图。

具体实施方式

为了使本领域技术人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申 请保护的范围。

现有的浏览器打印插件,提供了更为丰富的打印样式,对浏览器所提供的基本打印功能做了补充,其中,打印样式的实现是由特定的打印指令来控制,在用户执行打印操作后,网页应用需要根据需要打印的内容,实时生成相应的打印指令。

例如,需要在纸张的左上角打印“姓名:张三”字样,要求宽度为200、高度为50,字体为隶书、字号为11,需要生成以下打印指令:

SET_PRINT_STYLE("FontSize",11);

//定义字号

SET_PRINT_STYLE("FontName","隶书");

//定义字体

ADD_PRINT_TEXT(0,0,200,50,"姓名:张三");

//定义打印起始坐标、打印宽度/高度以及待打印文本

可见,所有的打印样式都是直接在指令中声明的,需要实现的打印样式越复杂,则相应的打印指令也越复杂。由于打印指令都是网页应用在接收到打印操作后实时生成的,因此需要打印的内容越多、打印样式越复杂,生成代码所需的代价就越大。而且每次所生成的打印指令都是针对本次打印操作而言,如果用户重新执行打印操作,需要重新生成新的打印指令。因此,这种基于指令控制打印样式的实际执行效率并不理想。

此外,对于应用开发人员而言,需要将打印指令的生成逻辑写入应用的实现代码中,这就要求应用开发人员首先掌握这些打印指令的使用方法,例如上述的SET_PRINT_STYLE()、ADD_PRINT_TEXT()等函数,增加了开发人员的学习成本。而且,上述函数实际上仅是某种特定打印插件所定义的函数,如果需要应用支持多种打印插件,则需要开发人员学习的内容会进一步增加。

针对以上问题,本申请提供一种页面打印方法,以及一种用于执行该方法的页面打印装置,下面首先对本申请方案的运行系统架构进行说明。参见图1所示,本申请方案涉及的实体包括:应用100、页面打印装置200、打印设备300,其中:

应用100是打印操作的发起方,可以是独立的应用程序,也可以是具有应用功能的网页(利用浏览器打开);应用100获得用户的打印操作后,生成打印指令发送给页面打印装置200;

页面打印装置200是打印操作的中间处理方,可以在独立的应用程序中实现,也可以在浏览器中以插件(Plug-in)的形式实现。页面打印装置200接收到打印指令后,对打印指令进行处理,生成对应的打印任务发送给打印设备300;

打印设备300是打印操作的最终执行方,用于最终输出打印结果。

一般情况下,上述三种实体中,打印设备300为物理实体,可以是打印机、或者具有打印输出功能的多功能一体机等设备;应用100与页面打印装置200为逻辑实体,两者可以位于相同的物理实体中,如图2a所示,也可以位于不同的物理实体中,如图2b所示。其中,在本申请中,将页面打印装置200所处的实体称为打印控制设备,该设备与打印设备300存在通信连接,并且能够驱动打印设备300执行打印任务,具体形式可以是服务器、PC机、手机、平板电脑等多种类型。可以理解的是,某些情况下,应用100或页面打印装置200也可以与打印设备300位于同一物理实体,例如安装有操作系统的智能打印设备,本申请对此并不需要进行限定。另外需要说明的是,如果在虚拟机环境下,则上述的“设备”概念可以进一步扩展到“虚拟机”层面,而不是特指一台物理设备。

下面对页面打印装置200所执行的页面打印方法进行详细说明,参见图3所示,该方法可以包括以下步骤:

S101,接收应用发送的页面打印指令,其中页面打印指令中携带:打印样式模板标识、待打印数据、以及所述待打印数据与所述打印样式模板中数据变量的对应关系信息;

S102,根据所述打印样式模板标识,获取预设的打印样式模板;

S103,根据所述对应关系信息,利用所述待打印数据对所获取的打印样式模板中的数据变量进行赋值;

S104,对已赋值的打印样式模板进行绘制;

S105,针对绘制结果生成打印任务;

S106,将所述打印任务发送至打印设备进行打印。

与现有的基于指令控制打印样式的方式相比,本申请所采用的方式是预先设计好打印样式模板,将需要的打印样式定义在模板中,模板中的打印内容区域使用变量名替代,在打印时才真正传入。图4所示为打印样式模板的一种示意图,其中“customer”是一个变量。在执行打印操作时,应用指定需要使用的打印样式模板,并且将实际需要打印的数据(例如前面例子中的“张三”)通过指令传入,页面打印装置将数据赋值到模板的变量中,即可得到需要打印的内容。可见,在本申请的打印指令中,仅需要包含所指定的模板以及待打印的数据内容,而字体、字号、打印位置、尺寸等打印样式则由模板本身决定,与打印指令无关,因此不需要在每次执行打印操作时都生成大量用于控制打印样式的指令代码。

对于应用开发人员而言,只需要在应用的实现代码中选择合适的打印样式模板,并且指定将哪部分内容作为待打印数据赋值给模板即可,不需要掌握各种打印样式控制指令的使用方法,可以有效提升开发效率。

在实际应用中,打印样式模板可以基于HTML(HyperText Markup Language,超文本标记语言)来设计,HTML可以提供包括CSS(Cascading Style Sheets,层叠样式表)在内的丰富显示样式,并且可以直接调用浏览器内核来对HTML内容进行绘制以生成打印内容,由于浏览器几乎是各种设备中的标准软件配置,因此基于HTML设计打印样式模板可以进一步降低本申请方案的实现成本。此外,HTML是Web开发人员都非常熟悉的一种标记语言,因此基于HTML设计的打印样式模板还可以进一步降低应用开发人员的学习成本。

下面结合一个具体的实例,对本申请所提供的利用模板实现打印样式的方案进行说明。

图5所示,为某名片制作应用需要打印的名片设计样张示意图,如果使用现有技术,在执行打印操作时,应用需要生成以下代码以实现相应的打印样式:

SET_PRINT_STYLE("FontSize",11);

ADD_PRINT_TEXT(20,180,100,25,"郭德强");

SET_PRINT_STYLEA(1,"FontName","隶书");

SET_PRINT_STYLEA(1,"FontSize",15);

ADD_PRINT_TEXT(53,187,75,20,"科学家");

ADD_PRINT_TEXT(100,131,272,20,"地址:中国北京社会科学院附近东大街西胡同");

ADD_PRINT_TEXT(138,132,166,20,"电话:010-88811888");

可见,根据现有技术的实现方式,各种与打印样式相关的信息,包括字体、字号、位置、尺寸等都是在打印指令中定义的(这里后三行文字使用的都是默认的字体和字号,因此没有生成对应的定义语句)。而应用本申请所提供的方案,只需预先设计好模板,将打印样式定义在模板中,在打印时直接调用该模板即可,不需要每次打印操作都生成样式控制代码。

图6所示为一种打印样式模板的示意图,其中“name”,“title”“address”“telphone”均为变量,而字体、字号、位置、尺寸等信息均已定义在模板中,可以理解的是,这些信息需要通过代码定义,并且存储在模板文件中,图6所示仅是该模板的展现效果示意图。

用户在使用应用时,可以看到模板的展现效果,应用会提示用户填入打印名片所需的必要信息,用户确填入信息并确认进行打印后,应用生成打印指令发送至页面打印装置。

假设用户在该模板的空白区域填入的信息依次为“郭德强”、“科学家”、“中国北京社会科学院附近东大街”、“中国北京社会科学院附近东大街”,用户执行确认打印操作后,应用将生成以下打印指令发送给页面打印装置:

{

"template":"businesscard.xml",

"data":{"name":"郭德强","title":"科学家","address":"中国北京社会科学院附近东大街","telphone":"010-88811888”}

}

上述指令的“template”字段指定了需要使用名为“businesscard.xml”的打印样式模板,而在“data”字段,则给出了本次需要打印的文本内容数据,并且给出了这些数据与模板中数据变量的对应关系,例如:“郭德强”对应“name”、 “科学家”对应“title”,等等。可见,在该指令中并不包含字体、字号、打印位置的样式定义信息。

可以理解的是,上述指令仅用于示意性说明,本申请并不需要对具体的语法格式进行限定。

在S101,页面打印装置接收打印指令,并且从打印指令中解析出以下信息:

a)打印样式模板标识,即“businesscard.xml”;

b)待打印数据,即“郭德强”、“科学家”等;

c)待打印数据与打印样式模板中数据变量的对应关系信息,即“郭德强”对应“name”、“科学家”对应“title”等关系;

在S102,根据打印样式模板标识,获取预设的打印样式模板;不同的模板既可以存储在同一文件中,也可以分别存储在不同的文件中,本实施例中采用模板文件名称“businesscard.xml”作为模板标识,在实际应用中,还可以采用其他形式的信息作为模板标识,例如模板名称,模板ID等等,只要能够令页面打印装置根据该标识唯一确定相应的模板即可。在某些情况下,可能需要在标识信息中添加模板的存储路径,该路径可以是页面打印装置本地的存储路径,也可以是网络上的存储路径。对于某些自行设计模板的应用而言,页面打印装置上可能预先并没有存储这些模板,这种情况下,应用可以将模板的网络存储路径发送给页面打印装置,例如“http://200.0.0.1/businesscard.xml”,以便页面打印装置能够从指定的网络存储路径获取到应用自定义的模板。

在S103,根据解析得到的对应关系信息,将“郭德强”、“科学家”等待打印数据分别赋值到打印模板中相应的数据变量上,如图6所示,模板中的“name”变量将会被“郭德强”替代、“title”变量将会被“科学家”替代……以此类推。如果存在无法赋值的变量,可以对该变量赋以空值,对应的打印效果为空白。本步骤仅对应用传入的待打印数据进行替换,模板中所定义的其他打印样式保持不变。

在S104,对已赋值的打印样式模板进行绘制;为保证最终的打印效果,本申请是将文本信息转换为图形信息发送给打印设备,页面打印装置可以使用定 义的方式对模板进行绘制。而实际应用中,如果打印样式模板是基于HTML设计的,则页面打印装置可以直接调用本地的浏览器内核对模板进行绘制。

以IE浏览器为例,页面打印装置可以调用系统中的IE程序打开已经被赋值的HTML模板,该步骤可以在后台运行,不展现运行窗口,以便对用户实现无感知效果,也更适用于执行批量打印任务。然后根据这个IE窗口的IWebBrowser2句柄获取该HTML的document句柄(IHTMLDocument2),再获取body元素的句柄(IHTMLElement),然后再获取body元素的视图句柄(IViewObject2),最后使用IViewObject2.Draw方法,将body元素渲染到内存中的矢量图(EMF)上。

可以理解的是,以上绘制步骤仅用于示意性说明,本领域技术人员可以根据实际需求,选用其他的绘制方法或基于其他浏览器内核实现模板的绘制,本申请对此并不需要进行限定。

在S105,针对绘制结果生成打印任务,包括选择打印设备,选择纸张大小、设置单/双面打印等操作,这些配置可以在用户执行打印操作时进行选择,由应用在打印指令中指定并发送给页面打印装置,如果在打印指令中没有指定,则页面打印装置可以使用默认的设置生成打印任务。此外,如果有必要,可能还需要根据所配置打印设备实际输出的PPI(pixels per inch)对绘制结果进行缩放处理,具体的处理方式可参见现有技术,在本申请中不作进一步的详细描述。

在S106,将生成的打印任务发送至指定打印设备,完成打印输出。最终打印输出效果如图5所示

如图1和图2a、图2b所示,本申请方案中的应用100,可以是具有应用功能的网页,这种方式的实现需要用户在浏览器中安装打印功能插件,该插件的作用相当于页面打印装置200,对于IE浏览器,可以使用ActiveX方式实现,对于Firefox、Chrome、Safari等浏览器,则可以使用NPAPI方式实现。应用100的另一种形式是独立于浏览器的客户端应用程序,该应用程序具有浏览网页的功能,同时还具有生成打印指令及页面打印装置200的功能。

可见,上述两种方式,均需要应用100与页面打印装置200高度耦合,这 种情况在实际使用过程中存在诸多不便,例如:很多用户仅有少量的打印需求,并不愿意为此专门安装浏览器插件,而且在不久的将来,很多浏览器(例如Chrome、Edge等)将不再支持浏览器插件;对于独立于浏览器的客户端应用程序而言,用户的选择余地就更小,极端情况下可能需要在不同的应用程序中均安装页面打印装置200对应的组件,对于开发人员而言,也需要在各种基本应用的基础上进一步增加页面打印装置200的功能,一定程度上造成重复开发;最后,由于应用100与页面打印装置200高度耦合,导致两者只能安装在同一设备(如果在虚拟机环境中,则特指同一虚拟机设备)中,如图2a所示,导致灵活性和方便性受到严重限制。

针对上述问题,在本申请的一种具体实施方式中,使用网络连接方式实现应用100和页面打印装置200的通信,以降低两者之间的耦合度。具体实现方式如下:

页面打印装置200独立于应用100运行,这里的“独立”是指既不作为浏览器插件,也不作为其他客户端应用程序的一部分,而是作为独立的应用程序或系统服务运行于打印控制设备的操作系统中。

对于应用100侧而言,需要使用网络通信协议与页面打印装置200建立连接,无论何种语言、何种技术开发的应用,只需要支持网络功能即可是实现连接。例如,客户端应用程序可以通过TCP或UDP协议与页面打印装置200建立连接;基于浏览器运行的Web应用则可以通过HTTP、WebSocket等方式与页面打印装置200建立连接,其中,WebSocket是HTML5标准中提出的通信协议,很多新版本的浏览器包括移动端浏览器都提供对WebSocket的支持,HTTP协议则适用于版本较老的浏览器。当然,本申请并不需要对通信协议的选择进行限定。事实上,无论是对于浏览器还是一般的客户端应用程序,网络功能都已经作为基本功能存在,因此对于应用开发人员而言,这部分功能的实现并不需要额外的开发成本。

对于页面打印装置200侧,应支持至少一种网络通信协议,从通用性的角度考虑,可以尽量支持多种主流的网络通信协议,例如上述的TCP、UDP、HTTP、 WebSocket等。根据前述的S101,页面打印装置200会在特定的预设网络端口上使用这些协议进行监听,一旦接收到应用100侧发来的打印指令,便会执行后续的处理步骤。

可见,这种方式有效地降低应用100和页面打印装置200之间的耦合度,对于开发人员而言,可以实现基本应用功能和打印功能独立开发,而且不同的基本应用可以复用相同的页面打印装置。对于用户而言,仅需要安装所需的基本功能组件即可,不需要额外安装浏览器插件或者重复安装带有打印功能的多种应用程序。最后,由于上述方案通过网络来传输打印指令,因此可以支持跨设备的打印功能,如图2b所示,某台设备生成的打印指令可以向发送至另一台设备,由另一台设备来生成打印任务。用户设备中不需要安装页面打印装置200,只需要能够通过网络向装有页面打印装置200的设备发送打印指令即可实现打印功能。

需要说明的是,应用上述方案,即便对于如图2a所示的应用100和页面打印装置200处于同一设备的情况,仍然可以采用“网络连接”的方式实现打印指令的传输,也就是说,从逻辑上讲,该设备既是打印指令的发送设备也是接收设备,这样做的目的仍然是为了降低应用100和页面打印装置200之间的耦合度,使得两者即便位于同一设备中也能够分别独立运行,以提高实际使用的灵活性及方便性。

另外需要说明的是,图1和图2a、图2b中仅示出了应用100和页面打印装置200一对一通信的情况,可以理解的是,本申请中的中页面打印装置200可以同时服务于多个应用,这些应用可以是同一设备中的应用,也可以是不同设备中的应用,从而实现多设备、多应用对页面打印装置200的复用。

如果在虚拟机环境下,则本申请中的“设备”概念可以进一步扩展到“虚拟机”层面,而不是特指一台物理设备,关于虚拟机具体的实现与本申请的打印方案无关,这里不做进一步的详细说明。

本申请所提供的打印方案,页面打印装置200除了可以被多个应用复用之外,还可以连接并控制多台打印设备。连接多台打印设备的原因在于不同类型 的打印机能够满足不同的打印需求,例如针式打印机可以用来打印复写纸、多联纸,激光打印机可以用来打印文档和照片,热敏打印机则通常用来打印特定的票据或单据。此外,有些打印机可能支持双面打印、彩色打印等功能,有些打印机的功能则比较简单,等等。即便仅使用同一台打印机,也存在选择纸张类型、选择单/双面打印、选择打印输出分辨率等需求。如果这些全部由用户手动配置,不仅存在操作繁琐的问题,而且很多情况下用户可能并不清楚什么样的配置、甚至该选用哪一台打印设备能够满足自己的打印需求,造成实际的使用困难。

针对上述问题,在本申请的一种具体实施方式中,根据各种实际打印需求,预先定义若干条打印设备配置项信息,在每条打印设备配置项信息中,可以指定该需求所使用的打印设备、纸张配置、打印版式(包括单/双面、横/纵向、每页n版等等)、打印分辨率等等。当然,以上具体的配置信息类型仅用于示意性说明,并不构成对本申请方案的限定。

图7a和图7b分别示出了两种打印设备配置项信息的示意图,配置项名称分别为“中通面单”和“圆通面单”,配置项中具体包括的参数有:所需要使用的打印机、打印纸张选择、打印方向选择、打印单/双面选择,根据图7a和图7b所示配置结果,这两种配置项的具体配置信息是相同的。可以理解的是,这些信息需要通过代码定义,并且存储在配置文件中,图7a和图7b所示仅是该配置项的展现效果示意图。

用户在应用侧执行打印操作时,应用根据用户的选择操作,或者根据打印需求的自动识别结果,确定需要使用的打印配置,然后在所生成的打印指令中,进一步添加用于标识打印设备配置项的字段,例如:

{

templateUrl":"http://205.0.0.1/card.html",

"data":{"customer":"Spirit"},

"configName":"名片"

}

上述指令中的“templateUrl”字段指定了打印样式模板的网络存储路径, “data”字段给出了本次需要打印的文本内容数据,并且给出了这些数据与模板中数据变量的对应关系,而“configName”字段则指定了本次打印使用的配置项名称。

与打印样式模板相类似,不同的配置项既可以存储在同一文件中,也可以分别存储在不同的文件中,在实际应用过程中,除配置项名称之外,还可以采用其他形式的信息作为打印设备配置项信息标识,例如配置项的ID、配置项的文件名等等,只要能够令页面打印装置根据该标识唯一确定相应的配置项即可。此外,这里的打印设备配置项信息标识中也可以进一步包含该配置项信息的存储路径,并且该路径可以是页面打印装置本地的存储路径,或者是网络上的存储路径,具体可以参见前面的实施例,本实施例不再重复说明。

在S105,页面打印装置接收到打印指令并解析出打印设备配置项标识后,根据该标识获取到预设的打印设备配置项信息,根据配置项中指定的打印机、打印纸张选择、打印方向选择等具体参数对本次打印所使用的打印设备进行配置,配置项中未指定的参数可以使用缺省配置,进而生成相应的打印任务。

需要说明的是,在配置项中,可以不指定具体使用的打印设备,如果存在多台打印设备,则页面打印装置可以在当前可用的多台打印设备中,自动选择与所打印设备配置项信息相匹配的打印设备作为本次打印任务执行设备。这里的“匹配”可以采用多种规则实现,例如:满足匹配项中所指定的打印设备类型(例如激光打印机、热敏打印机等)、满足配置项中的其他参数配置要求,或者通过查找预设的对应关系来确定能够满足当前配置项需求的打印机,等等。如果成功匹配了多台打印设备,则可以用随机选择或优先选择空闲设备等方式分配当前的打印任务。

此外,在本步骤中,如果获取打印设备配置项信息失败(例如找不到相应的配置项)、或者据打印设备配置项信息对打印设备进行配置失败(例如打印设备当前并不支持某些配置项中指定的参数),则可以返回错误信息,或者直接尝试使用缺省配置进行打印,本领域技术人员可以根据实际需求灵活实施。

在本实施例所提供的方案中,页面打印装置利用预设的配置项信息对打印 设备进行一次配置,不需要用户逐项选择,可以有效地减少用户在对打印设备进行配置或选择打印设备时的不便,对于页面打印装置而言,也可以更为有效地在多台打印设备之间分配打印任务。

相应于上述方法实施例,本申请还提供一种页面打印装置,参见图8所示,该装置可以包括:

打印指令接收模块210,用于接收应用发送的页面打印指令,页面打印指令中携带:打印样式模板标识、待打印数据、以及待打印数据与打印样式模板中数据变量的对应关系信息;

模板获取模块220,用于根据打印样式模板标识,获取预设的打印样式模板;

模板赋值模块230,用于根据对应关系信息,利用待打印数据对所获取的打印样式模板中的数据变量进行赋值;

绘制模块240,用于对已赋值的打印样式模板进行绘制;

打印任务生成模块240,用于针对绘制结果生成打印任务;

打印任务发送模块260,用于将打印任务发送至打印设备进行打印。

根据本申请的一种具体实施方式,打印指令接收模块210,具体可以用于:

对预设的网络端口进行监听,从网络端口接收应用发送的页面打印指令。

根据本申请的一种具体实施方式,从网络端口接收的页面打印指令可以包括:

打印控制设备上的应用发送至网络端口的页面打印指令;

非打印控制设备上的应用发送至网络端口的页面打印指令。

根据本申请的一种具体实施方式,打印样式模板标识可以包括:

包含存储路径的打印样式模板标识。

根据本申请的一种具体实施方式,打印样式模板可以基于超文本标记语言HTML设计;

相应地绘制模块240具体可以用于:调用浏览器内核,对已赋值的打印样式模板进行绘制。

根据本申请的一种具体实施方式,页面打印指令中还可以携带:打印设备配置项标识;

相应地,打印任务生成模块250,具体可以用于:

根据打印设备配置项标识,获取预设的打印设备配置项信息;

根据所获取的打印设备配置项信息对打印任务所使用的打印设备进行配置,根据配置结果生成针对绘制结果的打印任务。

根据本申请的一种具体实施方式,打印设备配置项信息可以包括:

指定使用的打印设备标识信息、纸张配置信息、打印版式配置信息、和/或打印分辨率配置信息。

根据本申请的一种具体实施方式,在打印设备配置项信息中不包括指定使用的打印设备标识信息的情况下,打印任务生成模块250可以从当前可用的打印设备中,选择与打印设备配置项信息相匹配的打印设备作为打印任务的执行设备。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本申请方案时可以把各模块的功能在同一个或多个软件和/或 硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1