本申请涉及计算机领域,尤其涉及一种处理文档的方法和装置。
背景技术:
打印机是一种输出设备,与云端连接的打印机也可称为云打印机。当云端有文档需要打印时,云端通过通信连接将文档数据传输至打印机,随后,云打印机将文档打印在介质上。
当打印机与云端的通信连接发生异常时,云端无法确定打印任务是否已完成,为了确保打印任务不被遗漏,云端会向打印机重新发送通信连接发生异常前的一些打印任务,这可能导致一些文档被重复打印,造成资源浪费。因此,如何避免上述情况下的重复打印是当前需要解决的问题。
技术实现要素:
本申请提供了一种处理文档的方法和装置,能够避免通信连接发生异常的情况下打印机重复打印文档。
第一方面,提供了一种处理文档的方法,包括:从云端接收目标文档;确定所述目标文档是否打印过;当确定所述目标文档打印过时,确定不打印所述目标文档;当确定所述目标文档未打印过时,打印所述目标文档。
基于上述方法,打印机在打印目标文档之前对该目标文档的打印情况进行一次检查,若目标文档被打印过,则无需再打印,可以避免在通信异常情况下因云端重复下发目标文档导致目标文档被重复打印;若目标文档未被打印过,则可以继续打印,避免未打印的文档被遗漏。
第二方面,提供了一种处理文档的装置,用于执行上述第一方面的方法。具体地,该装置包括用于执行第一方面的方法的功能模块。
第三方面,提供了一种终端设备,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行上述第一方面中的方法。
第四方面,提供了一种芯片,用于执行上述第一方面中的方法。该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备用于执行上述第一方面中的方法。
第五方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面中的方法。
第六方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面中的方法。
附图说明
图1是适用于本申请的一种打印系统的示意图;
图2是本申请提供的一种处理文档的方法的示意图;
图3是本申请提供的另一种处理文档的方法的示意图;
图4是本申请提供的一种处理文档的装置的示意图;
图5是本申请提供的一种处理文档的设备的示意图。
具体实施方式
下面,将结合附图对本申请提供的技术方案进行详细描述。
图1是适用于本申请的一种打印系统。该打印系统100包括云110和打印机120。
云110例如是服务器,服务器上安装有软件平台,该软件平台能够收集并处理数据,还能够将数据的处理结果发送至打印机120。例如,云110接收用户发送的文档打印任务,随后,云110可以解析该文档打印任务,将该文档打印任务所包含的文档内容以及控制指令发送至打印机120,以便于打印机120根据该控制指令打印上述文档打印任务中的文档内容。
打印机120与云110之间存在通信连接,该通信连接用于承载打印机120和云110之间传输的数据,该通信连接可以是通用串行总线(universalserialbus,usb)等有线连接,也可以是蓝牙等无线连接。本申请对打印机120与云110之间的通信连接的具体形式不做限定。
打印机获取文档内容之后,可以将文档内容转换为点阵数据,并根据控制指令驱动打印头通过热敏显示方式将点阵数据显示在打印纸上。上述文档内容可以是文字,也可以是图片,本申请对文档内容的具体形式不做限定。
当打印机与云端的通信连接发生异常时,云端无法确定打印任务是否已完成,为了确保打印任务不被遗漏,云端会向打印机重新发送通信连接发生异常前的一些打印任务,这可能导致一些文档被重复打印,造成资源浪费。
下面,介绍本申请提供的处理文档的方法,如图2所示,方法200可以由打印机执行。方法200包括:
s210,从云端接收目标文档。
目标文档例如是订单或者订单标识。打印机可以主动向云端发送器请求消息,请求获取文档,例如,打印机定期向云端发送请求消息,查询是否有新订单需要打印。可选地,上述请求消息是云端发送的触发消息触发的,例如,云端有新订单时,向打印机发送触发消息;打印机收到该触发消息后,确定有新订单待打印,打印机可以在当前打印任务完成后发送请求消息,以减小内存占用。
可选地,打印机也可以被动从云端接收目标文档。
在打印目标文档前,打印机需要执行下列步骤。
s220,确定所述目标文档是否打印过。
打印机可以通过查询本地信息确定目标文档是否打印过。例如,打印机可以在每次打印完一份文档后在本地记录该文档的标识(identifier,id),在文档打印成功后将该文档的名称加入表格;打印机获取目标文档后可以查询该表格,若表格中存在目标文档的名称,则确定目标文档被打印过;若表格中不存在目标文档的名称,则确定目标文档未被打印过。本申请中,“打印过”指的是成功打印,上述“未被打印过”指的是未将文档内容打印在介质上或者文档打印失败。
打印机也可以通过其它方式确定目标文档是否打印过。例如,当打印机与电脑连接时,打印机可以将打印过的每份文档的id发送至该电脑,从而可以向该电脑查询目标文档是否打印过。本申请对确定目标文档是否打印过的具体方式不做限定。
随后,打印机可以执行下列步骤。
s230,当确定所述目标文档打印过时,确定不打印所述目标文档。
s240,当确定所述目标文档未打印过时,打印所述目标文档。
基于方法200,打印机在打印目标文档之前对该目标文档的打印情况进行一次检查,若目标文档被打印过,则无需再打印,可以避免在通信异常情况下因云端重复下发目标文档导致目标文档被重复打印;若目标文档未被打印过,则可以继续打印,避免未打印的文档被遗漏。
可选地,打印机可以在执行s230或s230之后向云端发送指示信息,指示目标文档已被打印,避免云端因不确定目标文档是否被打印而再次向打印机发送目标文档,从而减小了打印系统的信息开销。
图3示出了本申请提供的另一种处理文档的方法。方法300包括:
s301,打印机上电后接入因特网,并且与云端建立连接。
s302,当云端接收到商户的新订单时将订单数据存放于数据库(sql)中,并向已建立连接的打印机发出触发消息。
s303,打印机收到来自云端的触发消息后向云端发送请求消息,请求获取订单列表(orderlist)。如果打印机因网络原因获取订单列表失败,那么打印机可以每隔3秒钟重试此步骤,如果获取到订单列表则进行下一步。
可选地,云端可以动态调整订单的有效期限(exptime),不向打印机发送超期的订单。例如,若订单的时间与当前标准时间相差24小时,则云端可以将该订单标记为无效订单,不再下发至打印机,以减小不必要的信息开销。
s304,打印机将获取到的订单列表1中的订单id存于本地内存当中,并判断订单x是否打印过;例如,订单列表1例如包括5个订单,订单id分别为1、2、3、4和5,则x为1、2、3、4或5,打印机首先判断订单1对应的订单是否打印过,如果打印过则直接跳转至s309;如果订单1未打印过则执行s305。
s305,打印机将订单1以及与云端约定的其它必要信息打包后加密发送,并通过此加密数据向云端请求订单1的订单内容,如果打印机因网络原因获取订单1的订单内容失败则将本地订单1的相关信息清除掉,然后以同样的方式去请求订单2的订单内容,以此类推。假设请求订单2的订单内容时网络正常,订单2的订单内容请求成功后打印机将其存于内存中。
s306,打印机将订单2的数据送入打印头进行打印,送入打印头后随即产生打印任务1(printtask1)。
s307,打印机查询打印任务1的数据是否已经完整打印,如果没有完整打印则不断进行查询。可选地,打印机可以在查询若干次之后确定订单2对应的订单打印失败,删除订单2相关的信息。
s308,一旦打印成功打印机则将打印任务1对应的订单id(即,2)存于内存中,表示订单2已打印过。
s309,打印机将指示订单2对应的订单打印成功的指示信息以及与云端约定的其它必要信息加密打包后向云端发送。假设此时因为网络原因上送失败,打印机可以放弃上传订单2相关的信息,执行s310。
s310,判断订单列表1是否处理完毕。若订单列表1未处理完毕,打印机可以执行s304,判断订单3是否打印过,并依次执行后续步骤;若订单列表1处理完毕,打印机可以执行s303,请求获取新的订单列表。
由于云端没有收到指示订单2对应的订单打印成功的指示信息,云端会将包含订单2的id的新订单列表发送给打印机,打印机在处理新订单列表中的订单2时,确定订单2已打印过,则打印机不会再打印订单2对应的订单,也不会再请求获取订单2对应的订单内容,打印机可以直接执行s309,将指示订单2打印成功的指示信息发送给云端。
上文详细介绍了本申请提供的处理文档的方法的示例。可以理解的是,处理文档的装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文所公开的实施例中描述的单元及算法步骤,本申请的技术方案能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请可以根据上述方法示例对处理文档的装置进行功能单元的划分,例如,可以将各个功能划分为各个功能单元,也可以将两个或两个以上的功能集成在一个功能单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图4是本申请提供的一种处理文档的装置的结构示意图。装置400包处理单元410和接收单元420。
接收单元420用于:从云端接收目标文档;
处理单元410用于:确定所述目标文档是否打印过;当确定所述目标文档打印过时,确定不打印所述目标文档;当确定所述目标文档未打印过时,打印所述目标文档。
可选地,当确定所述目标文档未打印过时,所述处理单元410还用于:在打印所述目标文档之后,保存所述目标文档的标识,所述标识用于指示所述目标文档已被打印。
可选地,所述处理单元410具体用于:当本地存储有所述目标文档的标识时,确定所述目标文档打印过;当本地未存储所述目标文档的标识时,确定所述目标文档未打印过。
可选地,装置400还包括发送单元430,用于:向所述云端发送指示所述目标文档已打印的指示信息。
可选地,装置400还包括发送单元430,用于:向所述云端发送请求消息,所述请求消息请求获取文档。
可选地,所述接收单元420还用于:从所述云端接收触发消息;所述发送单元410具体用于:根据所述触发消息向所述云端发送所述请求消息。
可选地,所述目标文档为处于有效期内的文档。
装置400执行处理文档的方法的具体过程以及产生的有益效果可以参考方法实施例中的相关描述,在此不再赘述。
图5示出了本申请提供的一种处理文档的设备的结构示意图。图5中的虚线表示该单元或该模块为可选的。设备500可用于实现上述方法实施例中描述的方法。设备500可以是终端设备或芯片。
设备500包括一个或多个处理器501,该一个或多个处理器501可支持设备500实现图2或图3所对应方法实施例中的方法。处理器501可以是通用处理器。例如,处理器501可以是cpu。cpu可以用于对设备500进行控制,执行软件程序,处理软件程序的数据。设备500还可以包括通信单元505,用以实现信号的输入(接收)和/或输出(发送)。
例如,设备500可以是芯片,通信单元505可以是该芯片的输入和/或输出电路,或者,通信单元505可以是该芯片的通信接口,该芯片可以作为终端设备或其它电子设备的组成部分。
又例如,设备500可以是终端设备,通信单元505可以是该终端设备的收发器,或者,通信单元505可以是该终端设备的收发电路。
设备500中可以包括一个或多个存储器502,其上存有程序504,程序504可被处理器501运行,生成指令503,使得处理器501根据指令503执行上述方法实施例中描述的方法。可选地,存储器502中还可以存储有数据(如目标文档的id)。可选地,处理器501还可以读取存储器502中存储的数据,该数据可以与程序504存储在相同的存储地址,该数据也可以与程序504存储在不同的存储地址。
处理器501和存储器502可以单独设置,也可以集成在一起,例如,集成在终端设备的系统级芯片(systemonchip,soc)上。
设备500还可以包括天线506。通信单元505用于通过天线506实现设备500的收发功能。
处理器501执行处理文档的方法的具体方式可以参见方法实施例中的相关描述。
应理解,上述方法实施例的各步骤可以通过处理器501中的硬件形式的逻辑电路或者软件形式的指令完成。处理器501可以是cpu、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其它可编程逻辑器件,例如,分立门、晶体管逻辑器件或分立硬件组件。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器501执行时实现本申请中任一方法实施例所述的方法。
该计算机程序产品可以存储在存储器502中,例如是程序504,程序504经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器501执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
该计算机可读存储介质例如是存储器502。存储器502可以是易失性存储器或非易失性存储器,或者,存储器502可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和设备的具体工作过程以及产生的技术效果,可以参考前述方法实施例中对应的过程和技术效果,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
另外,本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
总之,以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
1.一种处理文档的方法,其特征在于,包括:
从云端接收目标文档;
确定所述目标文档是否打印过;
当确定所述目标文档打印过时,确定不打印所述目标文档;
当确定所述目标文档未打印过时,打印所述目标文档。
2.根据权利要求1所述的方法,其特征在于,当确定所述目标文档未打印过时,所述方法还包括:
在打印所述目标文档之后,保存所述目标文档的标识,所述标识用于指示所述目标文档已被打印。
3.根据权利要求1所述的方法,其特征在于,所述确定所述目标文档是否打印过,包括:
当本地存储有所述目标文档的标识时,确定所述目标文档打印过;
当本地未存储所述目标文档的标识时,确定所述目标文档未打印过。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
向所述云端发送指示所述目标文档已打印的指示信息。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述从云端接收目标文档之前,所述方法还包括:
向所述云端发送请求消息,所述请求消息请求获取文档。
6.根据权利要求5所述的方法,其特征在于,所述向所述云端发送请求消息,包括:
从所述云端接收触发消息;
根据所述触发消息向所述云端发送所述请求消息。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述目标文档为处于有效期内的文档。
8.一种处理文档的装置,其特征在于,包括接收单元和处理单元,
所述接收单元用于:从云端接收目标文档;
所述处理单元用于:确定所述目标文档是否打印过;当确定所述目标文档打印过时,确定不打印所述目标文档;当确定所述目标文档未打印过时,打印所述目标文档。
9.根据权利要求8所述的装置,其特征在于,当确定所述目标文档未打印过时,所述处理单元还用于:
在打印所述目标文档之后,保存所述目标文档的标识,所述标识用于指示所述目标文档已被打印。
10.根据权利要求8所述的装置,其特征在于,所述处理单元具体用于:
当本地存储有所述目标文档的标识时,确定所述目标文档打印过;
当本地未存储所述目标文档的标识时,确定所述目标文档未打印过。
11.根据权利要求8至10中任一项所述的装置,其特征在于,还包括发送单元,用于:
向所述云端发送指示所述目标文档已打印的指示信息。
12.根据权利要求8至10中任一项所述的装置,其特征在于,还包括发送单元,用于:
向所述云端发送请求消息,所述请求消息请求获取文档。
13.根据权利要求12所述的装置,其特征在于,
所述接收单元还用于:从所述云端接收触发消息;
所述发送单元具体用于:根据所述触发消息向所述云端发送所述请求消息。
14.根据权利要求8至10中任一项所述的装置,其特征在于,所述目标文档为处于有效期内的文档。
15.一种终端设备,其特征在于,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行:如权利要求1至7中任一项所述的方法。
技术总结