0

我有一台 Star Micronics TSP100 打印机,我正试图通过Delphi 7 的OPOS使用它。我似乎无法让它打印条形码。

我可以打开、声明和启用、打印文本和剪切,但不能打印条形码。

我尝试了许多导入 Active X 控件来处理打印机的方法,就像我对 Bixolon 三星 POS 打印机所做的那样,效果很好。

欢迎任何指点。
代码:

procedure TForm1.OpenbtnClick(Sender: TObject);
begin
  showmessage(inttostr( posprinter1.Open('StarTSP100')));
end;

procedure TForm1.ClaimbtnClick(Sender: TObject);
begin
   showmessage(inttostr( posprinter1.ClaimDevice(0)));
end;

procedure TForm1.EnablebtnClick(Sender: TObject);
begin
  POSPrinter1.DeviceEnabled := True;
end;

procedure TForm1.PrintbtnClick(Sender: TObject);
begin
  POSPrinter1.PrintNormal(2,'A Test' + #10);
end;

procedure TForm1.PrintBCbtnClick(Sender: TObject);
begin
  POSPrinter1.PrintBarCode(2, '1234567890', 108, 1000, trunc(POSPrinter1.RecLineWidth * 0.8), -2, -13);
end;

procedure TForm1.CutbtnClick(Sender: TObject);
begin
  POSPrinter1.CutPaper(100);
end;

end.
4

2 回答 2

0

您可以通过该方法检查打印机是否支持条码打印CapRecBarCode

您将条形码大小设置为 1000 高 x (RecLineWidth * 0.8) 宽。如果条形码对于纸张来说太大,或者如果您分配的空间对于条形码字符串的长度来说是两个小,则它往往不会被打印。

PrintBarcode可能是 1000 的高度太大,所以它没有被打印出来,如果是这种情况,返回值为106 - Illegal. 尝试我们使用的小得多的数字6096高度。

于 2013-08-05T12:36:54.830 回答
0

我测试了自动代码并发现了问题。您必须设置 MapMode = 4; (默认 MapMode = 1)后可以打印 Code 39,EAN,codes 打印。

procedure TForm1.PrintBCbtnClick(Sender: TObject);
begin
POSPrinter1.MapMode := 4;  
POSPrinter1.PrintBarCode(2, '1234567890', 108, 1000, trunc(POSPrinter1.RecLineWidth * 0.8), -2, -13);
end;
于 2014-11-27T18:40:09.437 回答