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/

Reply via email to