2024-11-16

* The GS1 AI linter now reports the mandarory association specification that is not being met.


2024-10-13

* The baseline of EAN/UPC addons is now correctly aligned with the guard bars in the primary symbol.


2024-08-17

* Support for HRI text was added to the GS1 Digital Link variant symbologies.


2024-08-15

* Support for extra text was added to the renlinear and renmatrix renderers.


2024-07-20

* The QR Code encoder was amended to opportunistically raise the error correction level when better fit to the matrix possible.


2024-07-07

* The renders were amended to lookup default colours from the global context when unset and available.


2024-07-06

* The renlinear render was amened to not apply inkspread compensation in the vertical direction.
* The composite encoders were amended to not clobber the separator pattern when a background colour is set.


2024-07-05

* The renderers were amended to apply inkspread compensation to the no-border background.


2024-07-04

* The renderers were amended to not stretch the background when no border or bearer is present.


2024-06-18

* The QR Code encoder was amended to avoid encoding certain double byte pairs using Kanji Mode encoding.


2024-06-14

* The QR Code was fixed so that certain message characters will not be erroneously adopted as the low-order byte of a Kanji Mode pair.


2024-06-05

* Hex digit evaluation via data as code constructions were removed from the GS1 linter and renderers.


2024-04-31

* Support for named colours was added to the renderers.


2024-04-23

* The GS1 DL URI linter now permits an uppercase scheme.


2024-01-03

* The default whitespace guard position, test position and border positions for standalone EAN/UPC add ons was amended to align with their use alongside EAN/UPC symbols.


2023-12-25

* The GS1 Digital Link validation no longer allows an AI to be specified as a regular attribute (within query parameters) if it would be a valid key qualifier (within path information).


2023-12-11

* The GS1-128 Composite, GS1 Expanded Stacked Composite and GS1 North American Coupon Code symbologies were fixed to honour the parse options for their 2D component.


2023-12-07

* A workaround was introduced to address an issue with the packager creating a broken resource due to improper binarisation of large integers.


2023-07-23

* A showbearer option was added to the linear encoder to render bearer bars above and below the symbol.
* The ITF-14 encoder was amended to ensure that border and bearers in their default position will touch the bars when default inkspread is used.


2023-07-12

* The Aztec Code encoder was fixed to allow encoding of long messages that end with binary data.
* The GS1 AI linter was realigned with the latest release of the GS1 Syntax Dictionary.
* The EAN and UPC encoder variants were amended so that exterior digits and guard symbols better protect the quiet zone.
* The default options for the border positions were amended to align with the symbology-specfic quiet zones, where appropriate.
* The border options were enabled for the Maxicode symbology.
* The matrix and maximatrix renderer were altered to provide a small amount of inkspread compensation by default.


2023-07-05

* The renlinear renderer was changed so that any border is plotted outside of the zone defined by the border{left,right,top,bottom} options and so that inkspread is applied to the border.
* Border support was added to the renmatrix renderer.


2023-06-22

* The MaxiCode encoder was amended to apply hexagon size reduction which can be adjusted by inkspread.
* The MicroPDF417 encoder was improved to provide automatic Macro 05/06 compression of structured data.


2023-04-11

* Input validation fixes where applied to the Australia Post 4-State barcode, KIX, Code 11, Japan Post, Code 39, Code 39 Extended, Code 2 of 5, DataBar family, EAN-14, SSCC-18, Plessey, Posicode, Codabar, Composite Component, DAFT and HIBC symbologies.


2023-04-03

* The MSI symbology was fixed to permit the madmod11 options with the mod11 check type.
* The Data Matrix encoder was fixed.
* The PDF417 symbology was fixed to perform ECC levels from 0 to 8.
* The Code 49 symbology option concat was renamed to append.


2023-04-01

* User option validation was added to Code 93 Extended, Codablock F, GS1-128, US Postal Service Intelligent Mail, Code 16K, Code 49, MSI, Code One, GS1 Composite Components, Hanxin, DotCode, GS1 DataBar Omnidirectional and GS1 DataBar Expanded.
* The GS1 AI linter was realigned with the latest release of the GS1 Syntax Dictionary, including the addition of a linter for AIDC media types.


2023-03-26

* User option validation was added to PDF417 and MicroPDF417.


2023-03-24

* User option validation was added to Maxicode and the Australian Postal 4-state barcode.


2023-03-23

* The version information for QR Code version 33 symbols was fixed.
* User option validation was added to the Telepen and Japan Post QR Code.
* A font sizes less than or equal to zero is now forbidden.


2023-03-20

* User option validation was added to the QR Code, Aztec Code and Data Matrix encoders.
* Aztec Code was amended to generate only full-range symbols by default.
* Support for legacy DIN DMRE models was removed from Data Matrix.


2023-03-16

* User input validation was added to the setting of RGB and CMYK colours.


2023-02-16

* The mailmark option in the Data Matrix encoder was replaced with a generic c40headerlength option.


2022-10-19

* The GS1 North American Coupon Code symbology was fixed.


2022-10-15

* The text positioning options for renlinear and renmatrix were fixed.


2022-10-14

* The value type validation of the options parser has been further improved.


2022-10-13

* The vertical position of the left whitespace guard was fixed.
* User input validation was added to JapanPost and Code 93.


2022-10-10

* The options parser has improved value type validation.


2022-09-28

* Documentation updates only, to reflect GS1 example data ranges.


2022-09-26

* No user-visible changes.


2022-09-18

* The Composite symbologies now honour the dontdraw option.


2022-08-21

* The codeword generation for QR Code and Micro QR Code symbols was optimised.


2022-07-29

* GS1 data processing was significantly refactored.


2022-07-25

* The GS1 linter was extended to add support for Digital Link URIs.
* Helper encoder for GS1 Digitial Link URI variants of QR Code and Data Matrix were added.


2022-07-20

* Mandatory AI linting is now disabled by default and can be enabled using the new lintreqs option.


2022-07-18

* The GS1 linter was fixed to work with GS1 DataBar Truncated Composite Composite symbols by considering the combined AI element string.
* A GS1 linter error message was fixed.


2022-07-17

* The GS1 linter was fixed to work with Composite symbols by considering the combined AI element string.


2022-07-16

* The GS1 linter was enhanced to apply mandatory and exclusive AI association rules.


2022-07-06

* A mechanism for preserving initialisation data between encoder invocations was added.


2022-07-01

* The parse option was extended to perform replacement of control character names such as ^NUL and ^RS with their ASCII value.


2022-06-10

* The horizontal alignment of text in matrix symbols was fixed.
* Various fixes were made for the encoding of Data Matrix, DotCode and Micro QR Code symbols.
* The encoding of QR Code symbols was optimised.
* The encoding of Rectangular Micro QR Code symbols was aligned with the final release of the specification.


2022-04-04

* The linear render now uses filled polygons rather than stroked lines.
* Code 93 Extended was amended to not shift encode "$%+/" symbols.
* Support was added for USPS FIM E marks.
* Support for AI (715) was added to the GS1 linter.


2021-09-28

* Ultracode tile colours are now defined as RGB rather than CMYK. New tile colour patterns are defined for the upcoming revision.
* A bug in the encoding of certain Aztec Code symbols was fixed.
* A bug in the encoding of certain Dotcode symbols was fixed.
* A bug in the encoding of QR Code symbols containing Kanji compression was fixed.
* The rMQR encoding was optimised, potentially resulting in smaller symbols.


2021-07-15

* The colours for Ultracode symbols were changed to RGB values rather than CMYK.


2021-07-14

* The metrics for Ultracode symbols was updated and a raw mode was added.


2021-02-06

* Linting of GS1 AI (4308) was fixed.
* Linting of the check character pair for AI (8013) was added.


2021-01-15

* Linting for GS1 coupon AIs (8110) and (8112) was added.


2021-01-05

* Linting for GS1 AI syntax data was expanded and fixed.


2020-12-28

* A convenience encoder for GS1 DotCode was added.


2020-12-26

* GS1 Composite Component symbols were fixed.


2020-12-25

* Linting was added to GS1 Composite Components.


2020-12-24

* Linting for GS1 AI syntax data was added.


2020-12-09

* A bug in the compact encoding methods 0110X for GS1 DataBar Expanded formats was fixed.


2020-10-23

* The parse and parsefnc options are now processed by a single routine that allows their escape patterns to coexist in the input data.
* Bugs in ECI processing with PDF417 and MicroPDF417 were fixed.
* A bug in the seperator pattern for GS1 DataBar Expanded Stacked Composite was fixed.


2020-10-11

* A bug in leaving punctuation mode in Aztec Code was fixed.


2020-10-02

* An inefficiency in the QR Code encoding was fixed.
* ECI support was added to Code One.


2020-09-13

* A bug in Data Matrix for ECI checks at end of data was fixed.


2020-09-11

* ECI support was added to Data Matrix, Aztec Code, QR Code, PDF417, MicroPDF417, Maxicode and DotCode.
* GS1 DataBar Limited was updated to include a righthand whitespace guard.
* Code 32 was fixed to avoid overwriting the provided barcode string.


2020-07-20

* A new encoder for Swiss QR Code was added.
* The Codablock F encoding was optimised potentially resulting in smaller symbols.


2020-07-09

* The GS1 DataBar Stacked, GS1 DataBar Stacked Omnidirectional and GS1 DataBar Expanded Stacked separator patterns were fixed.
* A bug in GS1-128 that sometimes prevented encoding with a Composite Component was fixed.
* Bugs in GS1 Composite Component encoding were fixed.


2020-04-01

* The GS1 QR Code encoder was fixed.


2020-03-08

* Changes were required to the package build script due to new defaults in recent versions of GhostScript.
* Preliminary support for the Rectangular Micro QR Code symbology was added.


2019-11-08

* The encoders were amended to workaround a non-standard operator on Harlequin RIPs.


2019-10-31

* A distict encoder was added for Data Matrix Rectangular Extension.


2019-10-29

* The Data Matrix encoder was enhanced to include the ISO formats for DMRE.


2019-10-13

* A crash with a certain encoding of data in GS1 Databar Expanded based symbologies was fixed.


2019-10-10

* A bug in the Code 128 encoder when composite component linkage flags were used with data terminating in mode C was fixed.


2019-09-24

* An encoder for the Royal Mail Mailmark symbology was added.


2019-08-05

* The performance of the renmatrix renderer was slightly optimised.


2019-08-03

* The performance of the renmatrix renderer was significantly improved.


2019-04-24

* A recent regression in the Data Matrix encoder was fixed.


2019-04-23

* The Data Matrix encoder was fixed to avoid certain cases where switching between C40, Text and X12 encoding might latch repeatedly.


2018-08-27

* Preliminary support for the JAB Code symbology was added.


2018-07-27

* The raw option was added to the Data Matrix encoder.


2018-05-20

* The base size of Ultracode symbols was increased.
* Support for symbols composed of dots was added to the renmatrix renderer.
* The DotCode encoder was amended to use the dotty matrix feature.
* A bug in the DotCode encoder's handling of FNC3 message separator characters was fixed.
* The DotCode encoder was fixed to support optimised handling of "FNC1 in First" for leading numeric input.


2018-02-04

* The performance of the Channel Code encoder was improved.
* The base symbol size of the DotCode encoder was increased.


2017-11-15

* The DotCode encoder was enhanced to fix weaknesses with the mask evaluation algorithm.
* The Channel Code encoder checksum calculation for channels 4 and 7 was fixed.


2017-10-19

* Fixed end of data region encoding error with EDIFACT encoding in Data Matrix.


2017-10-14

* Preliminary support for the Ultracode symbology was added.
* The renmatrix renderer was improved to support colour symbols.


2017-07-10

* The DotCode encoder was fixed so that a symbol will generate even when all masked variants have negative evaluations.


2017-06-25

* The DotCode encoder high-level optimisation was improved.


2017-06-21

* The DotCode encoder was fixed so as not to incorrectly enable macro compression for inputs beginning with certain characters.


2017-06-20

* The DotCode encoder was fixed to properly encode 17xxxxxx10 patterns.


2017-06-18

* The DotCode encoder was optimised to minimise the symbol size.


2017-06-09

* The Data Matrix encoder was fixed to ensure that it correctly unlatches from EDIFACT encoding when the symbol isn't full.


2017-06-07

* The DotCode encoder was fixed to work with PS VMs without huge integers.


2017-06-06

* Preliminary support for the DotCode symbology was added.


2017-04-04

* The GS1 North American Coupon encoder was fixed to support the textyalign option.


2017-04-03

* Support for the GS1 North American Coupon barcode was added.


2017-03-25

* Symbologies accepting GS1 Application Identifier formatted data were fixed so as not to clobber successive field values when multiple identical AIs are given.


2016-12-16

* The ISSN encoder was fixed to correctly parse the sequence variant and addon components.


2016-12-15

* The GS1 DataBar Stacked Omnidirectional and GS1 DataBar Expanded Stacked encoders were extended with a barxmult option to allow the generation of symbols with non-standard bar heights.


2016-11-18

* An error preventing the generation of type-S symbols was fixed in the Code One encoder.


2016-11-02

* The QR Code encoder was amended to evaluate the mask patterns with the lone dark module unset.


2016-09-29

* A bug that resulted in FNC1 characters always being encoded in byte mode when ASCII mode was appropriate was fixed.


2016-08-29

* A bug in the encoding of some QR Code symbols introduced by the previous change was fixed.


2016-08-27

* A bug in the encoding of some QR Code symbols having bytes in the ranges 81-9F and/or E0-EB was fixed.


2016-07-20

* inkspreadh and inkspreadv options were added to the matrix renderer.


2016-07-19

* The matrix render was enhanced to produce the minimal number of filled polygons. The inkspread option is now supported.


2016-06-03

* The DataMatrix encoder was improved to provide automatic Macro 05/06 compression of structured data.


2016-04-21

* The Han Xin encoder was fixed to not overflow the stack with large symbols.


2016-04-20

* Support for Han Xin code was added.


2016-03-31

* The Data Matrix encoder was amended to support the new symbol sizes introduced by DMRE (Data Matrix Rectangular Extension).


2016-03-29

* Distinct encoders for rectangular formats of Data Matrix derivatives were added.
* Support for the HIBC Aztec Code symbology was added.


2016-03-28

* The Data Matrix encoder was amended to allow the user to specify either format=square or format=rectangle.


2015-11-24

* A bug in the generation of certain M1 and M3 Micro QR Code symbols was fixed.
* The QR Code encoder was amended to allow the selection of a specific mask.


2015-08-10

* The Data Matrix encoder was amended to make version=RxC synonymous with rows=R columns=C.
* The MicroPDF417 encoder was amended to make version=CxR synonymous with rows=R columns=C.


2015-07-14

* A bug in the input validation of Code 39 Extended symbols was fixed to permit symbols containing fewer than four characters.


2015-05-23

* The Codablock F encoder was improved to perform automatic encoding of extended ASCII data using FNC4.


2015-05-22

* The PosiCode encoder was improved to perform automatic encoding of extended ASCII data using FNC4.
* The Code 16K encoder was improved to perform automatic encoding of extended ASCII data using FNC4.


2015-05-21

* The Code 128 encoder was improved to perform automatic encoding of extended ASCII data using FNC4.


2015-05-16

* The Code One encoder was optimised to minimise the symbol size.
* A minor improvement was made to the Data Matrix optimised encoding.


2015-05-09

* The Code One encoder was amended to allow direct entry of values for type-S symbols.


2015-03-24

* The ITF-14 encoder was amended to permit spaces in the human readable text.


2015-03-23

* The SSCC-18 and EAN-14 encoders were amended to permit spaces in the human readable text.


2015-02-18

* The PDF and HTML documentation has been significantly refreshed and is now built directly from wiki content. It is included in the release tarballs.


2015-01-15

* Convenience encoders for Compact PDF417, Compact Aztec Code and Aztec Runes were added.


2014-12-29

* A convenience encoder for Telepen Numeric was added.


2014-12-27

* Convenience encoders for Micro QR Code, Industrial 2 of 5, IATA 2 of 5, Matrix 2 of 5, COOP 2 of 5 and Datalogic 2 of 5 were added.


2014-12-11

* A bug resulting in the failure to encode certain characters in QR Code was fixed.


2014-11-12

* The UPC-A encoder was amended to automatically expand UPC-E input.
* The UPC-E encoder was amended to automatically compress UPC-A input.


2014-11-08

* The UPC-A encoder was amended to expand UPC-E input using the expandupce option.
* The UPC-E encoder was amended to compress UPC-A input using the compressupca option.


2014-08-15

* Remove some unused code.
* This project is dedicated to the memory of Craig K. Harmon. https://qed.org/ckh


2014-07-30-1

* Incorrect character mappings for TEXT and C40 encodings in Data Matrix were fixed.


2014-07-30

* The Data Matrix encoder was optimised to minimise the symbol size.


2014-07-15-1

* A bug in the QR Code encoder was fixed.


2014-07-15

* The QR Code encoder was optimised to minimise the symbol size.


2014-06-30-1

* The MicroPDF417 encoder was optimised to minimise the symbol size.


2014-06-30

* The PDF417 encoder was optimised to minimise the symbol size.


2014-06-20-1

* A bug in the Aztec Code encoder was fixed.


2014-06-20

* A bug in the Aztec Code encoder was fixed.


2014-06-18

* The Aztec Code encoder was optimised to minimise the symbol size.


2014-03-12

* A bug in the calculation of the checksum of HIBC symbols was fixed.


2014-03-11

* Support was added for the GS1 QR Code symbology.
* Input validation was added to the ISBN, ISMN and ISSN symbologies.


2014-01-30

* The ITF-14 encoder was amended to allow override of the height, borderleft, borderright and textyoffset properties.


2014-01-19

* VMusage was added to the DSC data.
* DSC comments were added to the non-packaged resources.


2014-01-07

* The barcolor and backgroundcolor options were enabled for Maxicode symbols.


2014-01-06

* The renmatrix renderer has been updated to generate 2D symbols using paths.
* The colour option for 2D symbols was renamed from "color" to "barcolor".


2014-01-03

* The arguments to the imagemask operator where changed to explicitly disable image interpolation.


2013-10-06

* Support for C40, TEXT and X12 encodings was added to the Data Matrix symbology.


2013-07-15

* Removed the incomplete input validation from the Telepen symbology.


2013-06-12

* The REQUIRES metadata from databartruncated was fixed.


2013-06-07

* Input validation was added to the Flattermarken symbology.


2013-06-03

* Input validation was added to the Channel Code symbology.


2013-06-02-1

* Input validation was added to the HIBC Code 39, HIBC Code 128, HIBC Data Matrix, HIBC PDF417, HIBC MicroPDF417, HIBC QR Code and HIBC Codablock F symbologies.


2013-06-02

* Code 39 input validation was fixed.


2013-06-01-1

* Input validation was added to the USPS POSTNET and USPS PLANET symbologies.


2013-06-01

* Input validation was added to the KIX symbology.


2013-05-31

* Input validation was added to the RM4SCC symbology.


2013-05-30-3

* Input validation was added to the Plessey UK symbology.


2013-05-30-2

* Input validation was added to the GS1 DataBar Limited symbology.


2013-05-30-1

* Input validation was added to the GS1 DataBar Omnidirectional, GS1 DataBar Stacked, GS1 DataBar Stacked Omnidirectional and GS1 DataBar Truncated symbologies.


2013-05-30

* Input validation was added to the Codabar symbology.
* An altstartstop option was added to the Codabar symbology.


2013-05-29-2

* Input validation was added to the symbol, raw and DAFT encoders.


2013-05-29-1

* Input validation was added to the Code 11 symbology.


2013-05-28-2

* Input validation was added to the Code 39 Extended symbology.


2013-05-28-1

* Input validation was added to the Code 39 symbology.


2013-05-28

* Input validation was added to the BC412 symbology.


2013-05-27-1

* The validatecheck option was fixed in the Code 2 of 5 symbology.


2013-05-27

* Input validation was added to the Pharmacode, Two-track Pharmacode and Code 2 of 5 symbologies.


2013-05-25

* Input validation was added to the EAN-14, SSCC-18, Italian Pharmacode and PZN symbologies.


2013-05-24-2

* The PREAMBLE section was changed into RESOURCE metadata.


2013-05-24-1

* The renderers are now included in the REQUIRES metadata.


2013-05-24

* Input validation was added to the Interleaved 2 of 5, ITF-14, Leitcode and Identcode symbologies.


2013-05-23

* Input validation was added to the EAN-13, EAN-8, UPC-A, UPC-E, EAN-5 and EAN-2 symbologies.


2013-05-22

* The EAN-8, UPC-A and UPC-E check digits are validated if provided.


2013-05-21

* The EAN-13 check digit is validated if provided.


2013-05-20-1

* The SUGGESTS metadata fields were changed to REQUIRES.


2013-05-20

* The initial error handling facility was added.


2013-05-19

* Fixed generic named resource definition when packed arrays are not available.


2013-02-27

* The ISSN encoder was modified to permit a five digit addon.


2013-01-25

* A bug in the generation of the mode message for Aztec Code symbols performing reader initialisation was fixed.


2013-01-17-1

* The isbnfont. isbnsize and isbnpos options were changed to isbntextfont, isbntextsize and isbntextyoffset respectively for the ISBN symbology. Similar changes were made to the ISMN and ISSN symbologies.
* An isbntextxoffset option was added to the ISBN symbology. Similar changes were made to the ISMN and ISSN symbologies.


2013-01-17

* The textxalign option was enabled for EAN-13, EAN-8, UPC-A and UPC-E.
* The addontextxoffset, addontextyoffset, addontextfont and addontextsize options were added for EAN-13, EAN-8, UPC-A and UPC-E.


2012-12-12

* The encoding of numeric data following an FNC1 codeword was fixed in the GS1 DataBar Expanded and GS1 Composite Component symbologies.


2012-11-15

* renlinear was modified to avoid a clash with a predefined name in Distiller.


2012-06-26

* The QR Code encoder was modified to opportunistically raise the error correction level when this does not increase the symbol size.
* The QR Code encoder was modified to that Micro QR Code symbols do not require the use of raw mode.
* The default error correction level for Micro QR Code symbols was changed to L.


2012-06-25

* The QR Code encoder was modified to select an optimal encoder based on the data.


2012-06-24

* A bug in the symbol size selection for QR Code was fixed.
* The QR Code encoder was optimised by allowing the terminator pattern to be trimmed.


2012-06-23

* Support for the alphanumeric, numeric and kanji encodings was added to the qrcode encoder.


2012-04-26

* The PZN symbology was extended with support for PZN8.


2011-05-10

* The 1.5 scale factor was removed from the DataMatrix encoder.


2011-04-14-1

* Support for the GS1 Data Matrix symbology was added.


2011-04-14

* A bug in double digit ASCII encodation of the Data Matrix symbology was fixed.


2011-04-13

* The high level encoding for the Data Matrix symbology was changed from byte mode to ASCII mode.
* The EDIFACT, C40, TEXT and X12 encodation schemes were removed from the Data Matrix symbology as these were buggy.
* Support for FNC1 character as added to the Data Matrix symbology.


2011-03-21

* A bug in the options parsing for the symbol encoder was fixed.


2011-03-09

* The error correction code for Maxicode symbols was improved.


2011-03-07

* Codablock F was fixed for short data inputs.


2011-03-06

* Support for the Codablock F symbology was added.
* Support for the HIBC Codablock F symbology was added.


2011-02-28-1

* The optimised encoding of Code 16K symbols was simplified.


2011-02-28

* The optimised encoding of Code 128 symbols was simplified and improved.


2011-02-24

* The optimised encoding of Code 128 symbols was improved.


2011-02-20

* Support for the extended datalength option was added to the Code 16K symbology.


2011-02-19

* Support for the Code 16K symbology was added.


2011-02-17

* The optimal start character selection for Code 128 symbols was improved.


2011-02-13

* Support for the Code 49 symbology was added.


2011-02-05

* Support for the Code One symbology was added.


2011-01-25-1

* The GS1 DataBar Expanded Composite and GS1 DataBar Expanded Stacked Composite symbologies were amended so that their separator patterns are correctly generated.


2011-01-25

* The GS1 DataBar Omnidirectional Composite, GS1 DataBar Stacked Composite, GS1 DataBar Stacked Omnidirectional Composite, GS1 DataBar Truncated symbologies were amended so that their separator patterns are correctly generated.


2011-01-22

* GS1-128 Composite was fixed so that the 2D component is correctly aligned.


2011-01-20

* Preliminary support for the GS1 DataBar Omnidirectional Composite, GS1 DataBar Stacked Composite, GS1 DataBar Stacked Omnidirectional Composite, GS1 DataBar Truncated, GS1 DataBar Limited, GS1 DataBar Expanded, GS1 DataBar Expanded Stacked symbologies were added.


2011-01-16

* The default height for the GS1-128 symbologies was changed.
* Preliminary support for the GS1 DataBar Limited Composite symbology was added.


2011-01-15-1

* Preliminary support for the EAN-8 Composite, UPC-A Composite and UPC-E Composite symbologies was added.


2011-01-15

* Support for the GS1 Composite 2D components was added.
* Preliminary support for the EAN-13 Composite symbology was added.


2011-01-14

* Renamed rss14 to databaromni, rsslimited to databarlimited, rssexpanded to databarexpanded.
* Added convenience encoders for GS1 DataBar Stacked, GS1 DataBar Stacked Omnidirectional, GS1 DataBar Truncated and GS1 DataBar Expanded Stacked.


2011-01-07-1

* Support for the HIBC MicroPDF417 symbology was added.


2011-01-07

* Support for the MicroPDF417 symbology was added.


2010-12-24

* Support for CC-A/B amd CC-C composite linkage was added to the GS1-128 symbology.
* The Code 128 symbology was extended with support for composite linkage pseudo characters.


2010-12-19-1

* PDF417 was amended to automatically select an appropriate number of columns when not provided.


2010-12-19

* The default error correction levels for PDF417 symbols were updated.


2010-12-17

* A bug in the encoding of the general purpose field ending in numeric mode of GS1 DataBar expanded symbols was fixed.


2010-12-08

* Renamed occurrences of alpha mode to alphanumeric in GS1 Databar Expanded symbology to disambiguate from the standard GS1 alpha encoding.


2010-12-06

* The list of FNC1 exempt GS-1 application identifiers was fixed in the GS1-128 and GS1 DataBar symbologies.


2010-12-03

* Fixed occurances of a bad programming paradigm that could result in the incorrect generation of certain symbols when including multiple instances.


2010-12-01-1

* Support for the Deutsche Post Leitcode Symbology was added.


2010-12-01

* Support for the Deutsche Post Identcode Symbology was added.


2010-11-29

* A checkoffset option was added to the posicode encoder to facilitate multirow symbols.


2010-11-28

* Support for the Flattermarken symbology was added.


2010-11-26

* Checksum support for the Channel Code encoder was added.


2010-11-22

* Support for the PosiCode symbology was added.


2010-11-18

* An option to use a short finder pattern was added to the Channel Code encoder.


2010-11-17

* Support for the Channel Code symbology was added.


2010-11-16

* Support for the HIBC Code 39, HIBC Code 128, HIBC Data Matrix, HIBC PDF417 and HIBC QR Code symbologies was added.


2010-11-15

* The efficiency of the Two-Track Pharmacode encoder was improved.


2010-11-10

* The escape sequences for the special shift characters were changed.
* Support for the Code 93 Extended symbology was added.


2010-11-09

* Support for the Code 39 Extended symbology was added.


2010-11-07

* Support for the ITF-14 symbology was added.


2010-11-06-1

* Support for the SSCC-18 symbology was added.
* Support for the GS1-14 symbology was added.


2010-11-06

* Support for the GS1-128 symbology was added.


2010-11-05

* The code128 encoder was modified to automatically encode the input.


2010-10-30

* Support for the Pharmazentralnummer (PZN) symbology was added.


2010-10-29-1

* The text parameters for EAN an UPC symbols are now applied to the addons.


2010-10-29

* A bug in the display of the ISSN check digit was fixed.


2010-10-28

* Support for Code 32 (Italian Pharmacode) was added.


2010-10-19

* Added daft encoder to make it easier to create miscellaneous symbols in a custom 4 state symbology.


2010-10-18-1

* Support was added to the Plessey symbology for the unidirectional variant.


2010-10-18

* Support for the BC412 symbology was added.


2010-10-11-1

* A bug in the calculation of the border height was fixed.
* The example for Two-track Pharmacode was changes to display a border.


2010-10-11

* Support for the Two-track Pharmacode symbology was added.


2010-10-08-1

* Support for the ISSN symbology was added.


2010-10-08

* Support for the ISMN symbology was added.


2010-10-07

* The ISBN encoder was improved to upgrade ISBN-10 input to ISBN-13.


2010-10-05

* The code2of5 encoder was improved to support the IATA, matrix, COOP, and Datalogic versions of the symbology.


2010-10-04-1

* A bug was fixed that could allow the generation of invalid MSI symbols when using a modulus 11 check digit.


2010-10-04

* Support for the Telepen symbology was added.


2010-10-01

* A bug in the placement of human readable text for Plessey and MSI symbols was fixed.


2010-09-30-1

* The bar-space widths were amended for Plessey and MSI symbols were amended to better conform to their specifications.


2010-09-30

* A bug in the calculation of the checksum of Plessey symbols was fixed.


2010-09-27

* A bug in the calculation of the checksum of MSI symbols was fixed.
* Additional checksum types where added to the MSI symbology.


2010-07-16-1

* A bug in the determination of the error correction level of PDF417 symbols was fixed.


2010-07-16

* A bug in the determination of the error correction level of PDF417 symbols was fixed.


2010-06-20

* A bug in QR Code mask evaluation was fixed.


2010-05-20

* Support for the USPS PLANET symbology was added.
* An input handling bug in the USPS POSTNET encoder was fixed.


2010-01-27

* The list of FNC1 exempt application identifiers in GS1 DataBar Expanded was fixed.


2010-01-26

* A bug in the numeric encoding of the general purpose field of GS1 DataBar Expanded symbols was fixed.


2010-01-15

* Support for UPC-E1 was added to the upce encoder.


2010-01-05

* Converted to a set of PostScript named resources rather than a procedure list.


2009-11-15

* A bug in the symbol selection algorithm for QR Code was fixed.
* Ensure that auto-encoding a micro-format QR Code symbol fails rather than produces a full-format symbol.


2009-11-06

* Convert interleaved2of5 encoder to use barratio and spaceratio to set the narrow to wide bar ratio.


2009-11-05

* Ensure that the UPC-E encoder does not fail silently when an invalid input is given.


2009-10-13

* Changed the barcode dict to pass an encoder reference rather than a procedure name.


2009-08-12

* A bug in the Reed-Solomon error correction routine for PDF417 was fixed.


2009-08-06-1

* A bug in the Code 11 start character was fixed.


2009-08-06

* A parse option was added to the pdf417, datamatrix, qrcode and azteccode encoders to allow input characters to be represented using ^NNN notation.


2009-07-31

* The rss14 and rsslimited encoders were amended to require the input to start with the (01) application identifier.
* The rss14 andd rsslimited encoders were amended to automatically generate the human readable check digit if it is not supplied.


2009-07-30-1

* A bug affecting the padding of GS1 DataBar Expanded symbols was fixed.


2009-07-30

* An autoencoder was added to the GS1 DataBar Expanded encoder.
* A finder pattern selection bug in GS1 DataBar Expanded symbols was fixed.
* A check digit calculation bug in GS1 DataBar Expanded symbols was fixed.


2009-07-19

* Added support for GS1 DataBar Expanded Stacked to the rss14expanded encoder with option segments=2n.


2009-07-17

* A bug in the placement of the final finder pattern in GS1 DataBar Expanded symbols with an odd numer of segments was fixed.


2009-07-14

* The GS1 DataBar Limited default height was changed to match the minimum permitted height.


2009-07-12

* Added support for GS1 DataBar Truncated to the rss14 encoder with option format=truncated.
* Added support for GS1 DataBar Stacked to the rss14 encoder with option format=stacked.
* Added support for GS1 DataBar Stacked Omnidirectional to the rss14 encoder with option format=stackedomni.


2009-07-06-1

* Fixed bug in the padding of maxicode symbols where the data terminates in code set C, D or E.
* Cleaned up the maxicode implementation by inlining the high-level encoding procedure.


2009-07-06

* The font height calculation performed by the linear renderer was improved.
* The human readable text for OneCode symbols was improved to match the specification.


2009-07-03-2

* The pad characters from character set B were disambiguated.


2009-07-03-1

* A bug with the ordinal parser in the maxicode encoder was fixed.


2009-07-03

* An autoencoder was added to the maxicode encoder.


2009-06-22

* C40, TEXT and X12 encoders were added to datamatrix.


2009-06-21

* Added checksum support to ean8 encoder.
* Fixed breakage in ean8 when includetext not in use.


2009-06-20-1

* Fix looping in datamatrix ASCII-mode encoder.


2009-06-20

* The ASCII-mode encoder for datamatrix was improved to compact pairs of digits.


2009-06-19

* An EDIFACT-mode autoencoder was added to the datamatrix encoder.


2009-06-03

* A byte-mode autoencoder was added to the datamatrix encoder and set as default.


2009-05-20

* A byte-mode-only autoencoder was added to the pdf417 encoder to simplify the use of the pdf417 encoder for common tasks.


2009-05-17

* A byte-mode-only autoencoder was added to the azteccode encoder to simplify the use of the azteccode encoder for common tasks.


2009-05-15

* A byte-mode-only autoencoder was added to the qrcode encoder to simplify the use of the qrcode encoder for common tasks.


2009-05-13

* An ASCII-mode-only autoencoder was added to the datamatrix encoder to simplify the use of the datamatrix encoder for common tasks.


2009-04-28

* Update the descriptions of the RSS symbologies to GS1 DataBar.


2009-03-16

* A textgaps option was added to adjust the inter-character gap in non-default text alignment modes for linear barcodes.
* A justify mode was added to the textxalign option in linear barcodes.


2009-03-06

* The encoders were amended to automatically invoke the appropriate renderer.
* The dispatcher procedure was removed.
* A dontdraw option was added to each encoder to suppress automatic rendering.
* The encoders were reordered by their dependancy chain and references to dependant procedures were changed to use immediately evalutated name syntax.


2009-02-26

* Minor fixups were made to the addon positioning.
* The samples were amended to demonstrate the new dict option passing mechanism and alttext option.


2009-02-25-1

* The EAN-5 and EAN-2 addon encoders were folded into the EAN, UPC and ISBN encoders.


2009-02-25

* The options parser of each encoder was improved to also accept a dict of options.
* An alttext option was added to the renlinear renderer which allows alternative human readable text to be specified.


2009-02-10

* Support for the JapanPost symbology was added.


2009-01-11

* The efficiency the RSS symbol generation was slightly improved.


2008-12-28

* The efficiency of Data Matrix symbol generation was further improved.


2008-12-27

* The efficiency of Data Matrix symbol generation was improved.


2008-12-26

* Minor efficiency improvements where made to the Reed-Solomon error correction routines.


2008-12-22

* The efficiency of the mask evaluation for full QR Code symbols was significantly improved.


2008-12-14

* A bug in the placement of error correction modules within 144x144 Data Matrix symbols was fixed.


2008-12-07

* Switched from the image operator to the imagemask operator for rendering of 2D matrix symbologies.
* Support for color and backgroundcolor for 2D matrix symbologies was added.


2008-12-06-1

* The line caps are explicitly squared off to prevent interference from the environment.


2008-12-06

* The syntax for constructing the dictionary for passing the barcode paramaters to the renderer was updated.


2008-12-01

* Removed unnecessary DSC comment %%EndProlog.


2008-11-25

* The QR Code encoder was improved so that it performs mask evaluation for full mode symbols.


2008-11-16

* A bug introduced in version 2008-10-17 that resulted in incorrect checksum handling for UPC-E symbols was fixed.


2008-10-27

* The efficiency of the RSS symbologies was significantly improved.


2008-10-24

* The efficiency of the RSS symbologies was improved.


2008-10-17

* The ability to override the automatic checksum calculation for EAN-13, UPC-A, UPC-E and ISBN was removed.


2008-09-14

* Support for hiding the asterisks in the human readable text of Code 39 symbols was added.


2008-07-10

* The efficiency of the OneCode encoder was improved by replacing routines that generate tables of constants by the tables of constants themselves.


2008-04-06-1

* The Data Matrix encoder was shortened by replacing the list of all possible generator polynomials by a routine that derives only the required set.


2008-04-06

* The PDF417 encoder was shortened by replacing the list of all possible generator polynomials by a routine that derives only the required set.


2008-03-30-1

* The superfluous size option was removed from the QR Code encoder.


2008-03-30

* The QR Code encoder was amended to select full format symbols unless instructed otherwise.


2008-03-29

* Support for the QR Code 2D symbology was added.


2008-03-13

* Added support for FCC type 45 (Reply Paid Barcode) to the Auspost symbology.


2008-03-08

* A bug in the treatment of the human readable text when using special text alignment with Code 128C was fixed.


2008-03-01

* A bug in the check-bars calculation for the RSS Limited symbology was fixed.


2008-02-25

* Bugs in the Reduced Space Symbologies were fixed.


2008-02-17

* Support for the Aztec Code 2D symbology was added.


2008-02-15

* Fixed some occurances of a bad programming paradigm that could result in the incorrect generation of certain symbols when including multiple instances.


2008-01-25

* A bug in the generation of the pseudo-randomised padding characters for Data Matrix was corrected.


2008-01-19

* Fixed logic error that resulted in incorrect codeword lengths for modes 4, 5 and 6 in MaxiCode.


2008-01-15

* Support for the Data Matrix ECC200 2D symbology was added.


2008-01-02

* The PDF417 encoder was amended to opportunistically raise the error correction level if there is a better fit to the derived size of the matrix.


2008-01-01

* Support for the PDF417 2D symbology was added.


2007-12-21

* The ISBN encoder was slightly improved so that it generates the check digit even when the user does not omit the final dash.


2007-12-03

* Human readable text support was added to RSS-14, RSS Limited, OneCode and Pharmacode symbologies.
* Default font and spacing for specifically aligned text was change to make it more consistant with default text placement.
* A bug that made textxalign=left ineffective was fixed.


2007-12-01

* Added textxalign and textyalign options to control the positioning and formatting of human readable text.


2007-07-02

* Support for the MaxiCode 2D symbology was added.


2007-06-16

* Code was refactored to support multiple renderers.
* Added parsable renderer field to each encoder.
* Renderer for maxicode symbols was added, but there is no encoder for this yet.


2007-05-19

* Added parsable example options field to each encoder.


2007-05-18

* An encoder for the Pharmaceutical Binary Code symbology was added.


2007-04-22

* Added CMYK colorspace support.


2007-02-25

* Fixed incorrect checksum calculation for UPC-E symbols.


2006-09-26

* Added raw encoder to make it easier to create miscellaneous symbols in a custom symbology.


2006-09-14

* Functional comments were added to the head of the encoders to allow applications to extract the symbology name and example input data.


2006-05-26

* An encoder for the Reduced Space Symbology RSS Expanded was added.


2006-05-25

* The incorrect definition of the USPS FIM-B symbol was fixed.


2006-05-23

* An encoder for the Reduced Space Symbology RSS Limited was added.
* The efficiency of RSS-14 was improved.


2006-05-22

* An encoder for the Reduced Space Symbology RSS-14 was added.


2006-05-16

* An encoder for the new OneCode symbology used by the US Postal Service was added.


2006-03-04

* The FIM symbols now render according to their specification.


2006-03-03

* The Postnet, Royal Mail, AusPost and KIX encoders were amended so that the metrics of their default symbols confirms strongly to their respective specifications.


2006-03-02

* The encoders now pass an array containing the widths of the bar space succession to the renderer allowing for sub-point horizontal precision.


2006-01-19

* The default border positions for EAN and UPC symbols were amended to properly enclose the human readable text.


2006-01-18

* The colour support code was fixed to prevent overwriting of the current colour when values are left unspecified.


2006-01-17

* The logic to guard whitespace in EAN symbols was migrated from the encoders to the renderer.
* The whitespace guard symbols are now drawn directly making them independant of any font.
* The inter-guard bar height of EANs and UPCs was amended.


2006-01-16

* The renderer was amended to support the passing of encoder specific arguments.


2006-01-08

* The options barcolor, textcolor, bordercolor, showbackground and backgroundcolor were added to the renderer.
* A flaw in the derivation of the top border height was fixed.


2005-12-17

* The renderer was amended to plot symbols from the current point rather than the origin.


2005-11-01

* The performance of the renderer was improved by avoiding unnecessary calls of setfont.


2005-10-28

* The auspost encoder was extended to support the customer information field.


2005-10-24

* A new encoder for the barcodes used by the Australian Postal Service was added.


2005-10-17

* A checksum was added to the Code 2 of 5 encoder.


2005-10-16

* A checksum was added to the Code 11 encoder.


2005-10-14

* A new renderer option was added that forces any symbol to a user supplied width.


2005-09-26

* A new encoder was added to support the generation of miscellaneous symbols.
* Support for generation of FIM symbols used on US Postal service reply mail was added.


2005-09-15

* A new encoder for the KIX symbology used by the Dutch postal service was added.


2005-09-12

* Options were added that allow precise adjustments to be made to the ratio of bar widths and space widths.


2005-09-11

* Placement problems with the border of EAN-2 and EAN-5 symbols have been fixed by amending the baseline of the bars.


2005-09-10

* The options required to enable a customisable border around any barcode symbol were added to the renderer.


2005-09-08

* An options parser was added to the renderer.
* Each renderer was modified to pass a copy of its user-defined options to the renderer.
* A new user-definable option called inkspread that reduces the width of the bars was added to the renderer.


2005-08-08

* The options parser for each of the encoders was upgraded to remove the 30 character size limitation from individual options within a given option string.


2005-08-07

* The ISBN encoder was upgraded to support the emerging ISBN-13 symbology.


2005-08-02

* PostScript and PDF documentation is now created using the new pst-barcode LaTeX package to generate the barcode images.


2005-06-21

* The isbnfont, isbnsize, and isbnpos options were added to allow the independant manipulation of the upper part of the human readable text within the ISBN symbology.


2005-06-09

* A minor fix was made to the positioning of human readable text within the Code 128 symbology.


2005-06-06

* Optional whitespace guards have been added to the human readable text of EAN barcodes.
* The position of the first character of EAN-13s has been adjusted to guard the whitespace to the left of the bars.


2005-05-10

* The ability to allow the code to remain resident within most printer's PostScript virtual machines, until a hard reset is performed, was added.


2005-04-12

* The default textpos for EAN-2 and EAN-5 was changed so that it is now a function of the supplied height.
* Delimiter comments were added around the encoders so that the file can be easily parsed as a template.


2005-04-09

* Delimiters were added around individual encoders to simplify parsing.


2005-03-29

* A bug in the calculation of Code 93 barcode length when using extended full ASCII characters was fixed.


2005-03-21

* Support for the Royal Mail/RM4SCC symbology was added.
* A minor fix was made to the positioning of human readable text in the PostNet symbology.


2005-03-05

* The Postnet encoder was amended to generate correctly proportioned bars.


2005-02-28

* A bug that resulted in the incorrect generation of Code 93 check digits for data exceeding 15 characters in length was fixed.


2005-02-03

* A user option to override the default barcode height was added.


2005-02-01

* The option passing mechanism was improved to allow the user to override many default variables.


2005-01-25

* Human readable text was added to the remaining encoders.
* Support for a string of options to enable or disable features of an encoder for each barcode instance was added.


2005-01-22

* Human readable text, with an option to suppress display of the check digit, was added to Code-39, Interleaved 2 of 5, and Postnet symbologies.
* The ability to suppress human readable text to EANs, UPCs, ISBN, and all other symbologies that show text was added.
* Encoders now pass font information to the renderer.
* The encoders were restructured to prepare for the passing of switches to enable or disable features of the encoder.


2005-01-19

* The ability to suppress checkdigit for codabar, code39, code93, and interleaved 2 of 5 symbologies was added.


2005-01-05

* Support for Code 93 and Code 11 was added.
* A checksum was added to Code 39 and Interleaved 2 of 5.
* Incorrect generation of X human readable check-digit for ISBN was fixed.


2005-01-02

* This release adds support for the EAN-2 and EAN-5 (the EAN/UPC add-ons) symbologies, MSI symbology, and Plessey symbology.
* The narrow:wide ratio for Code 2 of 5 has been changed.


2004-12-29

* This release fixes the incorrect generation of Code 128 check digits.


2004-12-27

* This release adds a code128 encoder that fully supports character alphabets A, B, and C. This allows for UCC/EAN-128 support.
* The obsolete code128b encoder has been dropped.


2004-12-24

* This release fixes a bug in code128b where first ^ character in string of available characters should be &.


2004-12-21

* The Supported Symbologies section of the documentation was enhanced to include samples of all the supported barcode types.


2004-12-14

* Incorrect generation of human-readable check digits for the ISBN encoder was fixed and the documentation was updated with an example of use from within Perl.


2004-12-11

* Support for the ISBN barcode format was added.


2004-12-09

* Documentation is now available in PDF and HTML formats.
* The orignal .tex files are shipped in the tarball.


2004-12-07

* Support for human readable text on the EAN and UPC formats was added.
* Redundant code was removed from the UPC-A format.
* Minor code cleanups were made.
* A mailing list and support group is now available.


2004-12-04

* EANs and UPCs now have elongated guard bars.
* The efficiency of the renderer was improved.
* A bug that printed a tiny artifact at the bottom-left of barcodes was fixed.
* All barcodes now default to 1 inch in height with a narrow bar width of 1 pt.


2004-12-03-1

* Support has been added for the Postnet barcode format.
* The renderer has been improved to allow support for symbologies with variable height bars.


2004-12-03

* This version changes the renderer to accept a dictionary of arguments rather than an sbs string, so that it can have optional arguments such as text and bar heights passed to it. The encoders were upgraded accordingly.


2004-11-30

* Efficiency was improved by adding the bind operator to procedure definitions to make use of early operator resolution.


2004-11-26

* This release adds a PostScript file and a tarball on the homepage to ease downloading and patching.


2004-11-23

* This release added support for the UPC-E barcode format.


2004-11-21

* Support has been added for EAN-13, EAN-8, and UPC-A barcode formats.


2004-11-19

* This release adds support for printing the EAN-13 barcode format.
* The software now supports EAN-13, Code 128-B, Code 39, Interleaved 2 of 5, Code 2 of 5, and Codabar.
