The Zint project aims to provide a complete cross-platform open source
barcode generating solution. The package currently consists of a Qt based GUI, a
command line executable and a library with an API to allow developers access to
the capabilities of Zint. It is hoped that Zint provides a solution which is
flexible enough for professional users while at the same time takes care of as
much of the processing as possible to allow easy translation from input data to
The library which forms the main component of the Zint project is currently
able to encode data in over 50 barcode symbologies (types of barcode), for each
of which it is possible to translate that data from either Unicode (UTF-8) or a
raw 8-bit data stream. The image can be rendered as either a Portable Network
Graphic (PNG) image, Windows Bitmap (BMP), Graphics Interchange Format (GIF),
ZSoft Paintbrush image (PCX), as Encapsulated Post Script (EPS) or as a Scalable Vector
Graphic (SVG). Many options are available for setting the characteristics of the
output image including the size and colour of the image, the amount of error
correction used in the symbol and, in the case of raster images, the orientation of
1.1 Terms of Reference
Some of the words and phrases used in this document are specific to barcoding,
and so a brief explanation is given to help understanding:
||A symbol is an image which encodes data according to one of the
standards. This encompases barcodes (linear symbols) as well as any of
the other methods of representing data used in this program.
||A method of encoding data to create a certain type of symbol.
||A linear symbol is one which consists of bars and spaces, and is what
most people associate with the term "barcode". Examples include EAN.
||A stacked symbol consists of multiple linear symbols placed one above
another and which together hold the message, usually allong side some
error correction data. Examples include PDF417.
A matrix symbol is one based on a (usually square) grid of elements.
Examples include Data Matrix, but Maxicode and DotCode are also
considered matrix symbologies.
The x-dimension of a symbol is size (usually the width) of the
smallest element. For a linear symbology this is the width of the
smallest bar. The default size of the x-dimension in a raster image
is 2 pixels. Many symbologies have a fixed width-to-height ratio where
the height is expressed as a multiple of the x-dimension.
||A composite symbology is one which is made up of elements which are
both linear and stacked. Those currently supported are made up of a
linear "primary" message above which is printed a stacked component
based on the PDF417 symbology. These symbols also have a separator
which seperates the linear and the stacked components.
| GS-1 data:
|| This is a structured way of representing information which consists
of "chunks" of data, each of which starts with an Application
Identifier. The AI identifies what type of information is being
encoded. See Appendix C.
Some symbologies allow a special character to be included
which can be detected by the scanning equipment as signifying that the
data is used to program or change settings in that equipment. This data
is usually not passed on to the software which handles normal input
data. This feature should only be used if you are familiar with the
programming codes relevant to your scanner.
The ECI mechanism allows for multi-language data to be encoded in
symbols which would usually support only Latin-1 characters. This can
be useful, for example, if you need to encode cyrillic characters, but
should be used with caution as not all scanners support this method.