本申请涉及打印技术领域,具体而言,涉及一种打印方法、装置及存储介质。
背景技术:
针式打印机是一种特殊的打印机,如银行存折打印机、高速行式打印机等,和喷墨、激光打印机都存在很大的差异,而针式打印机的这种差异是其它类型的打印机不能取代的,正是因为如此,针式打印机一直都有着自己独特的市场份额,服务于一些特殊的行业用户。
对于针式打印机,会存在一些生僻字。本申请中提到的生僻字指的是打印机的硬字库不包含的汉字。例如,有的打印机只支持gbk字符集,则gbk21003个汉字之外的字其硬字库不包含,无法通过文本指令打印模式直接打印。有的打印机支持gb18030-2000中收录的汉字,则gb18030-2005中增加的汉字或其后unicode等国际/国内标准收录的汉字也无法打印。背景技术中如果要打印生僻字,则需通过打印机厂家升级硬字库,要么只能采购新的支持所需生僻字的打印机,这都需要硬件更新或采购的成本。升级硬字库还受打印机字库ic插槽数量、支持的容量大小等限制。
技术实现要素:
本申请提供一种打印方法、装置及非易失性存储介质,以解决相关技术中,如果存在生僻字的情况下,无法通过文本指令打印模式直接打印的问题。
根据本申请的一个方面,提供了一种打印方法,该方法包括:
获取待打印信息,待打印信息包括待打印字符;
判断待打印字符是否为生僻字;
如果待打印字符是生僻字,则在预设的点阵软字库中查找与待打印字符对应的生僻字点阵数据;
将生僻字点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印。
在一些实施例中,判断待打印字符是否为生僻字包括:
确定与待打印字符对应的字节序列;
判断字节序列是否在打印机配置参数支持的编码范围;
如果不是,则判定待打印字符为生僻字。
在一些实施例中,该方法还包括:
如果待打印字符不是生僻字,则将待打印字符的字节序列发送给打印机的驱动接口进行打印。
在一些实施例中,打印信息还包括控制指令字节流;方法还包括:
如果待打印字符为生僻字,则基于控制指令字节流对应的控制指令对生僻字点阵数据进行预处理,得到目标点阵数据;
将生僻字点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印包括:
将目标点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印。
在一些实施例中,该方法还包括:
如果待打印字符为非生僻字,则将控制指令替换为打印机控制指令发送给打印机。
根据本发明实施例的另一方面,还提供了一种打印装置,该装置包括:
获取单元,被配置为获取待打印信息,待打印信息包括待打印字符;
判断单元,被配置为判断待打印字符是否为生僻字;
查找单元,被配置为如果待打印字符是生僻字,则在预设的点阵软字库中查找与待打印字符对应的生僻字点阵数据;
第一打印单元,被配置为将生僻字点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印。
在一些实施例中,判断单元包括:
确定子单元,被配置为确定与待打印字符对应的字节序列;
判断子单元,被配置为判断字节序列是否在打印机配置参数支持的编码范围;
判定子单元,被配置为如果不是,则判定待打印字符为生僻字。
在一些实施例中,该装置还包括:
第二打印单元,被配置为如果待打印字符不是生僻字,则将待打印字符的字节序列发送给打印机的驱动接口进行打印。
在一些实施例中,打印信息还包括控制指令字节流;该装置还包括:
预处理单元,被配置为如果待打印字符为生僻字,则基于控制指令字节流对应的控制指令对生僻字点阵数据进行预处理,得到目标点阵数据;
第一打印单元具体被配置为:
将目标点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印。
在一些实施例中,该装置还包括:
替换单元,被配置为如果待打印字符为非生僻字,则将控制指令替换为打印机控制指令发送给打印机。
根据本发明实施例的另一方面,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种打印方法。
根据本发明实施例的另一方面,还提供了一种打印装置,包含处理器和存储器,存储器中存储有计算机可读指令,处理器用于运行所述计算机可读指令,其中,该计算机可读指令运行时执行一种打印方法。
据资料统计,目前国内十几亿人口中,名字中有冷僻字的超过6000万人。这些公民在各行业办理相关业务时的打印场景还是使用针式打印机的文本指令打印模式。这些存量针式打印机的硬字库能支持gbk之外的生僻字还是比较少的,导致不支持的生僻字无法打印。而升级打印机的硬字库受打印机厂家的支持、升级成本等影响往往不可行。使用本申请公开的打印驱动方法可以较好地解决此问题,应用程序的改动也较小,则总体成本较低。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是用于打印汉字“啊”的24×24点阵示意图;
图2是针式打印机24根针绘图时打印针与输入数据的3字节对应关系图;
图3是根据本公开实施例提供的一种配置文件读取方法的流程图;
图4是根据本申请实施例提供的一种软字库文件格式示意图;
图5是根据本公开实施例提供的一种打印方法的流程图;
图6是本公开实施例提供的一种打印装置结构图;以及
图7是根据本申请实施例提供的打印装置判断单元的结构图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请提供的实施例应用于针式打印机。常见的针式打印机打印头有24针、9针等型号,打印24×24点阵的汉字或图形时,24针打印机可以一次打印完成,9针打印机则需要从上往下分3次打印。汉字打印一般需要16×16或更高的点阵,若用24×24或48×48的点阵则更精细;而英文字母、数字等字符,即使使用8×8的点阵打印也还清晰,若汉字采用16×16点阵则英文字母、数字等半角字符一般采用8×16点阵(宽8个点、高16个点),若汉字采用24×24点阵则英文字母、数字等半角字符一般采用12×24点阵,即半角字符的打印宽度等于汉字等全角字符的一半。有的针式打印机支持复写纸打印,用户可以根据需求来选择多联纸张,一般常用的多联纸有2联、3联、4联纸,其中也有使用6联的打印机纸。多联纸一次性打印完成只有针式打印机能够快速完成,喷墨打印机、激光打印机无法实现多联纸打印。
针式打印机的常用打印模式为文本指令打印模式,该模式为目前绝大多数应用开发者使用的模式。使用该模式打印的前提是能接收文本指令打印模式的打印机需要有硬字库支持。打印机收到文本指令后在其硬字库中通过字符的内码(如:字符的ascii编码、汉字的gbk或gb18030编码、big5编码等)查询得到字符或者汉字的点阵序列,最后将点阵序列发送给打印头完成打印。图1是用于打印汉字“啊”的24×24点阵示意图,需要说明的是,“啊”不属于生僻字,只是对打印流程做示例说明。
在该实施例中,存储时,点阵的每一个点作为一个字节的某一个bit,取值为1或0分别代表点阵中的填充点或空白。因为24针的针式打印机打印头有24根针,从上到下排列,所以该24×24点阵字库是按列扫描存储的。也就是说,72个字节是先从上到下再从左到右的排序顺序:
对于“啊”字,用于打印的72字节的点阵字库数据为:
0x00,0x00,0x00,
0x00,0x00,0x00,
0x3f,0xff,0xe0,
0x10,0x02,0x00,
0x10,0x02,0x00,
0x3f,0xff,0x80,
0x10,0x00,0x00,
0x00,0x00,0x00,
0x7f,0xff,0xff,
0x3f,0xff,0xfe,
0x20,0xc0,0x80,
0x3f,0x31,0xc0,
0x78,0x1f,0x80,
0x20,0x00,0x00,
0x11,0xff,0x80,
0x10,0x82,0x00,
0x10,0x82,0x08,
0x11,0xff,0x08,
0x10,0x80,0x0c,
0x10,0x00,0x0e,
0x1f,0xff,0xfc,
0x3f,0xff,0xf8,
0x30,0x00,0x00,
0x00,0x00,0x00,
如果需要打印生僻字,则要提供该生僻字的类似上述24×24点阵数据,即可在支持位图打印模式的针式打印机上打印该生僻字。
图2是针式打印机24根针绘图时打印针与输入数据的3字节对应关系图。打印机以全部的24根针来绘图,这些针分为3组,由3个8位字节的资料来控制,以形成最多24个垂直点的线。而每一根打印针的位置,都有以对应值。基于该对应关系,可以确定打印机激发哪几根针。对于支持epsonesc/p指令的打印机(一些存折打印机指令类似)需要esc*指令送出对应值,就可以控制对应的针撞击。如果同时要使用几根针有作用,则把个阵对应数值相加后,把总和发给打印机。下面结合具体案例进行详细说明。
如果要在支持gbk的针式打印机上打印“测试
对于本打印驱动接口,假如为c函数:pinprint(unsignedchar*str)
扫描到入参str的开头2字节为“b2,e2”,属于gbk的“测”字,一般打印机都支持,直接将此2字节发往打印机;
继续扫描到入参str后面的2字节为“ca,d4”,属于gbk的“试”字,一般打印机都支持,直接将此2字节发往打印机;
再继续扫描到入参str后面的4字节为“99,33,c3,36”,属于gb18030的4字节汉字(cjk统一汉字扩充e),一般打印机都不支持,于是需要从软字库中读出点阵数据。然后根据打印机位图打印模式指令格式组装数据:
对于支持epsonesc/p指令的打印机(一些存折打印机指令类似)图像打印模式之指令是:esc*mn1n2d1d2...di
其中esc是escape字符(0x1b),“*”的ascii编码为0x2a,m代表图像密度,垂直点密度为180点/英寸、水平点密度也为180点/英寸时的24针模式为crt三倍密度,m值为39(0x27)
图形的总列数n=n1 n2*256,反过来计算n1和n2(下面mod是取余运算,int是取整):
n1=nmod256
n2=int(n/256)
指令后面的“d1d2...di”表示输入的图像数据,n1、n2决定要送出多少个图像数据,对于24×24点阵,每一列需要送出3个字节的数据,因此列数的3倍便是所需的图像数据字节数:24×3=72,n=24,所以n1=24(0x18),n2=0。
最后组装的打印指令数据为(16进制,省略了c/java语言的0x,逗号为方便阅读的分隔符):
1b,2a,27,18,00,...(用于打印的72字节点阵字库数据)
打印机打印效果如下:
测试
本公开提供的打印方法可以包括配置文件读取和打印两部分。
图3是根据本公开实施例提供的一种配置文件读取方法的流程图,如图3所示的配置文件读取方法包括:
步骤s01:本打印驱动初始化时打开规定的配置文件;
所述配置文件至少包括以下打印参数:
打印机型号、连接端口(com1、lpt1等)、位图打印模式指令、支持的字符集、支持的编码范围(允许多个分段)、本驱动定义的倍宽/倍高/倍宽且倍高等控制指令和对应的打印机控制指令、点阵软字库文件名、缺字替代符号等。
示例的,a型号打印机支持gbk字符集,a型号打印机的位图打印指令是:“esc*其它参数”。b型号打印机支持gb18030-2000字符集,b型号打印机的位图打印指令是:“escp其它参数”。c型号打印机的位图打印指令是:“escq其它参数”。其中esc是escape字符(0x1b)。
配置文件中可以针对不同型号的打印机配置其对应的参数,本公开提供的实施例可以适配多种型号的打印机。配置文件示意举例(下面使用了中文以帮助理解,实际应用一般会使用英文单词或单词缩写组成的关键字):
[a型号打印机]
位图打印指令=esc*其它参数
字符集=gbk
参数名1=参数值1
参数名2=参数值2
参数名3=参数值3
[b型号打印机]
位图打印指令=escp其它参数
字符集=gb18030
参数名1=参数值12
参数名2=参数值22
参数名3=参数值32
[c型号打印机]
位图打印指令=escq其它参数
字符集=gb18030
参数名1=参数值13
参数名2=参数值23
参数名3=参数值33
步骤s02:从上述配置文件中读取打印参数;
可选的,因为配置文件中一行配置一个参数,通过循环读,每次读一行,处理一行,然后回到循环开头,读下一行直到文件结束。
实施例中的打印参数如果合法,则将对应的参数值保存在内存中,遇到错误参数值则报错。
可选的,一个或多个参数被配置为合法参数范围。
示例的,假如配置文件的某一行是“性别=男”,则对应的参数名称是“性别”,则对应的合法参数值是“男”。参数名称是“性别”对应的合法参数范围为“男”或者“女”,这样可以自动筛选一些错误的选项。
比如性别,一般设置两个取值:“男”,“女”。如果写个别的值,如“公”,就被认为是非法的。
步骤s03:打开点阵软字库文件,以便接口随时读取。
软字库的定义类似于电脑里的文件,可以随时更新。硬字库的定义一般是集成在打印机里面的ic芯片,出厂后里面的东西无法修改、增加、删除。
本公开除了背景技术中提到的硬字库,还提到了软字库。其中,硬字库收录了一些符合国家强制标准的汉字,但是不一定包含所有的文字。例如gb18030-2000收录的汉字部分属于国家标准的强制性部分,所以很多针式打印机最多支持到gb18030-2000,这样gb18030-2005新增的生僻字就不在硬字库中从而导致无法打印。
本公开提到的软字库包含各种生僻字,示例的,所述软字库为人口信息系统的字库厂商提供的软字库,如“fzsong-rkxx.ttf”为方正宋体-人口信息字库。该字库收录3万多汉字,涵盖了各地整理的全部地名、姓氏和人名用字。
又示例的,google于2017年发布了思源宋体这一免费的大字库,7种粗细类型中的每一种都有65535个字形,总共拥有七种粗细字重,共设计了458745个汉字。也就是说每一种字重包括65535个字形。本发明提到的软字库也可以是思源宋体大字库。
再示例的,软字库也可以自定义实现,所述软字库中只要包含硬字库中不包含的生僻字。该软字库中的文字可以不断增加。
软字库文件很多是自定义的格式,当然也有公开的,如windows下fonts目录下的.ttf文件。
图4是根据本申请实施例提供的一种软字库文件格式示意图,如图4所示的文件格式,文件头是一个索引表,在这里可以查到软字库包含哪些字,文件体则是每个字的点阵信息。
图5是根据本公开实施例提供的一种打印方法的流程图,如图5所示的打印方法包括:
步骤s10:获取待打印信息,待打印信息包括待打印字符;
在一些实施例中,可以通过打印机的扫描应用程序通过接口送来的待打印字符。
可选的,待打印信息还包括控制指令字节流。
步骤s11:判断待打印字符是否为生僻字;
在一些实施例中,步骤s11还可以包括:
步骤s111、确定与待打印字符对应的字节序列;
可选的,字节序列是指完整字节序列。
步骤s112、判断字节序列是否在打印机配置参数支持的编码范围;
也就是说,判断打印机的硬字库中是否包含该字符。
步骤s113、如果不是,则判定待打印字符为生僻字。
如果在打印机配置参数支持的编码范围,则判定待打印字符为非生僻字。
步骤s12:如果待打印字符是生僻字,则在预设的点阵软字库中查找与待打印字符对应的生僻字点阵数据;
如果找不到对应的生僻字点阵数据,则使用配置参数的缺字替代符号代替。
步骤s13:将生僻字点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的驱动接口进行打印。
在待打印信息还包括控制指令字节流的情况下,如果待打印字符为非生僻字,则将控制指令替换为打印机控制指令发送给打印机。也就是说,若字节流中遇到本驱动定义的控制指令,对于硬字库支持的字符,替换为对应的打印机控制指令发往打印机;对于生僻字,则对s12取得的点阵数据进行相关处理,如倍宽指令则将点阵数据横向放大一倍。
对于生僻字,将步骤s12获得的生僻字点阵数据或步骤s13处理过的生僻字点阵数据按配置参数的打印机位图打印模式指令格式组装后发往打印机的连接端口(com1、lpt1等)。
本实施例中,打印驱动接口提供常见语言如c、java语言的实现,提供c语言的调用函数库(.lib/.dll/.a/.so等格式)、java类方法(提供.jar包),应用程序按接口名调用。
如果应用程序的打印部分是java的.jar包且缺源码(例如第三方提供),反编译打印.jar包修改后再生成新.jar包有风险的话,可以利用javaagent技术在加载字节码时,仅在内存中对字节码进行修改的方式实现。
图6是本公开实施例提供的一种打印装置结构图,该打印装置包括:
获取单元61,被配置为获取待打印信息,待打印信息包括待打印字符;
判断单元62,被配置为判断待打印字符是否为生僻字;
查找单元63,被配置为如果待打印字符是生僻字,则在预设的点阵软字库中查找与待打印字符对应的生僻字点阵数据;
第一打印单元64,被配置为将生僻字点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印。
图7是本公开实施例提供的一种打印装置判断单元的结构图,如图7所示,判断单元62包括:
确定子单元621,被配置为确定与待打印字符对应的字节序列;
判断子单元622,被配置为判断字节序列是否在打印机配置参数支持的编码范围;
判定子单元623,被配置为如果不是,则判定待打印字符为生僻字。
在一些实施例中,该装置还包括:
第二打印单元65,被配置为如果待打印字符不是生僻字,则将待打印字符的字节序列发送给打印机的驱动接口进行打印。
在一些实施例中,打印信息还包括控制指令字节流;该装置还包括:
预处理单元56,被配置为如果待打印字符为生僻字,则基于控制指令字节流对应的控制指令对生僻字点阵数据进行预处理,得到目标点阵数据;
第一打印单元64具体被配置为:
将目标点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印。
在一些实施例中,该装置还包括:
替换单元67,被配置为如果待打印字符为非生僻字,则将控制指令替换为打印机控制指令发送给打印机。
本公开还提供一种打印装置,所述打印装置包括处理器和存储器,上述获取单元61、判断单元62、查找单元63、第一打印单元64等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,程序运行时控制非易失性存储介质所在的设备执行一种打印方法。
本申请实施例还提供了一种电子装置,包含处理器和存储器;存储器中存储有计算机可读指令,处理器用于运行计算机可读指令,其中,计算机可读指令运行时执行一种打印方法。本文中的电子装置可以是服务器、pc、pad、手机等。
本公开实施例为解决涉及生僻字的打印时当前针式打印机硬字库不包含该生僻字,应用程序使用文本指令打印模式,导致无法打印的问题。条件是针式打印机支持位图打印模式(银行的常用存折打印机基本都支持),则本发明的驱动可以使用外部的字库发送生僻字的点阵序列给打印机进行打印。实现了通过应用程序改直接发送字符流数据给打印机为调用本发明的驱动接口,改动较小,无需按windowsgdi方式调用。另外通过配置文件的适配,使得本公开不限于windows下使用,在linux或其它操作系统下也可以使用,另外也无需硬件升级或新采购的成本。
对于打印机的硬字库支持的字符只发送字符的编码,硬字库不包含的字符(生僻字)才发送字符的软字库点阵数据按图形打印,对于少量生僻字的场景这种硬字库加软字库的混合打印模式比windows驱动的纯图形模式打印速度将快得多。对于不同厂家的打印机可以使用配置文件消除指令和支持字符集的差异。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
1.一种打印方法,其特征在于,所述方法包括:
获取待打印信息,所述待打印信息包括待打印字符;
判断所述待打印字符是否为生僻字;
如果所述待打印字符是生僻字,则在预设的点阵软字库中查找与所述待打印字符对应的生僻字点阵数据;
将所述生僻字点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印。
2.根据权利要求1所述的打印方法,其特征在于,所述判断所述待打印字符是否为生僻字包括:
确定与所述待打印字符对应的字节序列;
判断所述字节序列是否在所述打印机配置参数支持的编码范围;
如果不是,则判定所述待打印字符为生僻字。
3.根据权利要求2所述的打印方法,其特征在于,所述方法还包括:
如果所述待打印字符不是生僻字,则将所述待打印字符的字节序列发送给打印机的驱动接口进行打印。
4.根据权利要求2所述的打印方法,其特征在于,所述打印信息还包括控制指令字节流;所述方法还包括:
如果所述待打印字符为生僻字,则基于所述控制指令字节流对应的控制指令对所述生僻字点阵数据进行预处理,得到目标点阵数据;
所述将所述生僻字点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印包括:
将所述目标点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
如果所述待打印字符为非生僻字,则将所述控制指令替换为打印机控制指令发送给所述打印机。
6.一种打印装置,其特征在于,所述装置包括:
获取单元,被配置为获取待打印信息,所述待打印信息包括待打印字符;
判断单元,被配置为判断所述待打印字符是否为生僻字;
查找单元,被配置为如果所述待打印字符是生僻字,则在预设的点阵软字库中查找与所述待打印字符对应的生僻字点阵数据;
第一打印单元,被配置为将所述生僻字点阵数据按照预设配置参数的打印机的位图打印模式指令格式组装后,发送给打印机的第一驱动接口进行打印。
7.根据权利要求6所述的打印装置,其特征在于,所述判断单元包括:
确定子单元,被配置为确定与所述待打印字符对应的字节序列;
判断子单元,被配置为判断所述字节序列是否在所述打印机配置参数支持的编码范围;
判定子单元,被配置为如果不是,则判定所述待打印字符为生僻字。
8.根据权利要求7所述的打印装置,其特征在于,所述装置还包括:
第二打印单元,被配置为如果所述待打印字符不是生僻字,则将所述待打印字符的字节序列发送给打印机的驱动接口进行打印。
9.一种非易失性存储介质,其特征在于,所非易失性存储介质包括存储的程序,其中,所述程序运行时控制所述非易失性存储介质所在的设备执行权利要求1至5中任意一项所述的打印方法。
10.一种打印装置,其特征在于,包含处理器和存储器,所述存储器中存储有计算机可读指令,所述处理器用于运行所述计算机可读指令,其中,所述计算机可读指令运行时执行权利要求1至5中任意一项所述的打印方法。
技术总结