佳博 热敏打印机 ESCPOS 指令研究

Test.txt内容:
参考打印到文档功能:
初识打印机驱动
http://www.cnblogs.com/MrDing/p/4078189.html
热敏打印头打印原理和C实现黑白位图的放大
https://www.jianshu.com/p/c754bfa377e4

ascii码 :

十六进制 十进制 字符 含义
0a 10 \n LF
0d 13 \r CR
1b 27 esc
1d 29 gs

热敏打印机参数:

首先佳博GP-L80180I票据打印机技术参数

打印方式 直接热敏式
打印密度 576点/行或512点/行
打印速度 180毫米/秒
接口类型 串口+USB+网口
打印纸宽 79.5±0.5毫米
纸张厚度 0.06~0.08毫米
纸卷外径 83毫米
可靠性 100公里
使用字库 简体中文GB18030大字库
条形码类型 UPC-A/UPC-E/JAN13(EAN13)/JAN8(EAN8)/CODE39/ITF/CODABAR/CODE93/CODE128
字符大小 ANK字符:FontA:12×24点 FontB:9×17点 简体/繁体:24×24点
打印命令 兼容ESC/POS命令

log与流程的对应关系:

对应的代码如下:

// 打印头宽度约为 80mm 的打印函数

BOOL USB_GPL801_PrintInStandardMode80(void)
{


    int ret ;

    ret = VC_POS_Reset();
    printf("VC_POS_Reset ret = %d\r\n",ret);

    VC_POS_FeedLine();
    VC_POS_FeedLine();

    //VC_POS_PreDownloadBmpToRAM("a.BMP",3);
    ret = VC_POS_PreDownloadBmpToRAM("Kitty.bmp",3);
    printf("VC_POS_PreDownloadBmpToRAM ret = %d\r\n",ret);



    int nRet = VC_POS_SetMotionUnit(180, 180);

    if(POS_SUCCESS != nRet)
    {
        return false;
    }

    VC_POS_SetMode(POS_PRINT_MODE_STANDARD);


    VC_POS_FeedLine();
    VC_POS_FeedLine();


    VC_POS_FeedLine();
    VC_POS_S_TextOut("通行卡ID:", 70, 1, 1, POS_FONT_TYPE_CHINESE,
        POS_FONT_STYLE_NORMAL);


    VC_POS_S_TextOut("3303000012345678", 190, 1, 1, POS_FONT_TYPE_CHINESE,
        POS_FONT_STYLE_NORMAL);     

        VC_POS_FeedLine();

    VC_POS_S_TextOut("入口时间:", 70, 1, 1, POS_FONT_TYPE_CHINESE,
        POS_FONT_STYLE_NORMAL);

    VC_POS_S_TextOut("2018-04-20  10:10:10", 190, 1, 1, POS_FONT_TYPE_CHINESE,
        POS_FONT_STYLE_NORMAL);

        VC_POS_FeedLine();

    VC_POS_S_TextOut("金额:", 70, 1, 1, POS_FONT_TYPE_CHINESE,
        POS_FONT_STYLE_NORMAL);    

    VC_POS_S_TextOut("86.00元", 190, 1, 1, POS_FONT_TYPE_CHINESE,
        POS_FONT_STYLE_NORMAL);

        VC_POS_FeedLine();


    VC_POS_S_TextOut("车牌:", 70, 1, 1, POS_FONT_TYPE_CHINESE,
        POS_FONT_STYLE_NORMAL);

    VC_POS_S_TextOut("鲁A66001[蓝色]", 190, 1, 1, POS_FONT_TYPE_CHINESE,
        POS_FONT_STYLE_NORMAL);   

        VC_POS_FeedLine();
        VC_POS_FeedLine();

    //VC_POS_S_PrintBmpInRAM(3,20,POS_BITMAP_PRINT_NORMAL);
    VC_POS_S_PrintBmpInRAM(3,20,POS_BITMAP_PRINT_QUADRUPLE);

    VC_POS_FeedLine();
    VC_POS_FeedLine();
    VC_POS_FeedLine();
    VC_POS_FeedLine();
    VC_POS_FeedLine();
    VC_POS_FeedLine();

    // 切纸
    VC_POS_CutPaper(POS_CUT_MODE_FULL, 0);


    return TRUE;

}

这里写图片描述
设置的太小,容易丢数据
log如下:

这里写图片描述

打印出来的效果如下:
这里写图片描述

下面开始分析:

1b 40

这里写图片描述

0a 0a —– 两次换行
这里写图片描述

1d 23 03
应该是 定义 ID号为03

1d 2a 10 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

这里写图片描述

x = 0x10
y = 0x06
下面的是位图数据:
101x46像素
这里写图片描述

这里写图片描述

这个文件头 54个字节 可能是理解不对

这里写图片描述

发送的数据 和 bmp 的数据 有点不一致 ,有空分析一下

16 x 6 x 8 = 768个字节
24 x 32 = 768 字节

继续下面的操作:

1d  50 b4 b4 1b  53 0a 0a 0a  

1b 24 46 00  1b 4d 03 

1d  42 00 
1d 62  00 
1d 21 00  

1b 45 00 

1b  7b 00 

1b 2d  00 
1c 2d 00  
1b 56 00 
cd  a8 d0 d0 bf  a8 49 44 3a  
1b 24 be 00               
1b 4d 03 
1d  42 00 
1d 62  00 
1d 21 00
  1b 45 00 
  1b  7b 00 
  1b 2d  00 
  1c 2d 00  1b 56 00 
  33  33 30 33 30               
30 30 30 31  32 33 34 35  36 37 38 0a  
1b 24 46 00  
1b 4d 03 1d  42 00 1d 62  00 1d 21 00  1b 45 00 1b               
7b 00 1b 2d  00 1c 2d 00  1b 56 00 
c8  eb bf da ca  b1 bc e4 3a  

1b 24 be 00  1b 4d 03 1d  42 00 1d 62               
00 1d 21 00  1b 45 00 1b  7b 00 1b 2d  00 1c 2d 00  1b 56 00 
32  30 31 38 2d  30 34 2d 32  30 20 20 31               
30 3a 31 30  3a 31 30 0a  

1b 24 46 00  1b 4d 03 1d  42 00 1d 62  00 1d 21 00  1b 45 00 1b  7b 00 1b 2d               
00 1c 2d 00  1b 56 00 bd  f0 b6 ee 3a  
1b 24 be 00  1b 4d 03 1d  42 00 1d 62  00 1d 21 00  1b 45 00 1b               
7b 00 1b 2d  00 1c 2d 00  1b 56 00 38  36 2e 30 30  d4 aa 0a 
1b  24 46 00 
1b  4d 03 1d 42  00 1d 62 00               
1d 21 00 1b  45 00 1b 7b  00 1b 2d 00  1c 2d 00 1b  56 00 b3 b5  c5 c6 3a 
1b  24 be 00 
1b  4d 03 1d 42               
00 1d 62 00  1d 21 00 1b  45 00 1b 7b  00 1b 2d 00  1c 2d 00 
1b  56 00 
c2 b3  41 36 36 30  30 31 5b c0               
b6 c9 ab 5d     鲁A66001[蓝色]


0a 0a 

1b 24  14 00 1d 23  03 1d 2f 03  0a 0a 0a 0a  0a 0a 1d 56  00

1d 50 b4 b4
这里写图片描述

1b 53
这里写图片描述

1b 24 46 00
这里写图片描述

0x46 = 70

1b 4d 03 选择中文 字体
这里写图片描述

1d 42 00
这里写图片描述

1d 62 00 —- 这个不知道

1d 21 00
这里写图片描述
这里写图片描述
1b 45 00
这里写图片描述

1b 7b 00
这里写图片描述

1b 2d 00
这里写图片描述

1c 2d 00
这里写图片描述

1b 56 00
这里写图片描述

cd a8 d0 d0 bf a8 49 44 3a
http://www.mytju.com/classcode/tools/encode_gb2312.asp
这里写图片描述

1b 24 be 00
这里写图片描述

VC_POS_S_PrintBmpInRAM(3,20,POS_BITMAP_PRINT_QUADRUPLE);

1b 24  14 00 
1d 23  03   --- 选择ID 03
1d 2f 03  0a 0a 0a 0a  0a 0a 1d 56  00

1d 2f 03
这里写图片描述

1d 56 00
这里写图片描述

这里写图片描述
这里写图片描述

这里写图片描述

《佳博热敏票据打印机编程手册.pdf》有二维码指令

page49
这里写图片描述

猜你喜欢

转载自blog.csdn.net/wowocpp/article/details/80749259