Zint Barcode Generator

Prev

Next


6. Legal and Version Information

6.1 License

Zint and libzint are Copyright © 2009 Robin Stuart & BogDan Vatra and are distributed under the terms of the GNU General Public License version 3. See the file COPYING for more information. The following terms form part of the GPL:

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Some Data Matrix code is Copyright © 2004 Adrian Kennard, Andrews & Arnold Ltd and © 2006 Stefan Schmidt, used under the terms of the GNU General Public Licence.

Reed-Solomon code is Copyright © 2004 Cliff Hones, used under the terms of the GNU General Public Licence.

Portions of GS1 DataBar and Composite Symbology code are Copyright © 2006 ISO/BSI Global and used with permission.

Portions of OneCode code is © 2006 United States Postal Service. This is indicated where appropriate in the source code and is used on the understanding that this code has been released to the public domain and that such use is intended by the copyright holder.

libqrencode is Copyright © 2006, 2007, 2008 Kentaro Fukuchi and is released under the terms of the GNU General Public Licence.

QR Code is a registered trademark of Denso Corp. of Kariya, Japan.

Zint.org.uk website design and hosting provided by RSE Web Solutions.

6.2 Patent Issues

All of the code in Zint is developed using information in the public domain, usually freely available on the Internet. Some of the techniques used may be subject to patents and other intellectual property legislation. It is my belief that any patents involved in the technology underlying symbologies utilised by Zint are 'unadopted', that is the holder does not object to their methods being used. If, however, you are a patent holder or hold any other intellectual property rights on the methods used by Zint or the symbologies which Zint generates, and do not want Zint to continue to support your symbology then please contact me and I will update the code to accommodate your wishes at the soonest opportunity.

Any methods patented or owned by third parties or trademarks or registered trademarks used within Zint or in this document are and remain the property of their respective owners and do not indicate endorsement or affiliation with those owners, companies or organisations.

6.3 Version Information

v0.1 - (as Zebar) Draws UPC-A. UPC-E, EAN-8, EAN-13, Interlaced 2 of 5, Codabar, Code 39, Extended Code 39 and Code 93 barcodes and Add-on codes EAN-2 and EAN-5 without parity. 13/11/2006

v0.2 - Added Code 128 (which is now the default), Code 11, Code 2 of 5, Add-on codes EAN-2 and EAN-5 parity and MSI/Plessey without check digit. 12/12/2006

v0.3 - Added MSI/Plessey Mod 10 check and 2 x Mod 10 check options, Telepen ASCII and Telepen numeric, Postnet, RM4SCC. Code has been tidied up quite a bit. Bind option added. 30/12/2006

v0.4 - Added barcode stacking (now stacks up to 16 barcodes) and Code16k (stub). 15/1/2007

v0.5 - Added Australia Post 4-State Barcodes and Pharmacode (1 and 2 track). 4-state codes now draw with correct height/width ratio. 28/2/2007

v0.6 - Added Plessey and some derivative codes (EAN-128, Code 128 subset B, Auspost Reply, Auspost Routing, Auspost Redirect, ITF-14). Tidied up code again: separated symbologies into more files and put all lookup tables into arrays (much reducing the amount of code, especially for Code 39e and Code 93). Errors now output to stderr. Added proper input verification. Distribution now packs with HTML pages instead of separate README. Outputs to PNG. Outputs colour. User variable whitespace and border width. Box option. Fixed EAN add-on bug. Added whitespace and height options. Project name changed to Zint to avoid conflict with extant trade name. Added escape character input. 1/4/2007

v1.0 - Corrected problem with escape character codes. Supports PDF417. This completes the list of features I originally wanted (plus a few more), hence skip to version 1.0. 20/4/2007

v1.1 - Added more derivatives (Code 2 of 5 Matrix, IATA and Data Logic, Truncated PDF417, Deutsche Post Leitcode and Identcode, Pharmazentralnummer, Planet) and Flattermarken. Tidied up 2 of 5 code. 26/4/2007

v1.2 - Supports Data Matrix (by absorption of IEC16022 code by Stefan Schmidt et al). Added reverse colours, FIM, MSI/Plessey Modulo 11 and Modulo 11/10. Corrected Code 16k check digit calculation. 28/5/2007

v1.3 - Supports USPS OneCode and LOGMARS. Brought all usage information into one User Manual document. 13/6/2007

v1.4 - Added NVE-18 support. Corrected some problems with compilation and input verification. Command line option handling now uses getopt(), and all the switches have changed. Added --font option. 20/6/2007

v1.5 - Pulled everything together to make an API. Corrected errors with EAN-13, PDF417 and LOGMARS. Added EPS output. Added QR Code support using libqrencode. Corrected ISBN verification error. Re-compiled documentation in HTML form. Put in place proper error handling routines. --font option removed. Encoding is now done with a restructured zint_symbol structure. Added make install option and optional QR Code support to Makefile. Corrected minor problem with 4-State Codes. Restructured code into fewer source code files. Added MicroPDF417 support. 12/8/2007

v1.5.1 - Added formatting code to EPS output of EAN and UPC symbols according to EN 797:1996. Checked against and, where appropriate, altered or corrected to comply with ISO 16388 and ISO 15417 including Latin-1 support. Altered default image settings, added automatic ITF border. Corrected error with USPS OneCode. Tidied up Code 39 quite a bit, added Mod 43 options. 3/9/2007

v1.5.2 - Added extended ASCII support to Code 16k. Corrected Code 128 error. Added Maxicode support by integrating code by John Lien. 26/9/2007

v1.5.3 - Made huge corrections to Maxicode support by removing and re-writing much of John's code. Maxicode now supports extended ASCII and modes 4, 5 and 6. 10/10/2007

v1.5.4 - Added GS1 DataBar (Reduced Space Symbology) support. 26/11/2007

v1.5.5 - Added composite symbology support. Corrected errors with GS1-128 and PDF417/MicroPDF417 byte processing. Transferred licence to GPL version 3. 9/3/2008

v1.6 – Data Matrix, Maxicode and Australia Post now use common Reed-Solomon functions – this also fixes a bug in Maxicode error correction and replaces the last of the Lien code. Added PNG output for Maxicode symbols. Removed some useless code. Updated QR support for libqrencode v2.0.0. 22/4/2008

v1.6.1 – Major restructuring of PNG generating code: Now draws UPCA and EAN symbols properly and puts human readable text into the image. Also corrected some nasty 'never ending loop' bugs in Code 128 and check digit bugs in PostNet and Planet. 8/7/2008

v1.6.2 – Added KIX Code support and PNG image rotation. Corrected a bug affecting extended ASCII support in Code 128 and Code 16k. 28/7/2008.

v2.0 beta - Added support for Aztec Code, Codablock-F, Code 32, EAN-14 and DAFT Code. Re-arranged symbology numbers to match Tbarcode v8. Corrected a never ending loop bug in EAN-128. 29/9/2008

v2.0 beta r2 – Many corrections and bugfixes. (Code 11, Code 128, EAN-128, Aztec Code, Codablock-F, Code 16k, Postnet, PLANET, NVE-18, PZN, Data Matrix, Maxicode and QR Code)

v2.0 - Made corrections to Aztec Code and tested output with bcTester. Added Aztec Runes, Micro QR Code and Data Matrix ECC 000-140. Updated e-mail information. 18/11/2008

v2.1 – Reinstated Korea Post barcodes, harmonised bind and box options, moved Unicode handling into backend and added input_mode option, added size options to Data Matrix, added NULL character handling for Codablock-F, Code 128, Code 16k, Extended Code 39, Code 93, Telepen, Maxicode, Data Matrix ECC 200, PDF417 and MicroPDF417. Added GS1 support for Code 16k, Codablock-F and Aztec Code. Added scale and direct to stdout options. Rebult Data Matrix ECC 200 encoding algorithms to support NULL encoding and GS1 data encoding. 31/1/2009

v2.1.1 - Minor Data Matrix bugfix and added HIBC options. 10/2/2009

v2.1.2 - Added SVG output option. Improved Japanese character support including Unicode > Shift-JIS capability. Bugfixes for Data Matrix (missing characters at end of string) and Codablock-F (K1/K2 check digit and row indicators above row 6). 1/3/2009

v2.1.3 - Added Japanese Postal Code

6.4 Sources of Information

Below is a list of some of the sources used in rough chronological order:

Nick Johnson's Barcode Specifications

Bar Code 1 Specification Source Page

SB Electronic Systems Telepen website

Pharmacode specifications from Laetus

Morovia RM4SCC specification

Austalia Post's 'A Guide to Printing the 4-State Barcode' and bcsample source code

Plessey algorithm from GNU-Barcode v0.98 by Leonid A. Broukhis

GS1 General Specifications v 8.0 Issue 2

PNG: The Definitive Guide and wpng source code by Greg Reolofs

PDF417 specification and pdf417 source code by Grand Zebu

Barcode Reference, TBarCode/X User Documentation and TBarCode/X demonstration program from Tec-It

IEC16022 source code by Stefan Schmidt et al

United States Postal Service Specification USPS-B-3200

Adobe Systems Incorporated Encapsulated PostScript File Format Specification

BSI Online Library

Libdmtx Data Matrix decoding library

6.5 Standard Compliance

Zint was developed to provide compliance with the following British and international standards:

BS EN 797:1996 Bar coding – Symbology specifications - 'EAN/UPC'

BS EN 798:1996 Bar coding – Symbology specifications - “Codabar”

BS ISO/IEC 12323:2005 AIDC technologies – Symbology specifications – Code 16K

BS ISO/IEC 15417:2007 Information technology – Automatic identification and data capture techniques – Code 128 bar code symbology specification

BS ISO/IEC 15438:2006 Information technology – Automatic identification and data capture techniques – PDF417 bar code symbology specification

BS ISO/IEC 16022:2006 Information technology – Automatic identification and data capture techniques – Data Matrix bar code symbology specification

BS ISO/IEC 16023:2000 Information technology – International symbology specification - Maxicode

BS ISO/IEC 16388:2007 Information technology – Automatic identification and data capture techniques – Code 39 bar code symbology specification

BS ISO/IEC 18004:2006 Information technology – Automatic identification and data capture techniques – QR Code 2005 bar code symbology specification

BS ISO/IEC 24723:2006 Information technology – Automatic identification and data capture techniques – EAN.UCC Composite bar code symbology specification

BS ISO/IEC 24724:2006 Information technology – Automatic identification and data capture techniques – Reduced Space Symbology (RSS) bar code symbology specification

BS ISO/IEC 24728:2006 Information technology – Automatic identification and data capture techniques – MicroPDF417 bar code symbology specification

ISO/IEC 24778:2008 Information technology – Automatic identification and data capture techniques – Aztec Code bar code symbology specification

Uniform Symbology Specification – Codablock F (AIM Europe, 1995)

GS1 General Specifications Version 8.0

ANSI/HIBC 2.2-2006 - The Health Industry Bar Code (HIBC) Supplier Labeling Standard




Prev

Home

Next

Other Markings

 

Appendix A