用打印指令(Epson)画条形码 ( 积分: 200 )

  • 主题发起人 主题发起人 zhb2736920
  • 开始时间 开始时间
Z

zhb2736920

Unregistered / Unconfirmed
GUEST, unregistred user!
1000分,顶者50分
我找了一下午,都没有找到相同的问题,我把问题描述一下:
打印机是:LQ 16000KIII+,需要打印很长的连续纸(两边带孔)
我以前用打印指令打印的条形码现在客户不满意,因为用打印指令打印的条形码其最小的高度是1/4英寸,(这一点也由Epson公司确定),客户要求能达1/8英寸,我想只能用打印指令来画条形码了,谁有这方面的经验和资料,我现在用的是交叉25码,希望大家讨论!能解决问题者1000分,
zhb2736920@tom.com
13556663297
 
1000分,顶者50分
我找了一下午,都没有找到相同的问题,我把问题描述一下:
打印机是:LQ 16000KIII+,需要打印很长的连续纸(两边带孔)
我以前用打印指令打印的条形码现在客户不满意,因为用打印指令打印的条形码其最小的高度是1/4英寸,(这一点也由Epson公司确定),客户要求能达1/8英寸,我想只能用打印指令来画条形码了,谁有这方面的经验和资料,我现在用的是交叉25码,希望大家讨论!能解决问题者1000分,
zhb2736920@tom.com
13556663297
 
大家进来看一看吧
 
我只有39Code的和EAN-13的
 
首先谢谢pascal,你能不能把资料传上来,我试试
 
[D:],比较感兴趣!会一直关注!
 
这个分我要了,以下是根据传递的数字自行生成EAN13条码的BMP图片的函数,然后调整BMP的长宽就可以达到任意大小的条形码了,因为这个函数是我在ElibEh里面的一条单元的基本上写的,所以需要引用FrBarCod单元,如需要,留言
function ValidBarCode(const data:string):string;
var i,Len,sum : Integer;
begin
sum := 0;
Len := Length(data);
for i:=1 to Length(data)do
begin
if (Len mod 2) = 0 then
sum := sum + (StrToInt(data)*1)
else
sum := sum + (StrToInt(data)*3);
dec(Len);
end;
if (sum mod 10) = 0 then
result := data+'0'
else
result := data+IntToStr(10-(sum mod 10));
end;

procedure BarCode(var Code:String;
var BmpBar:TBitmap;
ShowNum:Boolean);
var bc: TfrBarCode;
//TfrBarcode;
Bmp: TBitmap;
begin
Bmp:=TBitmap.Create;
Code:=Trim(Code);
case Length(Code) of
12: Code:=ValidBarCode(Code);
13: ;
else
BmpBar:=Bmp;
Exit;
end;
try
bc:=TfrBarCode.Create(Nil);
bc.Text:=Trim(Code);
bc.Typ:=bcCodeEAN13;
bc.Checksum:=False;
//自动生成校验位
bc.Angle:=0;
//角度
bc.Ratio:=1;
//放大比例
Bmp.Width := 120;
Bmp.Height := 100;
// bc.Width:=60;
//使用默认值
bc.Left:=(bmp.Width-bc.Width) div 2;
bc.Top:=10;
bc.Height:=bmp.Height-bc.Top*2;
with Bmp.Canvasdo
begin
Font.Color := clBlack;
Font.Name := 'Courier New';
Font.Height := -12;
Font.Style := [];
end;
if ShowNum then
bc.Height:=bc.Height-Bmp.Canvas.TextHeight(Code);
bc.DrawBarcode(Bmp.Canvas);
//写识别码
if ShowNum then
Bmp.Canvas.TextOut(bc.Left+2,bc.Top+bc.Height+2, bc.Text);
BmpBar:=Bmp;
finally
bc.Free;
end;
end;
 
说错了,FrBarCod不是Ehlib里面的,是FastReport里面的
 
后退
顶部