ESC/POS 指令打印图片,该如何解决

ESC/POS 指令打印图片
要用ESC/POS 排令打印位图

指令说明:

ESC *  m nL nH d1... dk
[名称]  选择位图模式
[格式]    ASCII  ESC  *  m nL nH d1...dk
Hex  1B  2A  m nL nH d1...dk
Decimal  27  42  m nL nH d1...dk
[范围]    m = 0, 1, 32, 33
0 ≤ nL ≤ 255  
0 ≤ nH ≤ 3    
0 ≤ d ≤255
[描述]       选择由 m 指定的一种位图模式,位图点数由nL和nH确定:

后面的nL,nH,及D1.DK怎么处理呀?

哪位有这方面的经验或DEMO?
------解决方案--------------------
你在网上找找ecs/pos的指令集 ,在百度文库里面有。一般打印图片比较少,打印条码 或 打印 字的比较多些。
------解决方案--------------------
引用:
看来delphi 彻底没人关注了


看打印机的手册及demo程序
esc一般是 chr(27)
nL,nH要看说明,是 字符串还是二进制
------解决方案--------------------
那估计是二进制字节了:
var
  s:string;

s:=chr(27)+chr(42)+chr(m)+chr(nL)+chr(nH)+...;

------解决方案--------------------
给你一段下载位图的代码参考一下吧

        pig.Assign(Image1.Picture.Bitmap);

          Image1.Picture.Bitmap.PixelFormat:=pf8bit;
          iwigth := Image1.Picture.Bitmap.Width;
          iheight := Image1.Picture.Bitmap.Height;


   temp1:= Hex2Char('1B')+Hex2Char('53')+ Hex2Char('1C')+Hex2Char('71')+Hex2Char('01')+Hex2Char(inttohex((iwigth div 8),2))
   +Hex2Char('00')+Hex2Char(inttohex((iheight div 8),2))+Hex2Char('00');

        for j := 0 to iwigth-1 do         //512
        begin
          for i := 0 to (iheight div 8)-1 do     // 10
          begin              //cc.R * 0.299) + (cc.G * 0.587) + (cc.B * 0.114)
                  //(c.R * 0.3 + c.G * 0.59 + c.B * 0.11);
                  ds:=0;
          for l := 0 to 7 do
            begin
              PixPtr:= Image1.Picture.Bitmap.ScanLine[i*8+l];
              icolor:=PixPtr[j];
              k:= icolor;//GetRValue(icolor)*0.3+GetGValue(icolor)*0.59+GetGValue(icolor)*0.11 ;
              if k<=128 then
              dd:= 1
              else
              dd:=0;
              dd:= dd shl (7-l);
              ds:=ds+dd;

            end;

            //temp2:= temp2+' '+ inttostr(icolor);

            m:= strtoint(FormatCurr('0',(ds)));

            temp1:= temp1+ char(m);
          end;
        end;



          
        pig.Width;
        pig.Height;
------解决方案--------------------
都说错了,这个是按位打印的,共9位(九针),最后一位控制打还是不打,其实就是8个点,做硬件的就是变态。话说楼主为什么要用指令打印?驱动容易多了。