Abri Technologies - UCC/EAN Code 128 TTF Windows fonts
======================================================

These instructions are divided into 6 sections

1.0 Introduction
2.0 Trying out the demo version
3.0 Abri Barcode 128 character mapping
4.0 Check character calculation
5.0 Using UCC/EAN Code 128 Barcode fonts
  5.1 Font Sizes
  5.2 Compact label printers
6.0 License Agreement and Disclaimer (please read)

* Pricing & Ordering info is found on our website www.abri.com

1.0 Introduction:
=================

Abri's BarcodeUCC/EAN Code 128 fonts are precision fonts that will
improve your application barcode scanning accuracy and speed. Standard,
and wide (or "low") height fonts are included with the registered version.

Abri Barcode 128s is used with typical shiping and package tracking
services and also has been optimized for use for US Postal Service
(USPS) Confirm barcode generation and can yield the recommended
smallest barcode/space for the .75" height with a ratio of about 1 to
50. In our testing a font size setting of 54 gave best barcode sizing for
USPS. This may vary somewhat with your printing equipment.

For USPS use, each end user (business, company) should seek individual
USPS certification of Confirm barcode label printing, since approval
depends on the printer equipment and paper quality used and not just
barcode fonts.

2.0 Trying out the demo version:
================================
IF THIS IS THE DEMO COPY of Abri's Barcode 128 standard barcode font, you
can use it for limited testing purposes. The main difference is that
the 0 barcode characters have the bars replaced by the vertical "ABRI"
but the rest of characters are usable.

The following are some strings that can be used with the demo font for
testing.

Subcode A string (WILLMINGTON,DE19801):
WILLMINGTON,DE19801

Subcode B string (123SomeStreet):
123SomeStreetX

Subcode C string (compacted number 1926703211):
3:f@+V

3.0 Abri Barcode 128 character mapping:
=======================================

 Abri   Code128  Set A    Set B   Set C      Notes
 char   ValueNo  Char     Char   Code No.     *
maping
--------------------------------------------------
 32       00     Space    Space     00        **
 33       01      !        !        01
 34       02      "        "        02
 35       03      #        #        03
 36       04      $        $        04
 37       05      %        %        05
 38       06      &        &        06
 39       07      '        '        07
 40       08      (        (        08
 41       09      )        )        09
 42       10      *        *        10
 43       11      +        +        11
 44       12      ,        ,        12
 45       13      -        -        13
 46       14      .        .        14
 47       15      /        /        15
 48       16      0        0        16
 49       17      1        1        17
 50       18      2        2        18
 51       19      3        3        19
 52       20      4        4        20
 53       21      5        5        21
 54       22      6        6        22
 55       23      7        7        23
 56       24      8        8        24
 57       25      9        9        25
 58       26      :        :        26
 59       27      ;        ;        27
 60       28      <        <        28
 61       29      =        =        29
 62       30      >        >        30
 63       31      ?        ?        31
 64       32      @        @        32
 65       33      A        A        33
 66       34      B        B        34
 67       35      C        C        35
 68       36      D        D        36
 69       37      E        E        37
 70       38      F        F        38
 71       39      G        G        39
 72       40      H        H        40
 73       41      I        I        41
 74       42      J        J        42
 75       43      K        K        43
 76       44      L        L        44
 77       45      M        M        45
 78       46      N        N        46
 79       47      O        O        47
 80       48      P        P        48
 81       49      Q        Q        49
 82       50      R        R        50
 83       51      S        S        51
 84       52      T        T        52
 85       53      U        U        53
 86       54      V        V        54
 87       55      W        W        55
 88       56      X        X        56
 89       57      Y        Y        57
 90       58      Z        Z        58
 91       59      [        [        59
 92       60      \        \        60
 93       61      ]        ]        61
 94       62      ^        ^        62
 95       63      _        _        63
 96       64     NULL      `        64
 97       65     SOH       a        65
 98       66     STX       b        66
 99       67     ETX       c        67
100       68     EOT       d        68
101       69     ENQ       e        69
102       70     ACK       f        70
103       71     BELL      g        71
104       72     BS        h        72
105       73     HT        i        73
106       74     LF        j        74
107       75     VT        k        75
108       76     FF        l        76
109       77     CR        m        77
110       78     SO        n        78
111       79     SI        o        79
112       80     DLE       p        80
113       81     DC1       q        81
114       82     DC2       r        82
115       83     DC3       s        83
116       84     DC4       t        84
117       85     NAK       u        85
118       86     SYN       v        86
119       87     ETB       w        87
120       88     CAN       x        88
121       89     EM        y        89
122       90     SUB       z        90
123       91     ESC       {        91
124       92     FS        |        92
125       93     GS        }        93
126       94     RS        ~        94

175       00     Space    Space     00   () **

191       95     US       DEL       95   () ***

192       96     FNC3     FNC3      96   ()
193       97     FNC2     FNC2      97   ()
194       98     SHIFT    SHIFT     98   ()
195       99     Code C   Code C    99   ()
196      100     Code B   FNC4    Code B ()
197      101     FNC4     Code A  Code A ()
198      102     FNC1     FNC1    FNC1   ()
199      103    Set A start character    ()

200      104    Set B start character    ()
201      105    Set C start character    ()
202             Stop character, all sets () ****

Notes:

* Set C is not normally used to display standard characters. But it
can be used to encode numeric digits in high density format. For
example Set C Code No's 20 and 97 can be combined to represent the
number 2097 in one half barcode space needed in Set A or B.

** The space character barcode is also mapped to Ascii # position 175
since some editors (word processing software) will substitute their
own space character and ignore the barcode bars.

*** The DEL character, ASCII char # 127, is mapped to position 191 and
rest of special code 128 characters are mapped to positions 192
through 202. They are also typed above in parentheses (). If you
require inserting these characters into text, most editors allow some
way for these extra symbols to be inserted into text. Or you can
simply copy and paste the characters in parentheses () in the above
table into your text. The standard symbols for the characters in ()
can be viewed if you are using an editor or wordprocessor with
Fixedsys or Courier New fonts.

**** The stop character is not given a Code128 value No.
Other Code 128 value No's are used in calculating the check character.

4.0 Check character calculation
===============================
Check character calculation is done using the Code 128 value numbers
with the following rules.

1. Assign each character between start and the check character a position
weight starting with value 1 and increasing from left to right. The
start character is also assigned a position weight of one.
2. Multiply the Code 128 value of each character by its corresponding
weight and sum up the result.
3. Divide up the resultant sum by 103.
4. The remainder is the check character position value.

Keep in mind that Set C characters have no normal ASCII code equivalents
and that normal ASCII code for Set B from 00 to 31 is actually mapped to
Abri ASCII position numbers 64 to 94 and at 191 (for 31).

5.0 Using UCC/EAN Code 128 Barcode fonts:
=========================================

To simplify barcode generation, the registered version of Code 128
fonts comes with a handy Code128() function in FoxPro (Code128.PRG)
and in C (code128() in code128.c) that generates the required start
character, desired string, stop and check characters.

It also comes with the AbriBCF.dll file for generation of the same
codes from most MS Windows languages like Visual Foxpro, Visual Basic,
Visual C++, etc. Please read the included DLLREADME.TXT file for more
instructions.

Usage:

Code128(SubsetDesignator, CharacterString)

Examples:

Code128("B", "Accounting sequence B, 1209, 980743")

Will return Set B, Code 128 string for the desired character string:
Accounting sequence B, 1209, 980743

You can specifically insert the UCC/EAN designator by inserting
FNC1 (Abri char 198) at begining of string.

Code128("B", CHR(198) + "Accounting sequence B, 1209, 980743")

will do the same except with the invisible FNC1 as first character
following the start character to designate UCC/EAN coding.

When using the procedure, Set A and Set B space character is
automaticaly referenced to Ascii position # 175. So you can just use
the standard space character in a code string.

The most commonly used Code subset is Set B.

Set A has ability to encode ASCII control characters having usual 0
through 31 ASCII positions. These are mapped to Abri character positions
191 and 96 through 126.

To use Set C high density numeric format, you just need to
select the correct character string for compression.

For example Code128('C', '3:f@+') will return barcode string
for the number 1926703211.

5.1 Font sizes
--------------
For good print quality, the Abri128s font font size setting of 54 and
about 30 font size for Abri128w should give fairly good scanning
reliability. The results also depend on paper and printer print
quality.

5.2 Compact label printers
--------------------------
With small thermal label printers it is often possible to improve 
barcode print quality. For example the "Dymo LabelWriter 400" has a 
selection Advanced/PrinterFeatures/PrintQuality: "Barcodes and 
Graphics" instead of using "TextOnly" which may not be as sharp.

6.0 License Agreement and Disclaimer:
=====================================

ROYALTY FREE DISTRIBUTABLE LICENSE:

Distributable royalty free license entitles you, the original
purchaser to royalty free distribution of Abri barcode fonts to
end users for use with your own legitimate software
application (.APP or .EXE). Custom software or software developed for
a single client requires a license for the client in each case.
Purchasers with more than one programmer/developer require a license
for each programmer/developer who is actually writing the part of the
code for including the Abri barcode fonts in the software.

You cannot have any intention of distributing or encouraging copying
of Abri barcode fonts for free or for gain of any type.

SITE LICENSES:
Available for a location or institution without the royalty free privilege.
Contact Abri Technologies for licensing request.

DISCLAIMER:
Abri barcode fonts are supplied as is without warranty of any kind. Abri
Technologies disclaims all warranties, expressed or implied, including,
without limitation, the warranties of merchantability and of fitness for
any purpose. Abri Technologies assumes no liability for damages, direct or
consequential, which may result from the use of Abri barcode fonts.

All rights not expressly granted here are reserved to Abri Technologies.
