2013-08-05 4 views
0

델파이 7에서 OPOS을 통해 사용하려고 시도한 Star Micronics TSP100 printer이 있습니다. 인쇄 바코드를 만들 수없는 것 같습니다.Delphi 7의 스타 TSP100에 바코드 인쇄

바코드를 인쇄하고 텍스트를 인쇄하고자를 수 있지만 인쇄 할 수는 없습니다.

필자는 Bixolon Samsung POS 프린터와 마찬가지로 프린터를 처리하기 위해 Active X 컨트롤을 가져 오는 많은 방법을 시도했습니다.

모든 안내를 환영합니다.
코드 : 프린터가 CapRecBarCode 방법으로 바코드 prinitng을 지원하는 경우

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. 
+0

'PrintBarCode'의 반환 값은 무엇입니까? – Re0sless

+0

반환 값 0 - 프린터는 용지를 앞뒤로 움직이지만 아무 표시도하지 않습니다. – user2652915

+0

높이가 1000이면 106을 반환 할 때 미안 반환 값은 0입니다. – user2652915

답변

0

당신은 확인할 수 있습니다.

(RecLineWidth * 0.8) 너비로 바코드 크기를 1000 높이로 설정 중입니다. 바코드가 용지에 비해 너무 크거나 할당 한 공간이 바코드 문자열의 길이에 비해 2 작은 경우 인쇄되지 않는 경향이 있습니다.

1000의 높이가 커지기 때문에 인쇄되지 않습니다.이 경우 PrintBarcode의 반환 값은 106 - Illegal이됩니다. 우리는 높이를 위해 60 또는 96을 사용하는 훨씬 더 작은 숫자를 시도하십시오.

+0

CapRecBarCode는 true를 반환합니다. 차이점없이 높이 값을 60으로 변경하고 다시 96으로 변경했습니다. 또한 컷 페이퍼가 전송 될 때까지 일반 텍스트를 인쇄하지 않습니다. – user2652915

+0

또한 델파이에 등록해야하는 OCX가 궁금합니다 – user2652915

+0

첨부 된 줄 바꿈이있을 때 인쇄합니다 – user2652915

0

필자는 자동 코드를 테스트하여 문제를 발견했습니다. MapMode = 4로 설정해야합니다. (기본 MapMode = 1) 코드 39, EAN을 인쇄 할 수있게되면 코드 인쇄가됩니다.

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