[comp.sources.atari.st] v03i025: barcodes -- Metafont file for printing barcodes

koreth@panarthea.ebay.sun.com (Steven Grimm) (02/04/90)

Submitted-by: csrobe@cs.wm.edu (Chip Roberson)
Posting-number: Volume 3, Issue 25
Archive-name: barcodes

I noticed that someone was asking about barcodes recently and in
my metafont searches for [La]Tex, I discovered the barcodes.mf.  I
know nothing more that what it says in the header and I have not
tried it.  If you decide to use this you will need TeX (or LaTeX)
and metafont (available from archive-server@panarthea.ebay.sun.com).

barcodes.mf can be anonymously ftp'd from sun.soe.clarkson.edu's
pub/tex-fonts directory.

cheers,
-chip
-=- Charles S. Roberson          ARPANET:    csrobe@cs.wm.edu           -=-
-=- VA Remote Sensing Study      UUCP:       ...!uunet!cs.wm.edu!csrobe -=-
-=- Dept of Comp. Sci.           Compu$erve: 71500.2056@compuserve.com  -=-
-=- College of William and Mary  Ma Bell:    (804) 221-3455 [W]         -=-
-=- Williamsburg, VA 23185                   (804) 229-5530 [H]         -=-

                    Fur:  The look that kills.

---Begin barcodes.mf---
% 10-Nov-87 14:05:55-PST,10055;000000000000
% Return-Path: <CLDLV%NASAGISS.BITNET@forsythe.stanford.edu>
% Date:         Tue, 10 Nov 87 15:46:49 EDT
% From: Dimitri Vulis <CLDLV%NASAGISS.BITNET@forsythe.stanford.edu>
% 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
---End barcodes.mf---