我用fr3.25做的条形码,D7下编译的程序。
打印机试过:zebra Z4Mplus ,zebra 140Xi2,zebra 140Xi3,zebra 110Xi3
label纸:宽76mm*高152mm
设计fr3报表是横着设计的,如下:
152***********************=**********************152
76(前)******************=********************** 76
76(前)******************=********************** 76
76 (前)******************=********************** 76 
76(前)******************=********************** 76
76(前)******************=********************** 76
152***********************=**********************152
普通打印机打印时应该把打印机paper选择一下为横着(L)就可以打印出来了
条码打印机应该也是这样吧?
但现在出现了一个问题,用条码打印机打印的label,先出来的后半页所有条码
都变成了黑黑的一块,文字则正常。而后出的前半页所有条码文字都正常?
请问大家这个是fr3的bug还是我的程序有问题??
还是打印机有问题?不能这样横着打印?打印机驱动程序有问题?我换了上面四
台打印机都还是这个样子啊

解决方案 »

  1.   

    做过TEC的条码打印机~~我是直接写打印控制字符`~
      

  2.   

    Anylib,创意、自由、灵活的体现,超强的报表功能,独特的双数据源连接,全功能的表格组件,它带给你的是轻松,美妙!http://www.anylib.com
      

  3.   

    ly_liuyang
    rave报表或BarCode2用Canvas输出
    ---------------------
    rave做报表简直是恶梦,D7自带的Rave很难用!!!做出来还不能指定页码打印(BUG???)
    BarCode2是什么?控件吗?
      

  4.   

    zebra是专用的条码打印机吧?要不你发一个你的报表给我看看rongxingletter#163.com注明CSDN
      

  5.   

    用报表打印速度比较慢的,如果你针对ZEBRA设计程序,可以考虑用厂家的
    协议或DLL来开发!
      

  6.   

    ron_xin(星雨):上面所说的zebra打印机是专用的条码打印机。但是一样可以当普通打印机用的
    newfang(传说中的MIC) :是要求可以用任何的打印机打印,速度不会慢多少的。
      

  7.   

    这样吧,你用Labelview条码设计软件先在zebra打印机上设计好(固定值),然后在Labelview打印至文件,会生成一个以PRN结尾的文件,用记事本打开该文件,就可以得到打印控制码,你只要写语句替换换里面的数值参数就可以了~~~zebra的打印控制符是很容易看清楚你要替换的数值的,其他的可以不去管他了`~
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        Button2: TButton;
        procedure PrintLuggage(LuggageTag,PassportID,GuestName,BirthDate,Nationality,ShipFerryNo,AirFerryDate,AirFerryNo,Dest,BagCount, shipTicketNo,Operator :string);
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      PrintCortrol :TStringList;implementation{$R *.dfm}procedure TForm1.PrintLuggage(LuggageTag,PassportID,GuestName,BirthDate,Nationality,ShipFerryNo,AirFerryDate,AirFerryNo,Dest,BagCount, shipTicketNo,Operator :string);
    begin
      PrintCortrol :=TStringList.Create;
      PrintCortrol.Clear;
      PrintCortrol.Add('{D4480,0510,4450|}');
      PrintCortrol.Add('{C|}');
      PrintCortrol.Add('{U2;0130|}');
      PrintCortrol.Add('{D4480,0510,4450|}');
      PrintCortrol.Add('{AX;+000,+000,+00|}');
      PrintCortrol.Add('{AY;+00,0|}');
      PrintCortrol.Add('{XB00;0477,0045,3,1,03,03,06,06,03,2,0035|}');
      PrintCortrol.Add('{RB00;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{PC000;0134,0015,05,05,E,22,B|}');
      PrintCortrol.Add('{RC00;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{XB01;0035,1023,3,1,03,03,09,09,03,3,0439|}');
      PrintCortrol.Add('{RB01;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{XB02;0055,1099,3,1,03,03,09,09,03,0,0320|}');
      PrintCortrol.Add('{RB02;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{XB03;0035,2877,3,1,03,03,09,09,03,3,0439|}');
      PrintCortrol.Add('{RB03;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{XB04;0055,2936,3,1,03,03,09,09,03,0,0320|}');
      PrintCortrol.Add('{RB04;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{XB05;0055,3771,3,1,03,03,09,09,03,0,0043|}');
      PrintCortrol.Add('{RB05;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{XB06;0055,4193,3,1,03,03,09,09,03,0,0045|}');
      PrintCortrol.Add('{RB06;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{PC001;0474,0096,05,05,E,22,B|}');
      PrintCortrol.Add('{RC01;'+trim(GuestName)+'|}');
      PrintCortrol.Add('{PC002;0474,0073,05,05,E,22,B|}');
      PrintCortrol.Add('{RC02;3A081/20060627 HKA >> '+trim(Dest)+'|}');
      PrintCortrol.Add('{PC003;0474,0050,05,05,E,22,B|}');
      PrintCortrol.Add('{RC03;3434/20060627 ZH >> HKA|}');
      PrintCortrol.Add('{PC004;0358,1468,10,10,E,22,B|}');
      PrintCortrol.Add('{RC04;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{PC005;0454,1607,05,05,E,22,B|}');
      PrintCortrol.Add('{RC05;SeriaLNo:'+trim(shipTicketNo)+'|}');
      PrintCortrol.Add('{PC006;0454,1638,05,05,E,22,B|}');
      PrintCortrol.Add('{RC06;BAG:'+trim(BagCount)+'|}');
      PrintCortrol.Add('{PC007;0454,1696,05,05,E,22,B|}');
      PrintCortrol.Add('{RC07;'+trim(AirFerryNo)+'/'+trim(AirFerryDate)+' HKA >>'+trim(Dest)+'|}');
      PrintCortrol.Add('{PC008;0454,1760,05,05,E,22,B|}');
      PrintCortrol.Add('{RC08;Nationality:'+trim(Nationality)+'|}');
      PrintCortrol.Add('{PC009;0454,1790,05,05,E,22,B|}');
      PrintCortrol.Add('{RC09;BirthDate:'+trim(BirthDate)+'|}');
      PrintCortrol.Add('{PC010;0454,1823,05,05,E,22,B|}');
      PrintCortrol.Add('{RC10;NAME:'+trim(GuestName)+'|}');
      PrintCortrol.Add('{PC011;0454,1859,05,05,E,22,B|}');
      PrintCortrol.Add('{RC11;PassID:'+trim(PassportID)+'|}');
      PrintCortrol.Add('{PC012;0129,2034,05,05,E,00,B|}');
      PrintCortrol.Add('{RC12;FINAL DESTINATION|}');
      PrintCortrol.Add('{PC013;0096,2308,10,10,C,00,B|}');
      PrintCortrol.Add('{RC13;'+trim(AirFerryNo)+' / '+trim(AirFerryDate)+'|}');
      PrintCortrol.Add('{PC014;0160,2199,20,20,E,00,B|}');
      PrintCortrol.Add('{RC14;'+trim(Dest)+'|}');
      PrintCortrol.Add('{PC015;0454,1729,05,05,E,22,B|}');
      PrintCortrol.Add('{RC15;'+trim(ShipFerryNo)+'/'+AirFerryDate+' ZH >>HKA|}');
      PrintCortrol.Add('{PC016;0038,3680,05,05,E,00,B|}');
      PrintCortrol.Add('{RC16;'+trim(AirFerryNo)+'/'+trim(AirFerryDate)+' HKA >>'+trim(Dest)+'|}');
      PrintCortrol.Add('{PC017;0038,3655,05,05,E,00,B|}');
      PrintCortrol.Add('{RC17;'+trim(ShipFerryNo)+'/'+AirFerryDate+' ZH >>HKA|}');
      PrintCortrol.Add('{PC018;0101,3604,05,05,E,00,B|}');
      PrintCortrol.Add('{RC18;BAG IDENTIFICATION TAG|}');
      PrintCortrol.Add('{PC019;0038,3703,05,05,E,00,B|}');
      PrintCortrol.Add('{RC19;DEST-|}');
      PrintCortrol.Add('{PC020;0114,4038,05,05,E,00,B|}');
      PrintCortrol.Add('{RC20;BAG IDENTIFICATION TAG|}');
      PrintCortrol.Add('{PC021;0038,4069,05,05,D,00,B|}');
      PrintCortrol.Add('{RC21;'+trim(GuestName)+'|}');
      PrintCortrol.Add('{PC022;0038,4089,05,05,E,00,B|}');
      PrintCortrol.Add('{RC22;'+trim(AirFerryNo)+'/'+trim(AirFerryDate)+' HKA >>'+trim(Dest)+'|}');
      PrintCortrol.Add('{PC023;0038,4112,05,05,E,00,B|}');
      PrintCortrol.Add('{RC23;'+trim(ShipFerryNo)+'/'+AirFerryDate+' ZH >>HKA|}');
      PrintCortrol.Add('{PC024;0038,4137,05,05,E,00,B|}');
      PrintCortrol.Add('{RC24;DEST-|}');
      PrintCortrol.Add('{PC025;0454,0157,10,10,C,11,B|}');
      PrintCortrol.Add('{RC25;'+trim(Dest)+'|}');
      PrintCortrol.Add('{XB07;0426,0228,3,1,03,03,09,09,03,2,0063|}');
      PrintCortrol.Add('{RB07;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{XB08;0426,0350,3,1,03,03,09,09,03,2,0063|}');
      PrintCortrol.Add('{RB08;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{PC026;0454,0279,10,10,C,11,B|}');
      PrintCortrol.Add('{RC26;'+trim(Dest)+'|}');
      PrintCortrol.Add('{PC027;0038,3634,05,05,D,00,B|}');
      PrintCortrol.Add('{RC27;'+trim(GuestName)+'|}');
      PrintCortrol.Add('{PC028;0304,0142,05,05,E,22,B|}');
      PrintCortrol.Add('{RC28;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{PC029;0304,0264,05,05,E,22,B|}');
      PrintCortrol.Add('{RC29;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{PC030;0170,3860,10,10,C,00,B|}');
      PrintCortrol.Add('{RC30;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{PC031;0170,4290,10,10,C,00,B|}');
      PrintCortrol.Add('{RC31;'+trim(LuggageTag)+'|}');
      PrintCortrol.Add('{PC032;0449,1549,05,05,F,22,B|}');
      PrintCortrol.Add('{RC32;Operter:'+trim(Operator)+'|}');
      PrintCortrol.Add('{XR;0096,2098,0411,2217,B|}');
      PrintCortrol.Add('{XS;I,0001,0002C2200|}');
      PrintCortrol.Add('{U1;0130|}');
      //PrintCortrol.SaveToFile('C:\123.prn');
      //PrintCortrol.Free;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      prtstr: string;
      filehandle: integer;
    begin
      prtstr := PrintCortrol.Text;
      filehandle := fileopen('LPT1', fmOpenWrite);
      if filehandle > 0 then
        filewrite(filehandle, prtstr[1], length(prtstr))
      else
        showmessage('打开并口错误');
      fileclose(filehandle);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      PrintLuggage('3A801104','T3432','LIUXIN XIN','19650525','CHN','3434','20060627','3A081','TPE','2','I232432679004','KING')
    end;end.
      

  8.   

    Button1Click//赋值
    Button2Click//打印,这个直接写在PrintLuggage就行了~~
      

  9.   

    如果需要自定义纸张,建议不要用FR,因为这个功能是FR致命伤啊,和QR一样的,没屁用.还是RB吧,这个自定义功能超好,自定义好了报表,打印机那边就不用管了,而且条码功能也不错
      

  10.   

    非常感谢ron_xin(星雨) ( )
    但是我这个label的数据主要是从数据库调出来的,我希望可以直接打印
      

  11.   

    你把数据用ADOQUERY传给PrintLuggage不就行了?