我一直在寻找一个如何格式化和打印bmp到我的收据打印机(这样我可以添加徽标)的例子很长一段时间,所以我怀疑这是一个重复的帖子考虑到其他人是为java或其他脚本语言。通常我很擅长理解指令,但我发现的只是那些我永远无法完全理解的旧指令。在
我使用Python2.7,有一个函数pI(x),它使用win32print将数据发送到打印机,其中x是字符串格式的数据,使用“\x??”对于十六进制数据,如格式化文本。看来效果不错。在
我的打印机附带的程序员手册上写着(用于下载bit image,GS*)的语法:Hex 1D 2A x y d1...dk
以及:
^{pr2}$
以下是关于这些说明的问题:
这是否意味着所有x,y,d1…dk都是十六进制(或“\x??)”?我认为是这样。在
x和y代表什么?我不久前在一个站点(可能是这个站点)上读到x+y*255=imagewidth,我假设这是使用操作顺序。这是对的吗?在
我的普通打印机上的说明也指出x和y都应该在1到48之间,总共不超过1500,不像有些手册说x应该在0和3之间,y在1到128之间(我想),它说x+y*255=宽度,总共大约2000。它还表示k=x*y*8,我想这个例子应该是8*8*8=512*“\x01”,那么第三个8是从哪里来的,我如何在字符串中编码呢???x=宽度y=高度?。。。那么,如何获得最大384点的图像宽度?在
这是否意味着我必须为每个点输入“\x00”或“\x01”,因此GS*的一个实例(8x8的小黑色块)将是64*“\x01”?在
我是不是必须每一组8点高或一行8点,或者这会覆盖先前编程的数据?在
我想稍后在我的程序中加入一种方法,使用tkinter canvas小部件轻松创建徽标,并将其保存到文本文件中,以备将来使用pI()进行打印,因此我真的需要知道如何直接将图像数据“下载”到打印机,并且使用第三方模块,因为我想继续使用pI()函数。是的,这是雄心勃勃的,我可能做得很艰难。但我担心如果我开始加入太多我不熟悉的新东西,我会变得太困惑。在
基本上,我应该发送什么字符串给pI()来下载一个8x8点实心黑盒子的图像,在打印机的中心有一条2x宽的白线?在