This will print Code 39 / Code 128 with a PCL printer in GL/2 mode. I can
supply the files if you need them.
Also forces the required "quiet zones" flanking the bar code.
HPBARS39
001 SUBROUTINE HPBARS39(X,Y,HEIGHT,STRING,WIDTH,RATIO)
002 OPEN "BARS39" TO BARS39 ELSE RETURN
003 PRINT "TR0;"
004 IF X#"" AND Y#"" THEN PRINT "PA":X:",":Y:";"
005 PRINT "FT10,0,0;"
006 PRINT "RR":WIDTH*20:",":HEIGHT:";"
007 PRINT "PR":WIDTH*20:",0;"
008 LEN.STR=LEN(STRING)
009 FOR I=1 TO LEN.STR
010 READ CODE FROM BARS39,STRING[I,1] THEN
011 FOR J=1 TO 9
012 BAR=CODE<J>
013 IF BAR="NB" OR BAR="WB" THEN
014 PRINT "FT1,0,0;":
015 END ELSE
016 PRINT "FT10,0,0;":
017 END
018 IF BAR="NB" OR BAR="NS" THEN
019 PRINT "RR":WIDTH:",":HEIGHT:";":
020 PRINT "PR":WIDTH:",0;":
021 END ELSE
022 PRINT "RR":WIDTH*RATIO:",":HEIGHT:";"
023 PRINT "PR":WIDTH*RATIO:",0;"
024 END
025 NEXT J
026 PRINT "FT10,0,0;":
027 PRINT "RR":WIDTH:",":HEIGHT:";":
028 PRINT "PR":WIDTH:",0;":
029 END
030 NEXT I
031 PRINT "FT10,0,0;":
032 PRINT "RR":WIDTH*20:",":HEIGHT:";":
033 PRINT "PR":WIDTH*20:",0;":
034 PRINT "TR1;":
035 RETURN
036 ******** E N D *******
HPBARS128
001 SUBROUTINE HPBARS128(X,Y,HEIGHT,STRING,WIDTH,TYPE)
002 EQU AM TO CHAR(254), VM TO CHAR(253)
003 OPEN "BARS128" TO BARS128 ELSE STOP
004 MOD=0 ; JUMP=1 ; START=1
005 WEIGHTING=1 ; TOT.WEIGHT=0
006 PRINT "TR0;"
007 IF X#"" AND Y#"" THEN PRINT "PA":X:",":Y:";"
008 PRINT "FT10,0,0;"
009 PRINT "RR":WIDTH*20:",":HEIGHT:";"
010 PRINT "PR":WIDTH*20:",0;"
011 CNT=LEN(STRING)
012 FOR I=1 TO CNT
013 CTYPE=TYPE[I,1]
014 IF CTYPE="C" AND START THEN CODEWORD=105
015 IF CTYPE="B" AND START THEN CODEWORD=104 ; JUMP=1
016 IF CTYPE="C" AND NOT(START) THEN CODEWORD=99
017 IF CTYPE="B" AND NOT(START) THEN CODEWORD=100 ; JUMP=1
018 IF CTYPE="X" THEN CODEWORD=STRING[I,JUMP]
019 READ RATIO FROM BARS128,CODEWORD ELSE RATIO=""
020 TOT.WEIGHT=TOT.WEIGHT+(RATIO<8>*WEIGHTING)
021 IF I>1 THEN WEIGHTING=WEIGHTING+1
022 FOR J=1 TO 6
023 IF J=1 OR J=3 OR J=5 THEN
024 PRINT "FT1,0,0;"
025 END ELSE
026 PRINT "FT10,0,0;"
027 END
028 PRINT "RR":WIDTH*RATIO<J>:",":HEIGHT:";"
029 PRINT "PR":WIDTH*RATIO<J>:",0;"
030 NEXT J
031 I=I+JUMP-1
032 IF CTYPE="C" THEN JUMP=2
033 START=0
034 NEXT I
035 CHECK=MOD(TOT.WEIGHT,103)
036 IF CHECK<100 THEN CHECK=CHECK"R%2"
037 READ RATIO FROM BARS128,CHECK ELSE RATIO=""
038 FOR I=1 TO 6
039 IF I=1 OR I=3 OR I=5 THEN
040 PRINT "FT1,0,0;"
041 END ELSE
042 PRINT "FT10,0,0;"
043 END
044 PRINT "RR":WIDTH*RATIO<I>:",":HEIGHT:";"
045 PRINT "PR":WIDTH*RATIO<I>:",0;"
046 NEXT I
047 READ RATIO FROM BARS128,"STOP" ELSE RATIO=""
048 FOR I=1 TO 7
049 IF I=2 OR I=4 OR I=6 THEN
050 PRINT "FT10,0,0;"
051 END ELSE
052 PRINT "FT1,0,0;"
053 END
054 PRINT "RR":WIDTH*RATIO<I>:",":HEIGHT:";"
055 PRINT "PR":WIDTH*RATIO<I>:",0;"
056 NEXT I
057 PRINT "FT10,0,0;"
058 PRINT "RR":WIDTH*20:",":HEIGHT:";"
059 PRINT "PR":WIDTH*20:",0;"
060 PRINT "TR1;"
061 RETURN
062 ******** E N D *******
> ----- Original Message -----
> From: "Ray Buchner" <[EMAIL PROTECTED]>
> To: [email protected]
> Subject: [U2] Barcode PCL Commands
> Date: Wed, 28 Jun 2006 12:03:42 -0400
>
>
> Does anyone have, or can you direct me to, a PCL command reference to
> print barcodes? I need to print them on an HP laser.
> -------
> u2-users mailing list
> [email protected]
> To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/