一种打印数据排版方法、装置、打印机及存储介质与流程

文档序号:22040571发布日期:2020-08-28 18:03阅读:217来源:国知局
一种打印数据排版方法、装置、打印机及存储介质与流程

本发明涉及打印机技术领域,具体而言,涉及一种打印数据排版方法、装置、打印机及存储介质。



背景技术:

打印指令,又称打印控制命令,计算机通过打印控制语言,以软件命令方法来控制打印机操作,解析执行打印数据,组织被打印的文档,获取打印结果。对于打印机所实现的复杂功能而言,打印控制语言是基础,它直接关系到打印质量的优劣。

打印机的打印模式一般分为:普通字符打印模式、位图打印模式和页打印模式。其中,页打印模式是通过打印控制语言把打印内容分成若干块,每一块视作一页,每一页的数据封装为一包进行处理。在页打印模式下,打印机端需要配置大容量缓存,接收到的数据暂存在缓存中直至一页数据接收完毕。打印过程中若超出页面的设置范围,由于打印机页模式字符边界处理不当,多出数据会出现重叠打印的情况。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种打印数据排版方法、装置、打印机及存储介质,以改善现有技术中页打印模式下打印重叠的问题。

本发明实施例提供了一种打印数据排版方法,包括以下步骤:

当接收到打印指令时,获取待打印数据并存储于缓冲区中;

逐字符接收所述缓冲区中的待打印数据并在当前页面预先设置的可打印逻辑区域上进行排版,当判断可打印逻辑区域上的字符的整体占用区域将要超出所述可打印逻辑区域时,舍弃所述缓冲区内的未接收的字符,并生成打印页面排版;

根据所述打印页面排版打印所述当前页面。

优选地,还包括:

获取可打印逻辑区域、页面打印方向和打印起始位置;其中,

所述可打印逻辑区域包括可打印逻辑宽度和可打印逻辑高度;所述页面打印方向为从左至右、从下至上、从右至左或从上至下。

优选地,所述逐字符接收所述缓冲区中的待打印数据并在当前页面预先设置的可打印逻辑区域上进行排版,当判断可打印逻辑区域上的字符的整体占用区域将要超出所述可打印逻辑区域时,舍弃所述缓冲区内的未接收的字符,并生成打印页面排版,具体为:

从所述缓冲区获取当前接收字符;

在字库中获取所述当前字符对应的点阵数据;

根据上一个点阵数据的坐标,获取当前点阵数据在可打印逻辑区域的当前行的第一预置位置;

判断所述第一预置位置在横向上是否超出所述可打印逻辑区域的当前行的边界;

若否,则将所述点阵数据设置在第一预置位置;

若是,则将所述点阵数据的放置位置调节至下一行的行首,以获得第二预置位置;

判断所述第二预置位置是否在纵向上超出所述可打印逻辑区域的边界;

若否,则将所述点阵数据设置在第二预置位置;

若是,则舍弃当前接收字符以及所述缓冲区内的未接收的字符,以生成打印页面排版。

优选地,还包括:

当判断所述第二预置位置在纵向上未超出所述可打印逻辑区域的边界时,继续逐字符接收所述缓冲区中的待打印数据。

本发明实施例还提供了一种打印数据排版装置,包括:

缓存单元,用于当接收到打印指令时,获取待打印数据并存储于缓冲区中;

页面数据排版单元,用于逐字符接收所述缓冲区中的待打印数据并在当前页面预先设置的可打印逻辑区域上进行排版,当判断可打印逻辑区域上的字符的整体占用区域将要超出所述可打印逻辑区域时,舍弃所述缓冲区内的未接收的字符,并生成打印页面排版;

打印单元,用于根据所述打印页面排版打印所述当前页面。

优选地,还包括:

打印设置获取单元,用于获取可打印逻辑区域、页面打印方向和打印起始位置;其中,

所述可打印逻辑区域包括可打印逻辑宽度和可打印逻辑高度;所述页面打印方向为从左至右、从下至上、从右至左或从上至下。

优选地,所述页面数据排版单元具体用于:

从所述缓冲区获取当前接收字符;

在字库中获取所述当前字符对应的点阵数据;

根据上一个点阵数据的坐标,获取当前点阵数据在可打印逻辑区域的当前行的第一预置位置;

判断所述第一预置位置在横向上是否超出所述可打印逻辑区域的当前行的边界;

若否,则将所述点阵数据设置在第一预置位置;

若是,则将所述点阵数据的放置位置调节至下一行的行首,以获得第二预置位置;

判断所述第二预置位置是否在纵向上超出所述可打印逻辑区域的边界;

若否,则将所述点阵数据设置在第二预置位置;

若是,则舍弃当前接收字符以及所述缓冲区内的未接收的字符,以生成打印页面排版。

优选地,所述页面数据排版单元还用于:

当判断所述第二预置位置在纵向上未超出所述可打印逻辑区域的边界时,继续逐字符接收所述缓冲区中的待打印数据。

本发明实施例还提供了一种打印机,包括控制器以及与所述控制器连接的打印头,所述控制器被配置为执行其内存储的计算机程序以实现如上所述的打印数据排版方法。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的打印数据排版方法。

上述实施例中,在接收待打印数据的过程中,通过将从缓存中取得数据在可打印逻辑区域上进行排版,当判断可打印逻辑区域上的字符的整体占用区域将要超出所述可打印逻辑区域时,舍弃所述缓冲区内的未接收的字符,可以对字符的预填入位置进行判断,准确判定当前页面的可容纳数据,避免了重叠打印。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明第一实施例提供的一种打印数据排版方法的流程示意图。

图2为本发明第一实施例中打印数据排版过程的页面结构示意图。

图3为本发明第二实施例提供的一种打印数据排版装置的结构示意图。

图标:201-缓存单元;202-页面数据排版单元;203-打印单元;204-打印设置获取单元。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

实施例中提及的“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的实施例能够以除了在这里图示或描述的那些以外的顺序实施。

如图1所示,本发明第一实施例提供了一种打印数据排版方法,其可由打印机来执行,具体的,可由打印机内一个或多个处理器来执行,至少包括以下步骤:

s101,当接收到打印指令时,获取待打印数据并存储于缓冲区中。

在本实施例中,所述打印机可以是热转印打印机、热敏打印机、喷墨打印机等,打印机可以通过有线或无线方式接收待打印数据,并通过打印指令解析待打印数据,定义打印作业的各种参数(如打印文档的数量、效果等等),组织被打印的文档,然后将待打印数据在当前页面排版后打印输出。

在本实施例中,特别的,在页打印模式下,打印机配置有大容量的缓冲区,打印内容被分成若干页,每一页的数据封装为一包进行处理,打印机将接收到的数据暂存在缓冲区中直至一页数据接收完毕,然后执行一页的数据打印。

s102,逐字符接收所述缓冲区中的待打印数据并在当前页面预先设置的可打印逻辑区域上进行排版,当判断可打印逻辑区域上的字符的整体占用区域将要超出所述可打印逻辑区域时,舍弃所述缓冲区内的未接收的字符,并生成打印页面排版。

s103,根据所述打印页面排版打印所述当前页面。

在本实施例中,进行打印之前,需要获取打印设置参数,包括打印起始位置、页面打印方向、打印页面范围、可打印逻辑区域、打印效果设置(如格式、水印、渲染)等,本发明不做具体限定。

其中,如图2所示,所述页面打印方向可以为从左至右、从下至上、从右至左或从上至下等。

在本实施例中,所述可打印逻辑区域可预先进行设定,包括可打印逻辑宽度和可打印逻辑高度,其是根据当前页面的大小生成的可打印边界范围。当打印机的打印介质更换后,可以对应设置与所述打印介质相匹配的可打印逻辑区域,以便于在每次打印过程中,根据预先设置的可打印逻辑区域进行字符边界判定,将待打印数据在可打印逻辑区域上进行排版后打印得到当前页面。

在本实施例中,当判断可打印逻辑区域上的字符的整体占用区域将要超出所述可打印逻辑区域时,需要舍弃所述缓冲区内的未接收的字符,以保证一页待打印数据的字符接收数量在所述可打印逻辑区域的范围之内,不会出现重叠打印的情况。

综上,在接收待打印数据的过程中,通过将从缓存中取得数据在可打印逻辑区域上进行排版,当判断可打印逻辑区域上的字符的整体占用区域将要超出所述可打印逻辑区域时,舍弃所述缓冲区内的未接收的字符,可以对字符的预填入位置进行判断,准确判定当前页面的可容纳数据,避免了重叠打印。

在上述实施例的基础上,在一个优选实施例中,所述步骤s102具体为:

s1021,从所述缓冲区获取当前接收字符。

s1022,在字库中获取所述当前字符对应的点阵数据。

在本实施例中,待打印数据是逐字符接收的。其中,每接收一个待打印字符,就根据字库将该字符转换为对应的点阵数据并将其在所述可打印逻辑区域上进行排版。

其中,所述字库一般内置于打印机,是将pc机的汉字及ascii码字库收录到大容量flashrom芯片中形成的硬件字库,可以将文字、图片或图标等信息转换为对应的点阵数据并传送至打印机处理器进行后续处理。

s1023,根据上一个点阵数据的坐标,获取当前点阵数据在可打印逻辑区域的当前行的第一预置位置。

s1024,判断所述第一预置位置在横向上是否超出所述可打印逻辑区域的当前行的边界。

若否,则将所述点阵数据设置在第一预置位置;

若是,则将所述点阵数据的放置位置调节至下一行的行首,以获得第二预置位置;

s1025,判断所述第二预置位置是否在纵向上超出所述可打印逻辑区域的边界;

若否,则将所述点阵数据设置在第二预置位置;

若是,则舍弃当前接收字符以及所述缓冲区内的未接收的字符,以生成打印页面排版。

在本实施例中,将当前接收字符在当前页面预先设置的可打印逻辑区域上进行排版时,需要依次判断当前接收字符的排版位置是否会超出所述可打印逻辑区域的可打印逻辑宽度d和可打印逻辑高度h。其中,可通过计算当前接收字符在可打印逻辑区域上的预置位置的坐标进行边界判定。

具体的,请参阅图2所示,可以根据上一个点阵数据的坐标,获取当前接收字符对应的当前点阵数据在可打印逻辑区域的当前行的第一预置位置。例如,假设上一个点阵数据的坐标为(x0,y0),当前接收字符的第一预置位置的坐标为(x1,y1)则所述第一预置位置的横坐标值x1为上一个点阵数据的横坐标值x0增加一个字符宽度dx,所述第一预置位置的纵坐标值y1为上一个点阵数据的纵坐标值y0。

当x1<d(即预设的可打印逻辑宽度)时,可继续在当前行进行排版。当所述第一预置位置的坐标值x1≥d时,将所述点阵数据的放置位置调节至下一行的行首,以获得第二预置位置。其中,所述第二预置位置的横坐标值x2为页面设置的行首坐标值,所述第一预置位置的纵坐标值y2为上一个点阵数据的纵坐标值y0增加一个字符长度dy。

则当所述第二预置位置的坐标值y2<h(即预设的可打印逻辑长度)时,可继续在下一行进行排版,继续逐字符接收所述缓冲区中的待打印数据。当所述第二预置位置的坐标值y2≥h时,舍弃当前接收字符以及所述缓冲区内的未接收的字符,以生成打印页面排版。

请参阅图3,本发明第二实施例提供了一种打印数据排版装置,包括:

缓存单元201,用于当接收到打印指令时,获取待打印数据并存储于缓冲区中;

页面数据排版单元202,用于逐字符接收所述缓冲区中的待打印数据并在当前页面预先设置的可打印逻辑区域上进行排版,当判断可打印逻辑区域上的字符的整体占用区域将要超出所述可打印逻辑区域时,舍弃所述缓冲区内的未接收的字符,并生成打印页面排版;

打印单元203,用于根据所述打印页面排版打印所述当前页面。

优选地,还包括:

打印设置获取单元204,用于获取可打印逻辑区域、页面打印方向和打印起始位置;其中,

所述可打印逻辑区域包括可打印逻辑宽度和可打印逻辑高度;所述页面打印方向为从左至右、从下至上、从右至左或从上至下。

优选地,所述页面数据排版单元202具体用于:

从所述缓冲区获取当前接收字符;

在字库中获取所述当前字符对应的点阵数据;

根据上一个点阵数据的坐标,获取当前点阵数据在可打印逻辑区域的当前行的第一预置位置;

判断所述第一预置位置在横向上是否超出所述可打印逻辑区域的当前行的边界;

若否,则将所述点阵数据设置在第一预置位置;

若是,则将所述点阵数据的放置位置调节至下一行的行首,以获得第二预置位置;

判断所述第二预置位置是否在纵向上超出所述可打印逻辑区域的边界;

若否,则将所述点阵数据设置在第二预置位置;

若是,则舍弃当前接收字符以及所述缓冲区内的未接收的字符,以生成打印页面排版。

优选地,所述页面数据排版单元202还用于:

当判断所述第二预置位置在纵向上未超出所述可打印逻辑区域的边界时,继续逐字符接收所述缓冲区中的待打印数据。

本发明第三实施例提供了一种打印机,包括控制器以及与所述控制器连接的打印头,所述控制器被配置为执行其内存储的计算机程序以如上所述的打印数据排版方法。

本发明第四实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的打印数据排版方法。

示例性地,本发明所述的计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述实现设备中的执行过程。例如,本发明第二实施例中所述的装置。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述打印方法的控制中心,利用各种接口和线路连接整个所述实现文档打印方法的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现打印方法的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、文字转换功能等)等;存储数据区可存储根据用户终端的使用所创建的数据(比如音频数据、文字消息数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、智能存储卡(smartmediacard,smc)、安全数字(securedigital,sd)卡、闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述实现用户终端的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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