10-Nov-87 14:05:55-PST,10055;000000000000 Return-Path: Date: Tue, 10 Nov 87 15:46:49 EDT From: Dimitri Vulis Subject: Foo (bar codes) Dear Malcolm: I believe that the following file would of general interest, but I think it's too long for the digest: % I was amazed to find out that business people pay enormous money for the % ability to produce bar codes. This ought to be TRIVIAL with \TeX. % So, I got hold of a public domain BASIC program that supposedly does that and % lifted the codes and put them into METAFONT (it was EASY). Caveat(s): I have % never tested these codes with an OCR. The BASIC program said it used `3 of 9' % encoding. I presume it's not the same as UPC. The sizes may be off---I % took them from the BASIC program that used HP LJ's 100dpi graphics mode. % Disclaimer: I haven't tested these codes. Use them at your own risk. % Remarks: % 1) White space is a displayable character. % 2) There are 9 significant strips, bwbwbwbwb; 3 of them are wide. % 3) The white_naro; at the end of each code is the inter-code spacing. % Credits: the original BASIC program was written by `Bill Wood Mil., WI' and % later re-written by `Bill Baines, Enfield, CT.'. METAFONT version is by % `Dimitri Vulis CLDLV@NASAGISS.BITNET' mode_setup; font_identifier "DVBar"; font_size .35in#; naro#:=.01in#; % narrow strip width wide#:=3naro#; % wide strip width wdth#:=3wide#+7naro#; % common width of all codes hght#:=.35in#; % common height of all codes define_pixels(naro,wide,wdth,hght); def white_naro= wid:=wid+naro; enddef; def black_naro= filldraw (wid,0)--(wid,hght)--(wid+naro,hght)--(wid+naro,0)--cycle; wid:=wid+naro; enddef; def white_wide= wid:=wid+wide; enddef; def black_wide= filldraw (wid,0)--(wid,hght)--(wid+wide,hght)--(wid+wide,0)--cycle; wid:=wid+wide; enddef; beginchar("1",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_naro; white_wide; black_naro; white_naro; black_naro; white_naro; black_wide; white_naro; endchar; beginchar("2",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_wide; white_wide; black_naro; white_naro; black_naro; white_naro; black_wide; white_naro; endchar; beginchar("3",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_wide; white_wide; black_naro; white_naro; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("4",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_naro; white_wide; black_wide; white_naro; black_naro; white_naro; black_wide; white_naro; endchar; beginchar("5",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_naro; white_wide; black_wide; white_naro; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("6",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_wide; white_wide; black_wide; white_naro; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("7",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_naro; white_wide; black_naro; white_naro; black_wide; white_naro; black_wide; white_naro; endchar; beginchar("8",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_naro; white_wide; black_naro; white_naro; black_wide; white_naro; black_naro; white_naro; endchar; beginchar("9",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_wide; white_wide; black_naro; white_naro; black_wide; white_naro; black_naro; white_naro; endchar; beginchar("0",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_naro; white_wide; black_wide; white_naro; black_wide; white_naro; black_naro; white_naro; endchar; beginchar("A",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_naro; white_naro; black_naro; white_wide; black_naro; white_naro; black_wide; white_naro; endchar; beginchar("B",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_wide; white_naro; black_naro; white_wide; black_naro; white_naro; black_wide; white_naro; endchar; beginchar("C",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_wide; white_naro; black_naro; white_wide; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("D",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_naro; white_naro; black_wide; white_wide; black_naro; white_naro; black_wide; white_naro; endchar; beginchar("E",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_naro; white_naro; black_wide; white_wide; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("F",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_wide; white_naro; black_wide; white_wide; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("G",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_naro; white_naro; black_naro; white_wide; black_wide; white_naro; black_wide; white_naro; endchar; beginchar("H",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_naro; white_naro; black_naro; white_wide; black_wide; white_naro; black_naro; white_naro; endchar; beginchar("I",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_wide; white_naro; black_naro; white_wide; black_wide; white_naro; black_naro; white_naro; endchar; beginchar("J",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_naro; white_naro; black_wide; white_wide; black_wide; white_naro; black_naro; white_naro; endchar; beginchar("K",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_naro; white_naro; black_naro; white_naro; black_naro; white_wide; black_wide; white_naro; endchar; beginchar("L",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_wide; white_naro; black_naro; white_naro; black_naro; white_wide; black_wide; white_naro; endchar; beginchar("M",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_wide; white_naro; black_naro; white_naro; black_naro; white_wide; black_naro; white_naro; endchar; beginchar("N",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_naro; white_naro; black_wide; white_naro; black_naro; white_wide; black_wide; white_naro; endchar; beginchar("O",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_naro; white_naro; black_wide; white_naro; black_naro; white_wide; black_naro; white_naro; endchar; beginchar("P",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_wide; white_naro; black_wide; white_naro; black_naro; white_wide; black_naro; white_naro; endchar; beginchar("Q",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_naro; white_naro; black_naro; white_naro; black_wide; white_wide; black_wide; white_naro; endchar; beginchar("R",wdth#,hght#,0); wid:=0; black_wide; white_naro; black_naro; white_naro; black_naro; white_naro; black_wide; white_wide; black_naro; white_naro; endchar; beginchar("S",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_wide; white_naro; black_naro; white_naro; black_wide; white_wide; black_naro; white_naro; endchar; beginchar("T",wdth#,hght#,0); wid:=0; black_naro; white_naro; black_naro; white_naro; black_wide; white_naro; black_wide; white_wide; black_naro; white_naro; endchar; beginchar("U",wdth#,hght#,0); wid:=0; black_wide; white_wide; black_naro; white_naro; black_naro; white_naro; black_naro; white_naro; black_wide; white_naro; endchar; beginchar("V",wdth#,hght#,0); wid:=0; black_naro; white_wide; black_wide; white_naro; black_naro; white_naro; black_naro; white_naro; black_wide; white_naro; endchar; beginchar("W",wdth#,hght#,0); wid:=0; black_wide; white_wide; black_wide; white_naro; black_naro; white_naro; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("X",wdth#,hght#,0); wid:=0; black_naro; white_wide; black_naro; white_naro; black_wide; white_naro; black_naro; white_naro; black_wide; white_naro; endchar; beginchar("Y",wdth#,hght#,0); wid:=0; black_wide; white_wide; black_naro; white_naro; black_wide; white_naro; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("Z",wdth#,hght#,0); wid:=0; black_naro; white_wide; black_wide; white_naro; black_wide; white_naro; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("-",wdth#,hght#,0); % minus wid:=0; black_naro; white_wide; black_naro; white_naro; black_naro; white_naro; black_wide; white_naro; black_wide; white_naro; endchar; beginchar(".",wdth#,hght#,0); %period wid:=0; black_wide; white_wide; black_naro; white_naro; black_naro; white_naro; black_wide; white_naro; black_naro; white_naro; endchar; beginchar(" ",wdth#,hght#,0); %white space wid:=0; black_naro; white_wide; black_wide; white_naro; black_naro; white_naro; black_wide; white_naro; black_naro; white_naro; endchar; beginchar("*",wdth#,hght#,0); %ascii asterisk wid:=0; black_naro; white_wide; black_naro; white_naro; black_wide; white_naro; black_wide; white_naro; black_naro; white_naro; endchar; beginchar("$",wdth#,hght#,0); %dollar sign wid:=0; black_naro; white_wide; black_naro; white_wide; black_naro; white_wide; black_naro; white_naro; black_naro; white_naro; endchar; beginchar("/",wdth#,hght#,0); %forward slash wid:=0; black_naro; white_wide; black_naro; white_wide; black_naro; white_naro; black_naro; white_wide; black_naro; white_naro; endchar; beginchar("+",wdth#,hght#,0); %plus wid:=0; black_naro; white_wide; black_naro; white_naro; black_naro; white_wide; black_naro; white_wide; black_naro; white_naro; endchar; beginchar("%",wdth#,hght#,0); %percent sign wid:=0; black_naro; white_naro; black_naro; white_wide; black_naro; white_wide; black_naro; white_wide; black_naro; white_naro; endchar; end; %all done -------