解决方案 »

  1.   

    看来delphi 彻底没人关注了
      

  2.   

    你在网上找找ecs/pos的指令集 ,在百度文库里面有。一般打印图片比较少,打印条码 或 打印 字的比较多些。
      

  3.   


    看打印机的手册及demo程序
    esc一般是 chr(27)
    nL,nH要看说明,是 字符串还是二进制
      

  4.   

    那估计是二进制字节了:
    var
      s:string;s:=chr(27)+chr(42)+chr(m)+chr(nL)+chr(nH)+...;
      

  5.   


    把它发送到 串口或打印口,就行了m、nL、nH都是整数变量
      

  6.   

    给你一段下载位图的代码参考一下吧        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;
      

  7.   

    这个打印图像我做过,大致和15楼说的差不多,以下基于VB的写法
    就是先获取图像数据,当然是把一张图全转成0,1,也就是白点,黑点来表示,然后把每8位转成一个十进制数
    (打印时有一个要注意的就是把M置为十进制33,然后以高度24为一块进行处理,即)
    for i=top to height step 24
        getpicdata hdc,j,24,width
            Print #HDC_Printer, Chr$(&H1B); "*"; Chr$(33); Chr$(xL); Chr$(xH);
            For i = 0 To UBound(buf)
                Print #HDC_Printer, Chr$(buf(i));
            Next
            Print #HDC_Printer, Chr$(&HA);
    next