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 CLI 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 barcode image.
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), Tagged Image File Format (TIF), Enhanced Metafile Format (EMF), as Encapsulated PostScript (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 the orientation of the image.
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:
|Symbol:||A symbol is an image which encodes data according to one of the standards. This encompasses barcodes (linear symbols) as well as any of the other methods of representing data used in this program.|
|Symbology:||A method of encoding data to create a certain type of symbol.|
|Linear:||A linear symbol is one which consists of bars and spaces, and is what most people associate with the term "barcode". Examples include EAN.|
|Stacked:||A stacked symbol consists of multiple linear symbols placed one above another and which together hold the message, usually alongside some error correction data. Examples include PDF417.|
|Matrix:||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.|
|X-dimension:||The X-dimension of a symbol is the 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.|
|Composite:||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 separates the linear and the stacked components.|
|GS1 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.|
|Reader Initialisation:||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.|
|ECI:||The ECI mechanism allows for multi-language data to be encoded in symbols which would usually support only Latin-1 (ISO/IEC 8859-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.|
Two other concepts that are important are raster and vector. Raster is a low level bitmap representation of an image. BMP, GIF, PCX, PNG and TIF are raster file formats. Vector is a high level command- or data-based representation of an image. EMF, EPS and SVG are vector file formats. They require renderers to turn them into bitmaps.