编写API的目的,Zebra官方提供的Unicode转化组件FNTHEX32.DLL,是一个非托管组件,托管环境下还需要再封装。
该组件直到现在还未找到对应的64位程序兼容组件,为了解决32位和64位的兼容问题,最后编写开发此API,
此API完全用.net开发,无需考虑兼容性问题,实现与FNTHEX32.DLL相同的效果。
此API改善了FNTHEX32.DLL中的字体问题,支持windows下所有字体。
程序处理思路:
先将文本用GDI+做绘图,
在内存中绘制出文本对应的图形,
然后将图形进行像素点取点处理,
取出每一个像素点,进行灰度处理,
按照0-255的灰度值,进行黑白判断,
此处取了一个中间一点的值,180,作为黑白分解点,
取出的黑白点,按照01组合,每八个像素点组合成一个字节,不满0填充,0代表白色像素点,1代表黑色像素点
将字节转化成对应的16进制字符,完成无压缩数据获取
在无压缩数据的基础上,按照ZPL指令中进行压缩,可以大量缩减字节长度,ZPL压缩参见ZPL协议
1