掌桥专利:专业的专利平台
掌桥专利
首页

一种图文混排的打印控制方法及装置

文献发布时间:2023-06-19 18:34:06


一种图文混排的打印控制方法及装置

技术领域

本发明涉及图文混排打印的技术领域,尤其涉及一种图文混排的打印控制方法及装置。

背景技术

打印机(Printer)是计算机的输出设备之一,用于将计算机处理结果打印在相关介质上。打印机的种类有多种,不同的打印机能打印不同的图像和文本,尤其在批发、零售、餐饮等行业中,批发商入库、下单、出库、对账等均需要打印机打印不同的单据、二维码和货物图片等,以方便用户采用各种单据进行货物的核算和清点。

由于零售行业需要打印的文字和图像包括多种不同的类型,为了满足用户的不同打印需求,目前常用的方法是拼接打印,具体是将需要或统一组别的图像(比如二维码、条形码、店铺LOGO、货品图片等)和文本(比如货物名称、订货数量等)两两上下拼接或左右拼接,然后打印一行文字,换一行再打印图像,再换一次打印文字,如此间隔打印,使得图像和文字和拼接在一起。

但目前常用的打印方法有如下技术问题:打印后的文字和图像仅能间隔设置,使得成像后的图文仅能上下阅读或左右阅读,成像效果差,用户使用不方便;而且当打印的文本与图像的数量逐渐增加时,打印后图文的长度和宽度也逐渐增加,甚至超出纸张的大小,导致需要额外设置多张纸张进行打印,资源浪费。

发明内容

本发明提出一种图文混排的打印控制方法及装置,所述方法可以将待打印图像转换成二维数组,并切割图像的二维数组,最后将切割后的图像数组与文字的数据组结合以控制打印机采用组合的数组进行打印,使得打印后图像和文字能混合在同一行中,实现图文混排的效果,以提高打印的成像效果,减少打印所需的纸张。

本发明实施例的第一方面提供了一种图文混排的打印控制方法,所述方法包括:

在获取待打印图像后,将所述待打印图像转换为二维格式的二维数组;

将所述二维数组切割成若干个模块数组,并将每个所述模块数组与对应行数的预设文本数组结合,得到若干个打印数组;

分别采用每个所述打印数组编辑打印指令,采用若干个所述打印指令控制打印机打印混排图文。

在第一方面的一种可能的实现方式中,所述将所述二维数组切割成若干个模块数组,包括:

将所述二维组数转换成预设进位计数制的计数数组;

获取打印机的针的排列层数,按照所述排列层数划分所述计数数组,得到若干个模块数组。

在第一方面的一种可能的实现方式中,所述将所述待打印图像转换为二维格式的二维数组,包括:

将所述待打印图像转换成Canvas格式的格式图像;

从所述格式图像中提取RGBA颜色的点数组,并对所述点数组进行二值化处理,得到二值化数组;

按照二维格式将所述二值化数组转换为二维数组。

在第一方面的一种可能的实现方式中,在所述分别采用每个所述打印数组编辑打印指令的步骤前,所述方法还包括:

将关于图文间距的空格数据填充至每个所述打印数组中。

本发明实施例的第二方面提供了一种图文混排的打印控制装置,所述装置包括:

转换模块,用于在获取待打印图像后,将所述待打印图像转换为二维格式的二维数组;

切割组合模块,用于将所述二维数组切割成若干个模块数组,并将每个所述模块数组与对应行数的预设文本数组结合,得到若干个打印数组;

打印控制模块,用于分别采用每个所述打印数组编辑打印指令,采用若干个所述打印指令控制打印机打印混排图文。

在第二方面的一种可能的实现方式中,所述切割组合模块,还用于:

将所述二维组数转换成预设进位计数制的计数数组;

获取打印机的针的排列层数,按照所述排列层数划分所述计数数组,得到若干个模块数组。

在第二方面的一种可能的实现方式中,所述转换模块,还用于:

将所述待打印图像转换成Canvas格式的格式图像;

从所述格式图像中提取RGBA颜色的点数组,并对所述点数组进行二值化处理,得到二值化数组;

按照二维格式将所述二值化数组转换为二维数组。

在第二方面的一种可能的实现方式中,所述装置还包括:

填充模块,用于将关于图文间距的空格数据填充至每个所述打印数组中。

相比于现有技术,本发明实施例提供的一种图文混排的打印控制方法及装置,其有益效果在于:本发明可以将待打印图像转换成二维数组,按照打印机的针的排列层数切割二维数组,使得图像的打印高度与文字的打印高度相同,最后将切割后的数组数据与文字的数据组结合以控制打印机采用组合的数组进行打印,使得打印后图像和文字能混合在同一行中,实现图文混排的效果,以提高打印的成像效果,减少打印所需的纸张。

附图说明

图1是本发明一实施例提供的一种图文混排的打印控制方法的流程示意图;

图2是本发明一实施例提供的一种图文混排的打印控制方法的操作流程图;

图3是本发明一实施例提供的一种图文混排的打印控制装置的结构示意图。

具体实施方式

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

打印机(Printer)是计算机的输出设备之一,用于将计算机处理结果打印在相关介质上。打印机的种类有多种,不同的打印机能打印不同的图像和文本,尤其在批发、零售、餐饮等行业中,批发商入库、下单、出库、对账等均需要打印机打印不同的单据、二维码和货物图片等,以方便用户采用各种单据进行货物的核算和清点。

由于零售行业需要打印的文字和图像包括多种不同的类型,为了满足用户的不同打印需求,目前常用的方法是拼接打印,具体是将需要或统一组别的图像(比如二维码、条形码、店铺LOGO、货品图片等)和文本(比如货物名称、订货数量等)两两上下拼接或左右拼接,然后打印一行文字,换一行再打印图像,再换一次打印文字,如此间隔打印,使得图像和文字和拼接在一起。

但目前常用的打印方法有如下技术问题:打印后的文字和图像仅能间隔设置,使得成像后的图文仅能上下阅读或左右阅读,成像效果差,用户使用不方便;而且当打印的文本与图像的数量逐渐增加时,打印后图文的长度和宽度也逐渐增加,甚至超出纸张的大小,导致需要额外设置多张纸张进行打印,资源浪费。

为了解决上述问题,下面将通过以下具体的实施例对本申请实施例提供的一种图文混排的打印控制方法进行详细介绍和说明。

参照图1,示出了本发明一实施例提供的一种图文混排的打印控制方法的流程示意图。

其中,作为示例的,所述图文混排的打印控制方法,可以包括:

S11、在获取待打印图像后,将所述待打印图像转换为二维格式的二维数组。

在一实施例中,待打印图像可以包括单据、小票里的图片,例如二维码、条形码、货品图片等。

二维格式可以是二值格式。

将待打印转换成二维格式的二维数组,可以方便打印机识别数据,以及与文本数据进行结合,使得打印机可以根据结合后的数据进行打印。

其中,作为示例的,步骤S11可以包括以下子步骤:

S111、将所述待打印图像转换成Canvas格式的格式图像。

S112、从所述格式图像中提取RGBA颜色的点数组,并对所述点数组进行二值化处理,得到二值化数组。

S113、按照二维格式将所述二值化数组转换为二维数组。

具体地,可以先将图像转换成Canvas格式的图像,其中,格式图像可以是CanvasAPI(画布),该画布是在HTML5中新增的标签用于在网页实时生成图像,并且可以操作图像内容。把加载完成后的图片对象转为Canvas格式的图像,以便后续利用Canvas的api的获取点阵处理。

然后,可以从Canvas格式的图像获取RGBA颜色点。具体可以调用Canvas的getImageData方法获取图片对应的RGBA颜色点数组。数组里4个值,RGBA是代表Red(红色)Green(绿色)Blue(蓝色)和Alpha的色彩空间。因此RGBA4个数值对应一个颜色点。

接着,对图像的点数组进行二值化处理。具体是把上述的颜色点转为灰度图,即没有颜色的黑白图。并用二值化算法进行二值化处理,以灰度平均值作为阀值,把灰度图的256个亮度等级简化成0和1这2个值。1代表黑,即打印该点,0代表白,不打印该点。

再接着,将二值化数组转换为打印机需要的二维数组。由于打印机ESC指令打印图片需要特殊的二维格式表示,上述转化后的二值化数组是一维数组,可以将二值化数组转化成二维数组。

S12、将所述二维数组切割成若干个模块数组,并将每个所述模块数组与对应行数的预设文本数组结合,得到若干个打印数组。

由于二维数组是包含了整个待打印图像的数据,其打印所占的位置较大,文本所占的位置较小。为了能让文本与图像处于同一行的位置,可以将二维数组进行切割,得到若干个模块数组。每个模块数组是对应一行打印的文本。进而能将图像的模块数据与文本数组进行结合,在后续打印时能同时打印图像与文本,并让图像与文本处于同一行的位置,实现图文混排的效果。

由于打印机中包含多条针,针的排列顺序决定打印的顺序,为了能与打印机匹配,在一可选的实施例中,步骤S12可以包括以下子步骤:

S121、将所述二维组数转换成预设进位计数制的计数数组。

由于打印机图片ESC指令是竖向读值,而二维数组是横向存储。可以根据斜对角线先把二维数组进行旋转,把原本横向的数据变为竖向,再把竖向的数据转换成对应进位计数制的数组,得到计数数组。

例如,可以把竖向的数据每8个点转化为一个十六进制数据,不足8位补充空白0。待全部转为十六进制后,再把数组逆向旋转回来,使二维数组可以转换成十六进制的数据。

S122、获取打印机的针的排列层数,按照所述排列层数划分所述计数数组,得到若干个模块数组。

例如,使用的打印机为针式打印机,此类打印机通常是24根针,由24根针打印一行。而每根针对应一个点,每8个点为一层,24根针分为3层。

转化后的十六进制数据刚好是8个点,即一个数组内的十六进制数据对应一层高度。打印机打印一行有3层,即打印一行需要3个十六进制数据。

可以按照3层将上述的十六进制的计数数组进行切割,从而得到若干个模块数组,每个模块数组均包含3个十六进制数据。例如,计数数组包括30个十六进制数据。按照3层(1层对应一个十六进制数据)将包含30个十六进制数据的计数数组划分成10个模块数组。

到此为止,已经把一整张的图片切割成按行存储的图片数据。打印机打印一个文字是24个点,每行存储的图片数据是3层也是24个点,因此每一行图片的高度刚好和一行文字的高度相等。这时候,已经实现了文本打印技术图文混排最关键的一步,当打印机从上到下打印每一行时,它可以任意打印图像数据或者文字数据,因为它们的高度是相等的,已经把图像切割成和文字等高的数据。

由于图像的数组与文本的数组等高,可以将图像与文本的数组进行两两组合、或者在打乱编排、又或者组合在一起,结合成给一个打印数组。

使得打印机在打印时能同时打印文本与图像,使得打印后的文本与图像能结合在一起,实现图文混合。

S13、分别采用每个所述打印数组编辑打印指令,采用若干个所述打印指令控制打印机打印混排图文。

在实际操作中,可以将包含了文本与图片数据的打印数组作为输入数据,将输入数据转为为打印机能识别的ESC指令,再将指令发送给打印机,以使打印机能根据指令进行打印操作。

需要说明的是,若打印竖向排版的单据或小票时,可以根据单据或者销售小票竖向排版的定位,把同一行的文字和图片数据放进同一行的打印数组里,表示它们是同一行的打印内容,后面打印机只要识别指令,按行打印即可。

在组合图像与文本的数组时,只是把图像数据和文字数据简单得放进数组里,他们是紧挨着的,打印出来也是紧挨着,但是在单据里,他们往往是有一定的间距的。为了能让打印出来的图像与文本中间留有一定的间距,在其中一种的实施例中,在步骤S13前,所述方法还可以包括:

S21、将关于图文间距的空格数据填充至每个所述打印数组中。

具体地,可以根据像素点和空格的大小比例换算,将间距转为对应的空格数据,再将空格的数据填充到数组中,使得打印机在采集数据进行打印时,在遇到空格数据后就会留出对应的距离。

需要说明的是,可以根据单据和小票的布局来决定填充多少个空格,从而计算得到所需的空格数据的数量。

参照图2,示出了本发明一实施例提供的一种图文混排的打印控制方法的操作流程图。

具体地,先加载待打印图像,然后将图像转换成canvas格式的对象,并canvas中提取RGBA颜色点,对颜色点进行二值化处理变成黑白点阵,再将黑白点阵转换成打印机对应的二维数据并进行数据补全,接着切割二维数据,最后将图像的二维数据与文本数据结合并编辑成对应的控制指令,以控制打印机进行打印操作。

在本实施例中,本发明实施例提供了一种图文混排的打印控制方法,其有益效果在于:本发明可以将待打印图像转换成二维数组,按照打印机的针的排列层数切割二维数组,使得图像的打印高度与文字的打印高度相同,最后将切割后的数组数据与文字的数据组结合以控制打印机采用组合的数组进行打印,使得打印后图像和文字能混合在同一行中,实现图文混排的效果,以提高打印的成像效果,减少打印所需的纸张。

本发明实施例还提供了一种图文混排的打印控制装置,参见图3,示出了本发明一实施例提供的一种图文混排的打印控制装置的结构示意图。

其中,作为示例的,所述图文混排的打印控制装置可以包括:

转换模块301,用于在获取待打印图像后,将所述待打印图像转换为二维格式的二维数组;

切割组合模块302,用于将所述二维数组切割成若干个模块数组,并将每个所述模块数组与对应行数的预设文本数组结合,得到若干个打印数组;

打印控制模块303,用于分别采用每个所述打印数组编辑打印指令,采用若干个所述打印指令控制打印机打印混排图文。

可选地,所述切割组合模块,还用于:

将所述二维组数转换成预设进位计数制的计数数组;

获取打印机的针的排列层数,按照所述排列层数划分所述计数数组,得到若干个模块数组。

可选地,所述转换模块,还用于:

将所述待打印图像转换成Canvas格式的格式图像;

从所述格式图像中提取RGBA颜色的点数组,并对所述点数组进行二值化处理,得到二值化数组;

按照二维格式将所述二值化数组转换为二维数组。

可选地,所述装置还包括:

填充模块,用于将关于图文间距的空格数据填充至每个所述打印数组中。

所属技术领域的技术人员可以清楚地了解到,为方便的描述和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

进一步的,本申请实施例还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例所述的图文混排的打印控制方法。

进一步的,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行如上述实施例所述的图文混排的打印控制方法。

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

技术分类

06120115614452