专利名称:Windows环境下工业打标机字库的生成方法
技术领域:
本发明涉及一种Windows环境下工业打标机字库的生成方法
背景技术:
Windows环境下的字库是空心字库,各种字库的笔画造型优美,但用于工业打标机则存在打印效率低地问题,工业打标机除应用空心字库外,还需要开发单线体字库。当前Windows环境下创建单线体矢量字库的方法有1)应用绘图软件开发,该方法开发效率低,且不易创建符合标准的字模和轨迹,需要开发多种字体的字库那就更加困难。2)应用一系列数学方法对空心字库进行轮廓提取与跟踪,再对空心轮廓进行处理,从而生成单线信息。该方法开发难度大,需要投入较多的资金和较长的时间。3)利用DOS环境下的点阵字库生成单线体矢量字库,该方法的缺陷是字体不够多。4)利用大型CAD软件提供的二进制的矢量汉字形文件,将其转换成能用于绘图输出的文本文件。这种方法目前已有人在研究,但还未达到能在工业打标机上作数控输出的程度。本专利自主研发了转换算法,并对转换后的文本文件作了有效的简化、优化和转化工作,并研制了多种应用接口,已达到了实用程发明内容发明目的
该技术能在较少的投资下,较短的时间内开发出较多的单线体字库,能充分利用Windows操作系统和CAD软件的资源,开发出来的单线体字库用户还可以自行修改和添加。该项技术与数控技术相结合,直接应用于汉字笔画数控轨迹的生成,可用于工业标记打印机,激光刻字机,工业绣花机等。对工业打标机的更新换代,改变目前工业打标机汉字输入不方便、打标质量差的落后面貌,将起到极大的推动作用,有着极好的社会经济效益和市场实用背景。
(1)空心字打标轨迹矢量数据的获取
Windows下的TureType字库保存的是文字的空心信息,使用时先根据字库信息将空心文字画出,然后根据需要进行填充。Windows提供了一系列的API函数可以取得空心文字矢量轨迹的一系列数据,具体步骤如下
1)用CreateFontIndirect函数,根据指定的属性创建逻辑字体;
2)用BeginPath函数启动一个路径分支;
3)用Line、Cricle、Arc、Rectangle函数描述当前路径;
4)用EndPath函数停止路径定义;
5)用FlattenPath函数将一个路径中的所有曲线都转换成直线段;
6)用GetPath函数取得对当前路径定义的空心字笔画矢量数据。
(2)骨架字的矢量数据获取
Windows下没有单线体字库,工业打标机无法用windows提供的任何字库直接打印单线体文字。但是在一些CAD软件中含有某些单线体字库,它们以二进制的形文件格式存在,如何利用该资源产生数控工业打标机单线体文字的笔画轨迹是问题关键所在。我们的做法是
1)将CAD等软件中含有的以二进制形文件格式存在的骨架汉字库转换成文本格式的字形定义文件。一个字形定义文件由多个字形定义描述符组成,每个字形定义描述符包括一个标题行和若干个描述行。关于字形定义文件的数据结构见实施例1。
2)对字形定义文件作简化和优化处理,。简化工作是,去掉打标机中用不到的形属性,以提高打印速度;优化工作是,增加非圆曲线描述属性,以提高打印质量。简化优化算法见实施例2。
3)为了提高字库使用时的检索效率,再把优化和简化后的形定义文件转化成字形数据库文件(即最终可在工业打标机中应用的字库文件)。利用数据库管理系统对字库文件做各种维护和访问,有效的提高了字库的使用效率。数据库的表名就是字体名称,而数据表的结构如下表所示;
4)设计完整的汉字编辑和使用该字库的多种软件接口。
汉字检索接口像Word字处理那样在Windows环境下方便地输入要打标输出的各种字体字形汉字,应用数据库技术在指定的单线体字形数据库文件中找到字形属性。汉字检索调用的语句格式为“SELECT字形定义描述行FROM字体名WHERE编码=文字编码”。
汉字图形处理接口根据找到的字形属性数据,应用图形处理技术生成汉字笔画形状,并得到笔画曲线的特征离散点坐标。
字串的修饰接口字串修饰包括拱形、倾斜、缩放、平移、旋转等处理,将相应算法封装到一个类模块中,实现字串的修饰功能。字串的修饰接口见实施例3。
文字串和图形的混排接口因为字库是自定义的字形数据库,可方便地增加一些工业打标中常用的图形、符号。除开发者增加的图形、符号外,用户也可以随时增加新图形符号。在数据库中这些图形与符号文字一样,可以图文混排,以增加打标效果。
造字接口打标机中经常出现的地名、人名和商标等常常不包含于国家标准GB2312-80规定的6 763个汉字和682个图形符号之中。对于这些使用频率极低,但在打标机中常用的文字和符号,只要依照实施例11的格式和规定的数据结构作好字形描述,就可以实现文字的造字功能。发明效果
(1)汉字输入效率高
可应用Windows的各种汉字输入法,与DOS环境下打标机的汉字输入相比,输入效率提高10倍以上。
(2)汉字检索效率高
字形定义文件经优化简化并转化成数据库文件以后,汉字检索效率提高了10倍,由于检索效率的提高,控制计算机的配置可以降低,整个系统的成本也降低了,可提高产品的市场竞争力。
(3)打印质量提高
增加了非圆曲线的属性以后,即使是特大字也不会出现曲线的折线感,笔画失真度下降,打印质量提高。
(4)字体多样化
只要能找到新的二进制汉字形文件,就可以用本专利生成属于自己的字形数据库文件,从而为系统增加一个单线体字库。目前市面上的Windows环境下的打标机几乎都只有一种或两种单线体字库,原因是要创建生成一个单线体字库,时间和资金的开销太大。
(5)字库可维护性、可扩展性好
按规定的数据结构在字形数据库文件中增加记录或修改记录就完成了字库的扩展和修改的任务。
(6)实现图文混排
DXF格式是AutoCAD图形文件中的标记图形数据的一种表示方法。图形文件中所有用户指定的信息都能够以DXF文件格式表示。我们开发了与DXF的接口,可以方便的实现图文混排。
图1字形描述方向代码
图2字串旋转变换
图3字串拱形变换
图4字串放大变换具体实施方式
实施例1字形定义文件格式
用直线、圆弧和NURBS曲线来定义描述文字的形状,形状定义由描述首行和描述符串组成。
形状首行定义有以下内容
shapenumber,defbytes
其中
shapenumber为文字编码,以ASCH码表示;
difbytes为描述符串字节数。
描述符串由基本描述符和专用代码描述符组成,没描述符间用逗号隔开。基本描述符包括两部分矢量长量和方向代码,格式为“0XX”的三个字符。第一个字符0表示后面两个字符为十六进制值,第二个字符指定矢量的长度,第三个字符指定矢量的方向,方向与方向代码由附图1给出。
专用代码描述苻定义如下表所示。实施例2字库优化算法
本字库本质上是由字形属性描述苻记录组成的数据库文件,用户随时可以对字形属性的定义作修改和优化。当然,属性定义修改之后,图形处理分支程序也要作相应的修改。简化、优化的方法很多。其中增加NURBS曲线(非均匀有理B样条)属性是本专利专为特大型汉字增设的字形属性。本属性的处理程序如下1、当一个笔划的坐标增量大于给定的值时,进入本程序。2、首先由原离散型值点定义一条NURBS曲线。其中Ri,3(u)——3次有理基函数;Pi——特征多边形控制点;Wi——控制点的权因子。3、根据特大字的笔划需要在线设定Wi参数。
Wi=0时,控制点位置对字形没影响,Wi增大,局部线段将向Pi接近,Wi→∞时,被拉动的点将与Pi重合。借助权因子很方便地修改笔划的局部形状。NURBS曲线比一般的贝塞尔曲线更能精确的表示自由曲线。
在调整后的NURBS曲线上作线性插值,再作直线插补输出。实施例3字串的修饰1.平移算法
设轨迹中任一点P(X,Y),平移ΔX,ΔY后为P′(X′,Y′),则
X′=X+ΔX
;
Y′=Y+ΔY
用平移算法,实现各打印对象的对齐功能。2.旋转算法
参考附图2,定义屏幕对象左下角为O(Xmin,Ymax),轨迹中任一坐标点P(X,Y)的相位角为θ,旋转给定转角Δθ后的坐标点为P′(X′,Y′),则(1)旋转半径R及相位角θ为(2)旋转后角度θ′=θ+Δθ;(3)旋转后P′(X′,Y′)的坐标为
X′=Xmin+Rcosθ′
Y′=Ymax+Rsinθ′3.拱形算法
参考附图3,定义拱形对象的四角点坐标、拱形变换参数及拱形变换后的点坐标。
(1)设拱形中心坐标O(X0,Y0),拱形起始角θ1,终止角θ2,R1,R2为拱形后屏幕
对象的上下半径,R3为中径(即拱形半径),它们之间的关系为
可得R1、R2、R3;
(2)对于文字矢量路径中任意一点P′(θ,R)(以O(X0,Y0)为极心),根据角度比=宽
度比、半径比=高度比,有关系式
可得拱形后相对极坐标R、θ;
(3)将极坐标点P′(θ,R)转化为以O(X0,Y0)为坐标原点的直角坐标点P′(X,Y)
X=Rcosθ
Y=Rsinθ
(4)由平移算法,最终求得拱形后坐标P′(X′,Y′)
X′=X0+X=X0+Rcosθ
Y′=Y0+Y=Y0+Rsinθ4.放大算法参考附图4,定义屏幕左下角坐标点为O(Xmin,Ymax),轨迹中任一坐标点P(X,Y),缩放倍数为K,则(1)P点的极角为
极径为(2)放大后至P′(X′,Y′)点,
P′点的极角为θ,极径为R1=KR;(3)放大后文字矢量路径P′(X′,Y′)点的直角坐标为
X′=Xmin+R1cosθ
Y′=Ymax+R1sinθ
权利要求
1.一种Windows环境下工业打标机单线体字库的生成方法,其特征是
1)将CAD等大型专业软件中含有的以二进制格式存在的骨架文字的字形文件转换成文本格式的字形定义文件,其技术特征是分析二进制文件的结构,将字形属性转化为文本格式的基本描述符和专用代码描述符;
2)对字形定义文件作针对打标需要的适应性简化和优化处理,去掉打标机中用不到的字形属性,以提高打印速度,增加NURBS曲线描述属性,以提高打印质量;
3)把优化和简化后的形定义文件转化成字形数据库文件,数据库表由两个字段组成文字编码和描述符串;
4)设计完整的使用该字库的软件接口。
2.一种Windows环境下工业打标机字库空心字打标轨迹数据的获取方法
1)用CreateFontIndirect函数,按指定的属性创建逻辑字体;
2)用BeginPath函数启动一个路径分支;
3)用Line、Circle、Arc、Rectangle函数描述当前路径;
4)用EndPath函数停止路径定义
5)用FlattenPath函数将一个路径中的所有曲线都转换成直线段;
6)用GetPath函数取得对当前路径定义的空心字笔画矢量数据。
全文摘要
一种Windows环境下工业打标机字库的生成方法,该方法充分利用Windows操作系统和CAD软件的资源,能在较少的投资下,较短的时间内开发出较多的单线体字库。用户可以对字库自行修改和添加。该项技术与数控技术相结合,直接应用于汉字笔画数控轨迹的生成,可用于工业标记打印机,激光刻字机,工业绣花机等。单线体字库的生成方法步骤是将CAD等大型专业软件中含有的以二进制格式存在的骨架文字的字形文件转换成文本格式的字形定义文件;对字形定义文件作针对打标需要的适应性简化和优化处理;把优化和简化后的形定义文件转化成字形数据库文件;设计完整的字库应用软件接口。
文档编号G06F17/40GK1458604SQ03117739
公开日2003年11月26日 申请日期2003年4月21日 优先权日2003年4月21日
发明者易力力, 陈瑞川, 王成, 陈国聪 申请人:重庆迪佳科技有限公司