바코드 프로그램은 라벨프린터의 종류에 따라 엄격히 소스가 달라집니다.
일반 프린터로 뽑는 것은 더욱 힘들고요. 일반 S/W(코드소프트)로 간단히 뽑을 수도 있고요. 하여간 요점은 라벨프린터에 따라서 (프린터자체적으로 인터프리터가 있는 경우도 있습니다) 지원하는 (폰트,글자크기,선바꾸기 등등) 코맨드가 틀리니 참고하시기 바랍니다. 중요한건 기종별로 메뉴얼이 있으니 그것을 보시는게 제일 빠를 겁니다.
참고로 인터맥(intermec 3240) 바코드소스와 intermec PM4I 기조의 바코드 소스를 보내드립니다. 단지 참고만 하시기 바랍니다.
바코드프로그램 소스는 자료실에서 몇개 올라와 있는거를 본거 같은데요.
참고서적은 책을 보시는 것은 무리일겁니다. 바코드 생성의 원리등에
대해서 나왔기 때문에 시간만 많이 낭비되고요.
간단하게 어떤 용도에 적합한지 알고 싶다면 바코드 장비판매 업체의
홈피에 보면 각 바코드의 특성에 대해 설명이 있습니다.
그걸 참조하시는게 더 좋을 듯하네요.
아님 어떤 용도로 쓸것이며, 바코드 장비를 쓸것인지 아니면 S/W로 구현할
것(콤퍼넌트나, 폰트)인지를 글로 남겨주시면 도움을 드릴수 있을지도 모르
겠네요.
일반 프린터로 뽑는 것은 더욱 힘들고요. 일반 S/W(코드소프트)로 간단히 뽑을 수도 있고요. 하여간 요점은 라벨프린터에 따라서 (프린터자체적으로 인터프리터가 있는 경우도 있습니다) 지원하는 (폰트,글자크기,선바꾸기 등등) 코맨드가 틀리니 참고하시기 바랍니다. 중요한건 기종별로 메뉴얼이 있으니 그것을 보시는게 제일 빠를 겁니다.
참고로 인터맥(intermec 3240) 바코드소스와 intermec PM4I 기조의 바코드 소스를 보내드립니다. 단지 참고만 하시기 바랍니다.
intermec 3240
--------------------------------------------------------------------
const
NUL = chr(0); SOH = chr(1); STX = chr(2); ETX = chr(3); EOT = chr(4);
ENQ = chr(5); ACK = chr(6); BEL = chr(7); BS = chr(8); HT = chr(9);
LF = chr(10); VT = chr(11); FF = chr(12); CR = chr(13); SO = chr(14);
SI = chr(15); DLE = chr(16); DC1 = chr(17); DC2 = chr(18); DC3 = chr(19);
DC4 = chr(20); NAK = chr(21); SYN = chr(22); ETB = chr(23); CAN = chr(24);
EM = chr(25); SUB = chr(26); ESC = chr(27); FS = chr(28); GS = chr(29);
RS = chr(30); US = chr(31); SP = chr(32);
procedure TForm1.BarCodePrint(BARCODE : String);
begin
TX_BUFFER := STX + ESC + 'P' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'E1;F1;' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'L1;' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'D0' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'B0;o216,56;f3;c0,6;h112;w2;r1;i0;d3,' + BARCODE + ';' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'D1' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'H1;o89,99;f3;c20;h1;w1;d3,*;' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'D2' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'H2;o89,126;f3;c20;h1;w1;d3,' + BARCODE + ';' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'D3' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'H3;o89,558;f3;c20;h1;w1;d3,*;' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'D4' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'H4;o209,649;f3;c20,1;h2;w2;d3,' + Copy(BARCODE,1,2) + ';' + ETX;
TX_BUFFER := TX_BUFFER + STX + 'R' + ETX;
TX_BUFFER := TX_BUFFER + STX + ESC + 'E1' + CAN + ETX;
TX_BUFFER := TX_BUFFER + STX + RS + '1' + US + '1' + ETB + FF + ETX;
PrnPort.SendData(PChar(TX_BUFFER),StrLen(PChar(TX_BUFFER)));
end;
Intermec PM4i(초기화시키는 부분은 생략)
---------------------------------------------------------------
Procedure TForm1.PrintData;
begin
TxBuff := TxBuff + '1131 PRPOS 584,150'+ CR + LF;
TxBuff := TxBuff + '1132 DIR 4'+ CR + LF;
TxBuff := TxBuff + '1133 BARTYPE "CODE39"'+ CR + LF;
TxBuff := TxBuff + '1136 BARMAG 1,1'+ CR + LF;
TxBuff := TxBuff + '1137 BARFONT "Swiss 721 BT'+ CR + LF;
TxBuff := TxBuff + '1138 PRBAR "' + ed_showbc.text +'"'+ CR + LF;
TxBuff := TxBuff + '1139 PRINTFEED'+ CR + LF; //copies
TxBuff := TxBuff + '1000 AN7'+ CR + LF;
TxBuff := TxBuff + '1150 FOR A%=1 TO 1'+ CR + LF;
TxBuff := TxBuff + '1160 IF PAUSE% < 0 THEN GOTO 1160'+ CR + LF;
TxBuff := TxBuff + '1170 PF'+ CR + LF;
TxBuff := TxBuff + '1180 next A%'+ CR + LF;
TxBuff := TxBuff + '1190 open "console:" for output as #1'+ CR + LF;
TxBuff := TxBuff + '1200 print #1, chr$(155) + "1;H";:print #1,"READY "'+ CR + LF;
TxBuff := TxBuff + '1210 CLOSE #1'+ CR + LF
TxBuff := TxBuff + '1220 END'+ CR + LF;
TxBuff := TxBuff + '777777 PAUSE% = PAUSE% * -1:open "PAUSE" for OUTPUT as #3:PRINT #3,STR$(PAUSE%):CLOSE #3:return'+ CR + LF;
TxBuff := TxBuff + 'VERBON'+ CR + LF;
TxBuff := TxBuff + 'Run'+ CR + LF;
CommPortDriver1.SendData(PChar(TxBuff),StrLen(PChar(TxBuff)));
end;