| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177 |
- Version 2.13.0.9 (dev) not released yet (2024-12-23)
- ====================================================
- **Incompatible changes**
- ------------------------
- - New `memfile` & `memfile_size` fields in `symbol` for use with new output
- option `BARCODE_MEMORY_FILE`
- - Buffer length of member `text` (HRT) in `zint_symbol` extended 200 -> 256
- (client buffers may need checking/extending)
- - Invalid `input_mode` now returns warning
- - Aztec Code symbols that due to input length & user-requested version have less
- than recommended 5% error correction codewords now return warning
- - New CODE128-only special extra escapes beginning `\^`
- - Add-ons for UPC-A and UPC-E now descend to be level with the main symbol guard
- bars, and the righthand outside digit is now placed 1X less from main symbol
- to avoid touching any add-on
- - GS1-128 symbols now warn if READER_INIT option used
- Changes
- -------
- - BMP: lessen heap memory usage by only `malloc()`ing a row
- - GIF: lessen heap memory usage by paging; use standard colour char map
- - Add `BARCODE_MEMORY_FILE` to `symbol->output_options` to allow outputting to
- in-memory buffer `symbol->memfile` instead of to file `symbol->outfile`,
- ticket #301
- - CODE16K (was for CODE128): improve encodation on A/B shifting, props Daniel
- Gredler (Okapi)
- - CODE128: add new extra escape `\^1` for manual insertion of FNC1s, ticket
- #324, props Jim Shank;
- new extra escapes `\^A`, `\^B`, `\^C` and `\^@` for manual switching of
- Code Sets;
- add minimal encodation algorithm, props Alex Geller (ZXing) and Bue Jensen
- (BWIPP);
- - library: return warning on invalid `input_mode` reset
- - library/CLI: expanded error messages
- - GS1: new AIs 7250-7259 (GSCN 22-246);
- iso4217: new ISO 4217 currency code 924;
- new AIs 7041 (GSCN 23-272) (packagetype) and 716 (GSCN-24-157)
- - AZTEC: workaround MSVC 2022 optimizer bug in `az_populate_map()` loops,
- ticket #317, props Andre Maute;
- return warning if ECC < 5% (due to bit-stuffing when version given)
- - MAXICODE: zero-pad US postcodes that lack "+4" (Annex B.1.4a), from
- OkapiBarcode, props Daniel Gredler;
- add minimal encodation algorithm, props Bue Jensen (BWIPP)
- - GUI: use X11 (xcb) as platform instead of Wayland on Linux to avoid various
- weird behaviours;
- in "grpDATF.ui" use "PlainText" rather than "RichText" for tracker ratio
- examples as height of text messing up sometimes
- - UPCA/UPCE: descend add-ons to same level as guards and adjust righthand
- outside digit to be 4X/2X instead of 5X/3X away from main symbol so as not to
- touch add-on TODO: revisit when standard clarified
- - manual: make explicit that AI "(00)" and "(01)" prefixes added by Zint are
- HRT-only; clarify Codablock-F length maximum & add examples
- - add DXFILMEDGE (MR #159, props Antoine Mérino)
- Bugs
- ----
- - raster/BMP/GIF/PCX/TIF: fix dealing with very large data (use `size_t`)
- - raster: add `raster_malloc()` to fail > 1GB (avoids very large output files;
- also lessens to some degree chances of being victim of OOM killer on Linux)
- - GUI: printing scale dialog: set maxima on X-dim and resolution to keep scale
- <= 200
- - BMP/EMF/PCX/TIF: fix endianness on big-endian machines (note TIF now always
- written as little-endian - simplifies testing)
- - ITF14/DPLEIT/DPIDENT: ignore `option_2` (check digit options)
- - GUI: scalewindow: fix cropping of initial resolution and bound X-dim <= 10
- - GUI: factory reset: reset preview background colour also
- - GUI: cliwindow: `#if _WIN32` -> `#ifdef _WIN32`
- - QZint: fix legacy width and security level getters/setters, MR #158, props
- Philip Ye
- - CODE128: fix extended char latching when exactly 3 extended chars at end
- - library: need to check for valid UTF-8 after de-escaping
- - MAXICODE: maintain current set between segments
- Version 2.13.0 (2023-12-18)
- ===========================
- **Incompatible changes**
- ------------------------
- - Buffer lengths of members `fgcolour` and `bgcolour` in `zint_symbol` extended
- 10 -> 16 to allow for "C,M,Y,K" comma-separated decimal percentage strings
- - CMYK values for EPS (slightly) and TIF (significantly) have changed - now use
- the same RGB -> CMYK formula
- - Text (HRT) placement for vector (EMF/EPS/SVG) output changed - for EAN/UPC
- slightly further away from barcode, for all others slightly nearer. Some
- horizontal alignments of EAN/UPC vector text also tweaked
- - Text (HRT) for standalone EAN-2 and EAN-5 now at top of symbol
- (was at bottom)
- - Text height (font size) for SMALL_TEXT vector output reduced
- - For Windows, filenames are now assumed to be UTF-8 encoded. Affects `outfile`
- in `zint_symbol` and all API filename arguments
- - Never-used `fontsize` member removed from `zint_symbol`
- - Buffer length of member `text` (HRT) in `zint_symbol` extended 128 -> 200
- (client buffers may need checking/extending)
- - Font of text of SVG vector output now "OCRB, monospace" (EAN/UPC) or
- "Arimo, Arial, sans-serif" (all others)
- (was "Helvetica, sans-serif" for both)
- - Unintended excess horizontal whitespace of Composite symbols removed, and
- quiet zone settings respected exactly, and centring of HRT (if any) now
- relative to linear part of symbol only rather than whole symbol
- - Unlikely-to-be-used `bitmap_byte_length` member removed from `zint_symbol`
- (was only set on BMP output to length of BMP pixel array)
- - EXCODE39 now defaults to displaying check digit in Human Readable Text (HRT)
- - GS1_128 now warns if data > 48 (GS1 General Specifications max)
- Changes
- -------
- - BMP/EMF/EPS/GIF/PCX/PNG/SVG/TIF/TXT: check for errors on writing to output
- file (ticket #275)
- - manual/man page: document octal escape; Code 128 subset/mode -> Code Set
- - Add special symbology-specific escape sequences (Code 128 only) for manual
- Code Set switching via `input_mode` flag `EXTRA_ESCAPE_MODE` (CLI --extraesc)
- (ticket #204)
- - GUI: disable "Reset" colour if default; add "Unset" to Printing Scale dialog
- (allows unsetting of X-dim/resolution settings without having to zap)
- - API/CLI/GUI: allow foreground/background colours to be specified as
- comma-separated decimal percentage strings "C,M,Y,K" where "C", "M" etc. are
- 0-100 (ticket #281, 3rd point)
- - PCX: add alpha support
- - GUI: rearrange some Appearance tab inputs (Border Type <-> Width, Show Text
- <-> Font, Text/Font <-> Printing Scale/Size) to flow more naturally;
- save button "Save As..." -> "Save..." and add icon
- - Add `text_gap` option to allow adjustment of vertical gap between barcode and
- text (HRT)
- - DAFT: up max to 250 chars
- - CLI: use own (Wine) version of `CommandLineToArgvW()` to avoid loading
- "shell32.dll"
- - EAN/UPC: add quiet zone indicators option (API `output_options`
- `EANUPC_GUARD_WHITESPACE`, CLI `--guardwhitespace`) (ticket #287)
- - EAN-2/EAN-5: HRT now at top instead of at bottom for standalones, following
- BWIPP
- - EPS/SVG: use new `out_putsf()` func to output floats, avoiding trailing zeroes
- & locale dependency
- - EPS: simplify "TR" formula
- - SVG: change font from "Helvetica, sans-serif" to "OCRB, monospace" for EAN/UPC
- and "Arimo, Arial, sans-serif" for all others;
- use single "<path>" instead of multiple "<rect>"s to draw boxes (reduces file
- size)
- - Add `EMBED_VECTOR_FONT` to `output_options` (CLI `--embedfont`) to enable
- embedding of font in vector output - currently only for SVG output
- - GUI: use "OCRB" font for EAN/UPC and "Arimo" for all others (was "Helvetica"
- for both); add preview background colour option (default light grey) so as
- whitespace will show up in contrast (access via preview context menu)
- - CODE128/common: add `ZINT_WARN_HRT_TRUNCATED` warning
- - QRCODE: better assert(), removing a NOLINT (2 left)
- - CLI: add some more barcode synonyms for DBAR
- - CMake: don't include png.c unless ZINT_USE_PNG (avoids clang warning)
- - vector: reduce SMALL_TEXT font height 6 -> 5 to be more like raster;
- reduce antialiasing allowance for `textoffset`;
- adjust text to baseline using values for Arimo rather than percentage
- - manual: expand size/alpha details in Section "5.4 Buffering Symbols in Memory
- (raster)" (cf ticket #291); add BSD info
- - EXCODE39: change to display check digit in HRT by default
- - CODE39/EXCODE39/LOGMARS: new hidden check digit option
- - GUI: move some symbology-specific options into Data Tab so separate tab
- unnecessary
- - DATAMATRIX: add `DM_ISO_144` (--dmiso144) option for ISO placement of ECC
- codewords instead of default "de facto"
- - manual: add annexes on Qt and Tcl backends
- - CODE128: increase no. symbol chars max 60 -> 99
- - frontend: truncate overlong `--primary` instead of ignoring
- - man page: list size detail for matrix symbols (`--vers`)
- - CODE11/C25XXX/CODE39/EXCODE39/HIBC_39/CODE93/CODABAR/PLESSEY/MSI_PLESSEY/FLAT/
- DAFT/TELEPEN/TELEPEN_NUM: increase allowed lengths
- - API: add `ZBarcode_Reset()` to fully restore `zint_symbol` to default state
- Bugs
- ----
- - CEPNET: fix no HRT (library: `has_hrt()`)
- - man page: fix Code 11 check digit info
- - CMake: allow ctest to be run without having to install zint or manually set
- LD_LIBRARY_PATH and PATH (ticket #279, props Alexey Dokuchaev)
- - GUI: fg/bgcolor text edit: fix right-click context menu not working properly
- by checking for it on FocusOut
- - GUI: fix fg/bgcolor icon background not being reset on zap
- - EMF/EPS/SVG/GUI: ignore BOLD_TEXT for EAN/UPC
- - EMF/EPS/SVG: fix addon bars placement/length when text hidden
- - For Windows, assume `outfile` & API filename args are in UTF-8,
- & use xxxW() APIs accordingly, ticket #288, props Marcel
- **Backwards-incompatible change**
- - GUI: fix `save_to_file()` `filename.toLatin1()` -> `toUtf8()`
- - CLI: batch mode: don't close input if stdin
- - EAN/UPC: fix excess 1X to right of add-ons
- - Composites: fix excess whitespace; fix quiet zone calcs to allow for linear
- shifting
- - GUI: fix not enabling font combo "Small Bold (vector only)" by default
- - CODEONE: fix S/T quiet zone 1X bottom (props BWIPP issue #245 doc)
- - EAN-2/EAN-5: fix `BARCODE_BIND_TOP/BIND/BOX` output
- - library: fix 21-bit Unicode conversion in `escape_char_process()`; fix
- restricting escaped data length by using de-escaped length to check
- - AZTEC: fix out-of-bounds crash when user-specified size given, ticket #300,
- props Andre Maute; fix 4-layer compact block max (76 -> 64); fix encoding of
- byte-blocks > 11-bit limit
- - CODABLOCKF: fix crash due to `columns` overflow, ticket #300, props Andre
- Maute
- - CODEONE: fix out-of-bounds crash in `c1_c40text_cnt()` and looping on latch
- crash in `c1_encode()` and too small buffer for Version T, ticket #300, props
- Andre Maute
- - EANX_CC/UPCA_CC: fix crash in `dbar_date()` on not checking length and crash
- in `gs1_verify()` on not checking length, ticket #300, props Andre Maute
- - GS1_128_CC: fix divide-by-zero crash in `calc_padding_ccc()`, ticket #300,
- props Andre Maute
- - HANXIN: fix incorrect numeric costings (out-by-1) in `hx_in_numeric()`, ticket
- #300 (#16), props Andre Maure
- - PDF417: fix out-of-bounds crash in `pdf_text_submode_length()` and
- out-of-bounds crash on overrunning string and codeword buffers, ticket #300,
- props Andre Maute
- - QRCODE: fix out-of-bounds crash due to incorrect mode costings for GS1
- percents in `qr_in_alpha()`; fix incorrect numeric costings (out-by-1) in
- `qr_in_numeric()`; ticket #300 (#14, #15; #16), props Andre Maute
- - GS1: fix square brackets treated as FNC1 in GS1PARENS_MODE by changing
- internal FNC1 marker '[' -> '\x1D' (GS), ticket #319, props Moli Sojet;
- also fix non-AI square brackets -> round brackets in GS1_128 HRT
- Version 2.12.0 (2022-12-12)
- ===========================
- **Incompatible changes**
- ------------------------
- - DOTCODE, QRCODE, RMQR: now return warning if ECI or Structured Append used in
- GS1 mode
- - CLI now returns an error if unknown option given or if option is missing its
- argument
- NOTE: previously printed error messages but continued without returning an
- error
- - DPD now adds top boundary bar by default and returns warnings if input is not
- compliant
- - Legacy and never-used output option BARCODE_NO_ASCII removed (value now used
- by new output option BARCODE_BIND_TOP)
- - Symbology BARCODE_CODE128B (Suppress subset C) renamed to BARCODE_CODE128AB
- to more accurately reflect its behaviour (old name still recognised, except in
- Tcl backend)
- - Symbology BARCODE_MAILMARK renamed to BARCODE_MAILMARK_4S due to introduction
- of BARCODE_MAILMARK_2D (old name still recognised, except in Tcl backend)
- - CLI now expects floating point arguments to be in simple decimal point
- notation (i.e. not scientific notation) with a maximum of 7 significant digits
- Changes
- -------
- - bwipp_dump.ps: convert patch file to cat file as BWIPP now honours `dontdraw`
- for composite symbologies
- - DOTCODE, QRCODE, RMQR: return warning if ECI or Structured Append used in GS1
- mode, ticket #271
- - CLI: improve `getopt_long_only()` processing, printing own message if bad arg
- and returning error if so rather than continuing to process
- - manual: MSE typo -> MSI; adjust SVG scaling for PDF manual; pandoc 2.19.2
- - manual/man page/GUI: Code 16k -> Code 16K
- - PDF417/MICROPDF417: add optimized encoding, FAST_MODE for previous; formatting
- changes
- - common.c/h: add `cnt_digits()`; comments in include; minor fiddling
- - API/CLI/Tcl/GUI: new output option BARCODE_BIND_TOP / `--bindtop` / "Bind Top"
- - DPD: add top boundary (width 3X) by default, using new BARCODE_BIND_TOP;
- "relabel" option; some compliance checks
- - manual: fuller DPD doc; some spelling typos, formatting
- - cmake: fixes for static build and install directories, props koprok
- - cmake: remove zintconfig.h.in for now as incompatible with MSVC project builds
- (will add back in future if go fully CMake)
- - NO_PNG -> ZINT_NO_PNG and new API function `Zint_NoPng()` to determine if no
- PNG support in libzint; replace use in GUI with backend_qt method `noPng()`
- - API: add new zint_symbol `dpmm` field for output resolution (BMP/EMF/PCX/PNG/
- TIF only, i.e. excluding EPS, GIF & SVG)
- - Add support for specifying scale by X-dimension and resolution with new option
- `--scalexdimdp` for CLI/Tcl & new API function `ZBarcode_Scale_From_XdimDp()`
- (plus `ZBarcode_XdimDp_From_Scale()` and `ZBarcode_Default_Xdim()`) and new
- GUI popup; manual: document
- - BMP/EMF/PCX/PNG/TIF: use new `dpmm` resolution field (for EMF following
- Inkscape)
- - backend_qt: add `dpmm()`, `vectorWidth()`, `vectorHeight()`, `noPng()`,
- `getVersion()`, `takesGS1AIData()`, & `XdimDp` stuff incl. new `QZintXdimDp`
- struct for passing around scale vars & use in `getAsCLI()`; add comments
- - Raise `scale` limit to 200 (from 100) to allow for large dpmm
- - output: create directories & subdirectories as necessary for output path using
- new function `out_fopen()` and use in BMP/EMF/EPS/GIF/PCX/PNG/SVG/TIF
- - DPLEIT/DPIDENT: format HRT according to (incomplete) documentation, and set
- default height to 72X (from 50X)
- - CODE128B renamed to CODE128AB as can use subsets A and/or B
- - MAILMARK: better error message if input < 14 characters
- - GUI: add "Default" button for DAFT tracker ratio & enable/disable various
- default buttons; use new `takesGS1AIData()` to enable/disable GS1-specific
- checkboxes
- - CLI: use new `validate_float()` to parse float options (7 significant digits
- allowed only, no scientific notation)
- - CLI: mirror: use -o directory if any (ticket #193)
- - QRCODE/UPNQR: add FAST_MODE (try 4 not 8 masks automatically)
- - GS1: add new AI 7011 (GSCN 22-163)
- - Add new symbology BARCODE_MAILMARK_2D (Royal Mail 2D Mailmark), renaming
- previous BARCODE_MAILMARK (Royal Mail 4-State Mailmark) to BARCODE_MAILMARK_4S
- - Add new symbology BARCODE_UPU_S10
- - PZN: allow check digit to be given; add space after hyphen in HRT; PZN7 option
- - backend_tcl: update TEA
- - DATAMATRIX/GRIDMATRIX/PDF417/QR/ULTRA: micro-optimize structapp ID parse
- - library/CLI: fiddle with static asserts (make CHAR_BIT sensitive, supposedly)
- - win32/README: update building libpng (assembly removed)
- - README.linux: document incompatibility of Qt6 >= 6.3
- - manual: expand Barcode Studio waffle
- - test suite: change range separator to hyphen and allow multiple excludes
- Bugs
- ----
- - test suite: fix `test_library` test to allow for running from root;
- fix `test_args` test to allow for re-running (remove junk) (tickets #268,
- #269)
- - common.h: define ZINT_IS_C89 as __STDC_VERSION__ not defined by MSVC, and use
- when checking whether to include <alloca.h> (MR #152)
- - common.c: ensure `stripf()` not inlined to prevent optimizer undoing effect
- (ticket #269)
- - GUI: fix "Border Width" ampersand shortcut
- - CODE128: allow for extended latching (double FNC4) spanning intermediate
- CodeC sequence by setting `f_state` only if in CodeA/B & checking before
- adding extended mode switch (cf OkapiBarcode commit [9ce6dcc], props Daniel
- Gredler)
- - DATAMATRIX: in FAST_MODE re-process any buffered X12 characters when mode
- changes from X12 (cf OkapiBarcode commit [fb7981e], props Daniel Gredler)
- - CODABLOCKF: allow for FNC4 when estimating no. of rows required
- - CODE16K: make sure row calculation accurate by dispensing with glyph estimate
- & using actual codeword count
- - CODE16K: ensure initial mode selection allows for extended characters
- - vector.c: add `z_alloca()` cast for `first_row_rects` (ticket #272)
- - MSVC project files: remove incorrect "CompileAsCpp" setting from libzint
- project files (ticket #272)
- - bwipp_dump.ps: fix 2/4-track processing; update to latest BWIPP
- - PDF417/MICROPDF417: use latch not ps shift for padding when spanning
- Text segments to avoid affecting 1st char of 2nd segment
- - GUI: only skip encoded/errored signal processing if active modal ExportDialog
- (wasn't clearing/setting error text bar correctly)
- - CODABAR: fix minimum height calc
- - EMF: fix indexing of handles (zero-based not 1-based)
- - GUI: fix symbology zap (previous technique of clearing and re-loading settings
- without doing a sync no longer works); fix UPCEAN guard descent enable
- Version 2.11.1 (2022-08-22)
- ===========================
- **Incompatible changes**
- ------------------------
- - None
- Changes
- -------
- - GUI: sequence export dialog: add Postfix field for filename (#252)
- - eci.c: replace libiconv-adapted code with own implementations so
- as to fully comply with libzint's BSD license
- - GUI: CODE39/EXCODE39: show/hide HIBC check digit option
- - RMQR: update to ISO/IEC 23941:2022 - R13x77 numeric cclens change 8 -> 7
- - QRCODE: use stricter interpretation of ZINT_FULL_MULTIBYTE, excluding
- certain trailing bytes
- - GUI: foreground/background colours -> text boxes and icon buttons, add swap
- button, independently movable picker (NULL parent), preview colour changes,
- preview Data Window changes, add clear data (del) buttons, add zap button
- and Factory Reset menu option, various other fixes
- - GUI: make acceptable for macOS; add iconset for macOS, install
- - manual: update macOS Homebrew install info; add README.macos
- - GUI: export window: add no. of sequences to results label
- - frontend: batch: for @ use + instead of * on Windows as * not allowed
- in filenames
- - Add new symbology BC412 (SEMI T1-95)
- - backend: use alloca() (z_alloca()) for both Unix and Windows
- - GS1: new AI 4309 with latlong checker, new currency code 925
- - GUI: add automatic info feedback to "Automatic" combo item of size/row/height
- comboboxes
- - PDF417: encodation now simpler and closer to ISO/IEC 15438:2015 Annex N
- algorithm, props Jeff Skaistis
- - Add new symbology CEPNet
- Bugs
- ----
- - frontend/test_args.c: don't use WIFEXITED(), WEXITSTATUS() on Windows
- - libzint: fix some confusing error messages introduced by segment stuff
- - GUI: remove unnecessary tabMain min size (better layout rendering on
- Windows/Fedora)
- - library: check symbol->primary for escape sequences also
- - GUI: error message GS1_MODE -> GS1 mode
- - GUI: sequence window: fix initial clear button status
- - GUI: NO_PNG: allow for Qt not parsing #if's in slots
- - frontend: batch mode: fix default "~~~~~" output (github issue #65)
- - vector: ensure separators don't overlap with other rectangles so that
- they render correctly when have RGBA alpha channel
- - GUI: update_preview() after Data Dialog return to ensure preview in sync
- - PDF417: fix invalid numeric -> byte shift transitions, MR #151, props Jeff
- Skaistis
- - PDF417: fix extraneous text latch after a byte shift, MR #151, props Jeff
- Skaistis
- Version 2.11.0 (2022-05-24)
- ===========================
- **Incompatible changes**
- ------------------------
- - Add width to struct zint_vector_circle
- NOTE: backward incompatible drawing of MaxiCode finder (bullseye)
- - Check that scale/height/whitespace/border are reasonable values
- NOTE: will return error if values outside ranges
- - raster.c: Bug fix for heap-buffer-overflow (#204 ARM-Cortex)
- NOTE: may cause single-pixel changes to height depending on height/scale used
- - JAPANPOST: return error if input data would be truncated
- NOTE: previously was silently truncated
- - PDF417: return warning if specified cols increased
- NOTE: previously no warning was returned
- - Matrix symbols: horizontal boundary bars appear outside any vertical
- whitespace
- NOTE: previously appeared inside vertical whitespace
- - ECI 29 now GB 2312 only; GB 18030 is new ECI 32
- NOTE: previously ECI 29 was GB 18030 for HANXIN, GB 2312 otherwise
- - HANXIN, QRCODE/RMQR now warn when convert to GB 18030, Shift JIS resp.
- and no ECI given
- - GRIDMATRIX no longer attempts Latin-1 conversion when no ECI given
- - CLI now returns ZINT_ERROR_INVALID_OPTION (8) on its failed option checks
- and ZINT_WARN_INVALID_OPTION (2) on ignored options
- NOTE: previously returned 1 and 0 respectively
- Changes
- -------
- - RMQR: add ECI support
- - CODE93: don't display check characters in HRT (as per standard Figure B1)
- unless option_2 = 1 or vers=1
- - GUI: separate out MAXICODE Structured Carrier Message fields
- - library.c: Check that scale/height/whitespace/border are reasonable values:
- scale (0.01-100), height (0-2000), whitespace_width/height (0-100),
- border_width (0-100)
- - CLI: allow both e.g. '-height' and '--height' (getopt_long_only())
- - UPC/EAN: add guard_descent
- - Add output_options BARCODE_QUIET_ZONES and BARCODE_NO_QUIET_ZONES
- - Allow dummy AI "[]" if GS1NOCHECK_MODE and has data (#204)
- - raster.c: improve non-half-integer interpolation performance
- - Add Structured Append support for AZTEC, CODEONE, DATAMATRIX, DOTCODE,
- GRIDMATRIX, MAXICODE, MICROPDF417, PDF417, QRCODE, ULTRA
- - ULTRA: add revision 2 support (based on BWIPP 2021-09-28 update)
- - Add compliant height
- - GUI: add Menu, copy to clipboard EMF/GIF/PNG/TIF, errtxt bar and status bar,
- icons (feathericons)
- - CODABAR: add show check digit option
- - DAFT: max chars 50 -> 100
- - CMake: separate no-optimize from ZINT_DEBUG into new ZINT_NOOPT option
- - PDF417: add specify rows option
- - Add HEIGHTPERROW_MODE input mode flag
- - DBAR_EXPSTK: add max rows option
- - CODE16K/CODE49: add min rows option
- - GUI: add CLI equivalent dialog (#163)
- - Add ZBarcode_BarcodeName()
- - GUI: data dialog: convert Line Feeds if escaping on input, escape on output
- - DATAMATRIX: new algorithm for (near-)optimal encoding, props Alex Geller
- - CLI/GUI/Tcl: add --fast option to select faster but less optimal DATAMATRIX
- algorithm (previous default)
- - Matrix symbols: change horizontal boundary bars to appear outside any
- vertical whitespace, as they're decorative rather than functional (#247)
- - FIM: Add support for FIM E
- - Updated ECIs to AIM ITS/04-023:2022 (ECI Part 3: Register)
- - HANXIN: removed alternating filler in function information
- - GRIDMATRIX/HANXIN/QRCODE/RMQR: warn if auto-conversion (i.e. no ECI given)
- occurs to resp. specialized char sets (GB 2312/GB 18030/Shift JIS)
- - Add multiple segments support for AZTEC, CODEONE, DATAMATRIX, DOTCODE,
- GRIDMATRIX, HANXIN, MAXICODE, MICROPDF417, PDF417, QRCODE, RMQR, ULTRA
- - MICROQR: check versions M1 and M2 for allowed characters so as to give better
- error messages
- - UPNQR: allow mask to be manually specified
- - GUI: use non-native QColorDialog on Unix also; no noEXE for CLI equivalent;
- add shortcuts for copy-to-clipboard and CLI equivalent
- - CLI: new --version option to print Zint version
- - manual: one true source now manual.pmd from which manual.txt is generated
- - CLI: man page moved from frontend/zint.1.gz to docs/zint.1.gz, now
- generated from docs/zint.1.pmd
- - add README.linux to root dir
- - CLI: return ZINT_ERROR_INVALID_OPTION instead of 1 on bad option and
- ZINT_WARN_INVALID_OPTION instead of 0 on ignored option
- Bugs
- ----
- - GUI/CLI: fix dev version test
- - library.c: error_tag(): check error_number < ZINT_ERROR on WARN_FAIL_ALL
- - vector.c: enforce minimum scale >= 0.1 and allow in GUI
- - Suppress some pedantic warnings, props codemonkey82 (#204)
- - gs1.c: Allow 0-length AI data if GS1NOCHECK_MODE, props codemonkey82 (#204)
- - raster.c: avoid distributive multiplication with floats to lessen chances of
- platform variation (#204 ARM-Cortex crash)
- - common/emf/output/raster/vector.c: use new stripf() func to workaround
- float variations
- - raster.c: Don't add height offset for text if scale < 1.0 (as won't print)
- - ISBNX: fix not returning error number (warning) correctly
- - *.rc: fix VER_FILEVERSION_STR format (, -> .), props Jeff Skaistis
- - PDF417: fix cols/rows calculation to require multiple <= 928 codewords
- - raster.c: fix possible blank rows appearing in CODE16K, CODE49, PHARMA_TWO,
- PDF417 & CODABLOCKF due to height/scale rounding, props codemonkey82 (#204)
- - library.c: check for stacking symbols >= 200
- - DATAMATRIX: fix mis-encoding of non-encodables in X12 and EDIFACT modes,
- props Alex Geller
- - DATAMATRIX: fix mis-encoding of FNC1/GS in EDIFACT in GS1 mode
- - Allow for dot overspill in height of vertical box sides (dotty mode)
- - HANXIN: fix gate-posts on codeword limits
- - GUI: cater for HiDPI display, props bitaround (#257)
- - RMQR: fix ECI encoding (wrong bit length for indicator)
- - CLI/tcl: fix version check (need <= 999 for DAFT permille)
- - UPNQR: fix required binary mode using mode_preset
- - GRIDMATRIX: default char set is GB 2312 only, not Latin-1 with GB 2312 alt
- - HANXIN/QRCODE: use Hanzi/Kanji modes when compatible ECIs given
- Version 2.10.0 2021-08-14
- =========================
- **Incompatible changes**
- ------------------------
- - Add halign (horizontal align) to struct zint_vector_string
- NOTE: backward incompatible text drawing for UPC/EAN
- - Change height and row_height array to floats
- NOTE: may cause changes in heights
- Changes
- -------
- - Move project history/version from manual.txt and backend/README into this file
- - Command line switches -d or -i for code data may now be at any position.
- - Add rotation for vector formats
- - Change double to float for performance in many internal places
- - Ticket 197: optimize raster scaling for 0.5 substeps;
- ignore raster scaling < 0.5 as pixels lost.
- - Ticket 197: add output option to bypass time-intensive buffer_plot()
- (OUT_BUFFER_INTERMEDIATE)
- - Reduce BMP size by using 1 bit per pixel (except Ultracode)
- - New warn_level field, WARN_FAIL_ALL
- - Add GS1NOCHECK_MODE to input_mode (note was ZPL compatibility mode
- WARN_ZPL_COMPAT to warn_level)
- - Remove version info from zint.h and put in zintconfig.h via zintconfig.h.in
- - Add ZBarcode_Cap()
- - Add GUI symbology filter, separate settings for each symbology
- - Require cmake 3.5, use PNG::PNG and add Qt6 build option
- - Make library fully stack-based so reentrant apart from file operations
- - Performance improvements (large data) for AZTEC/HANXIN/GRIDMATRIX/PDF417/QR
- - Option scmvv for MaxiCode #212; postcode needn't be space-filled
- - eci: Add support for all ECIs (Big5, Korean, UCS-2BE)
- - CLI: Handle UTF-8 args on Windows; -b <barcode name>
- - DATAMATRIX: make EOD encodation strictly ISO 16022 compliant
- - png.c: Use palette for file size savings
- - tif.c: Use palette/bilevel/LZW to reduce file size, alpha/CMYK support
- - Option gs1parens (GS1PARENS_MODE)
- - MAXICODE: Rejig raster output to more closely match ISO 16023:2000
- - C25STANDARD/C25INTER/C25IATA/C25LOGIC/C25IND: add check digit option (#216)
- - Use zint-64.svg for smoother icons, props frhun
- - Add whitespace_height to zint_symbol (vertical whitespace)
- - AZTEC: optimize populate_map (good for small data) - avoids MSVC bug also
- - Various workarounds for other MSVC bugs
- - CMake: Windows compatible, backend/tests & frontend/tests now subprojects
- using new zint_add_test.cmake file, static build, new ZINT_USE_PNG and
- ZINT_USE_QT options, getopt moved to subproject and getopt detection,
- sanitizer flag detection, and many other improvements, props Alonso Schaich
- - PLESSEY: add options NCR weighted mod-10, hide check digit(s) in HRT
- - Fuller error messages; more comments zint.h
- - CMake: simplication and modernization, Qt5/6 version, props Null Void (atom)
- - POSTNET/PLANET: allow up to 38 chars (ZINT_WARN_NONCOMPLIANT) (see [d7ac9c])
- - RMQR: update to new draft ISO/IEC JTC1/SC31N000 (Draft 2019-6-24)
- - ULTRA: update max size and min cols based on BWIPP 2021-07-14 update
- Bugs
- ----
- - Code16k selects GS1 mode by default in GUI
- - Ultracode: use white pixels instead background for white modules.
- - EMF: fix Ultracode colours.
- - Ultracode: fix count of codewords when using reader init mode
- - Databar Limited: add 5 right guard spaces (ISO/IEC 24723:2010 6.2 (e))
- - Data Matrix: avoid unnecessary latch in X12 mode at end of data, #208
- - Data Matrix: fix eod shift -> 0 pad
- - POSTNET/PLANET: remove extra 1 module space
- - Aztec: fix bit-stuffing (again!) and Aztec Rune: fix for data >= 128
- - EAN composite: allow for check digit + buffer overflow for too long add-on
- - Han Xin fix 0xFFE terminator
- - GUI: Use UTF-8 for QSettings (non-ASCII was getting garbled on restore)
- - DOTCODE: Fix best_mask -> high_score prime test
- - CODEONE: various fixes, ECI support
- - #218 Prevent buffer overflow in ean_leading_zeroes by checking max lengths
- - MAXICODE: fix mask typos for ECI 3/4 bytes
- - Fix UPCEAN small font ignored/disabled (introduced [1adba1])
- - get_best_eci: check UTF-8 before returning 26
- - MAXICODE: fix shifting from sets C/D/E to A/B (only latch available)
- - EAN14, NVE18: fix checksum calc for zero-filled input
- - png: ULTRA: allow for fgcolour if bind/box (MR #111)
- - DOTCODE: allow for max 200 cols in CLI, GUI, Tcl
- - CODEONE/DATAMATRIX/MAILMARK/PLESSEY: fix some 32-bit/portability bugs
- - CODABAR: fix CALCIUM define address use, props Alonso Schaich
- - DATAMATRIX/CODEONE: Use LCM in look ahead tests to avoid floats (#228)
- - raster/output: use new isfintf() to test floats integral (CodeQL)
- - ZBarcode_Encode: don't reinit symbol->outfile, props Alonso Schaich
- - CODEONE: is_last_single_ascii() out-of-bounds, #232 CI-Fuzz, props Jan Schrewe
- - library: compat symbology 39 fix; ISBN: "X" check
- - backend/CMakeLists.txt: output dir for zintconfig.h, props Andre Maute (#238)
- - UPCE/UPCE_CC: allow check digit (same as UPCA/UPCA_CC) so selecting composite
- doesn't give error
- - bmp/emf/ps.c: allow for foreground colour in ULTRA
- - bmp/gif/pcx.c: allow for BARCODE_STDOUT (fflush/fclose)
- - ps.c: fix buffer overflow on colour_to_pscolor() CMYK
- - composite: fix buffer overflow for large linear and small composite
- - composite: clear errtxt when bumping from CC-A -> CC-B -> CC-C
- - CODABLOCKF: prevent cols > 62; fix pTestList buffer overflow
- - RMQR: allow for righthand vertical timing pattern in populate_grid()
- Version 2.9.1 2020-08-04
- ========================
- Changes
- -------
- - Ticket 122: Implement transparency support
- - Ticket 129: -nobackground option added
- - -fg and -bg may contain an alpha channel
- - structure zint_symbol may now contain an alpha channel as output
- - Added DPD Symbology
- - Add support for Unicode escape characters
- Bugs
- ----
- - EMF text colour does not change
- - Fix QPainterPath dependency for Visual Studio
- Version 2.9.0 2020-07-31
- ========================
- Changes
- -------
- - Dotcode: adapt to AIM DOC Revision 4
- - New option "-separator=" for zint to specify the separator height of stacked
- symbologies.
- - make internal routines invisible by a static function definition.
- - CODE11: make adding check digits an option, selectable to 2 (default as now),
- 1 or none
- - LOGMARS restrict max length to 30 per MIL-STD-1189 Rev. B; make check digit
- optional
- - CODE39/EXCODE39: max length now 85
- - VIN code extended to international licence plates
- - CODABAR: 3 data characters minimum (plus start/stop), check digit option added
- - Channel Code: performance improvement
- - QT GUI:
- - GRIDMATRIX/HX/MQR/QRCODE/RMQR: allow separate selection of size/ECC
- - add DAFT and VIN Symbologies
- - Separarator option for DATAMATRIX
- - Ticket 162: parse escape sequences
- - gui element reassigments
- - UPC/EAN/ITF-14 Composite: Ticket 72: new option --addongap (default:9) to set
- the gap between code and composite.
- - TCL Backend: The following symbology names were renamed:
- - Matrix2of5 -> Standard2of5
- - PDF417Trunc -> PDF417Compact
- - RSS14Stacked -> GS1DataBarStacked
- - RSS14Stacked -> GS1DataBarStacked
- - RSS14StackedOmni -> GS1DataBarSstackedOmni
- - RSS14ExpandedStacked -> GS1DataBarExpandedStacked
- - OneCode -> USPSIntelligentMail
- - EAN128-CC -> GS1-128-CC
- - RSS14-CC -> GS1DataBarOmni-CC
- - RSSLimited-CC -> GS1DataBarLimited-CC
- - RSSExpandedStacked-CC -> GS1DataBarExpanded-CC
- - RSSEXPanded-CC -> GS1DataBarExpanded-CC
- - RSS14Stacked-CC -> GS1DataBarStacked-CC
- - RSS14Omni-CC -> GS1DataBarStackedOmni-CC
- - RSSExpandedStacked-CC -> GS1DataBarExpandedStacked-CC
- ** Potential incompatibility **
- - API Symbol names changed but old names preserved in zint.h
- - BARCODE_C25MATRIX -> BARCODE_C25STANDARD
- - BARCODE_EAB128_CC -> BARCODE_GS1_128
- - BARCODE_RSS14 -> BARCODE_DBAR_OMN
- - BARCODE_RSS_LTD -> BARCODE_DBAR_LTD
- - BARCODE_RSS_EXP -> BARCODE_DBAR_EXP
- - BARCODE_PDF417TRUNC -> BARCODE_PDF417COMP
- - BARCODE_RSS14STACK -> BARCODE_DBAR_STK
- - BARCODE_RSS14STACK_OMNI -> BARCODE_DBAR_OMNSTK
- - BARCODE_RSS_EXPSTACK -> BARCODE_DBAR_EXPSTK
- - BARCODE_ONECODE -> BARCODE_USPS_IMAIL
- - BARCODE_EAN128_CC -> BARCODE_GS1_128_CC
- - BARCODE_RSS14_CC -> BARCODE_DBAR_OMN_CC
- - BARCODE_RSS_LTD_CC -> BARCODE_DBAR_LTD_CC
- - BARCODE_RSS_EXP_CC -> BARCODE_DBAR_EXP_CC
- - BARCODE_RSS14STACK_CC -> BARCODE_DBAR_STK_CC
- - BARCODE_RSS_EXPSTACK_CC -> BARCODE_DBAR_EXPSTK_CC
- Bugs
- ----
- - Ticket 185 EMF export corrections
- - fine scaling by the use of float arithmetic
- - full header (extension1&2) with correct size field
- - Ticket 190: Aztec buffer overrun fixed
- - Ticket 191 suppress clang-tidy warnings: raster.c, composite.c, qr.c
- - Ultracode internal encoding bugs, ECI 899
- - GS1 data: exclude DEL character
- - Ticket 192: missing malloc.h include for Windows compilers.
- - Correct GS1 AI 253 & 255 length from 14 to 13
- - Codablock F changes:
- - FNC4 may not be split over rows.
- - Use Code128 routine for one line Codablock FIM
- - Correct column range to 9 ... 62
- - allow new options: row count and column count, border_width and HIBC mode
- - pad correctly empty and last row
- - separator length correction
- - Code128 changes:
- - Correctly encode CodeA charset with control-character only data
- - Improve coding of Extended ASCII (FNC4)
- - Checksum calculation overflow protection
- - EAN128 may reduce length
- - Check for incomplete escape sequences on data specification: "\" without
- following character.
- - Code16K fixes: remove extended ASCII latch, pad character
- - Restructuring to have common code centralized:
- - Code128 routines for Codablock&Code16K
- - output.c has common routines from raster.c and symbologies.
- - HIBC_39: restrict max length to 68 otherwise to avoid overrun
- - Code One: protect agains overrun
- - Telepen: allow DEL
- - GS1 Databar/ GS1-128 Composite:
- - Separator bar corrections
- - Ticket 200: spurious additional row
- - Correct names in GUI
- - Compact PDF417:
- - Add missing stop pattern.
- - Rename in GUI: "PDF417 Truncated" to "Compact PDF417".
- - PDF417: Optimize text compaction mode switch.
- - Human readable representation: Code128, Code39, Code93 special characters
- are shown by a blank.
- - ITF14: Ticket 201: allow bind option
- Version 2.8.0 2020-04-10
- ========================
- Changes
- -------
- (New) Tests for auspost, codablock, composite, dotcode, general, telepen,
- upcean, all output formats
- - QR, Han Xin, Grid Matrix: the multi byte compaction schemes (ex: Kanji)
- are used by some decoders as codepage information (Ex: GB2312) and output
- may be translated to UTF-8. This may destroy the data in a not controlable
- manner.
- In consequence, multibyte compaction schemes are disabled by default.
- The new option --fullmultibyte (option_3 = ZINT_FULL_MULTIBYTE) enables this
- optimisation.
- - Add new symbology "Ultra Code" with the ability to output colour codes.
- Bugs
- ----
- - Ticket 181 penetration test found many bugs:
- - Auspost: null bytes in content caused segfault
- - Codablock: data 0x1a..0x1f caused segfault
- - Dotcode: overrun in binary mode, overrun in codeword_array buffer
- Correct encoding of HT/FS/GS/RS when shifting to code set B
- - empty or unreadable input file
- - telepen: buffer overflow
- - EANUCC: buffer overflow on multiple + (multiple extension bars)
- - Maxicode: index overrun on numeric compaction
- - CodeOne: Simple i indexing not sp + i in C1_ASCII numeric latch loop.
- - Aztec: free memory
- - Ticket 183: Databar stacked separator correction
- - Ticket 182: Output bitmap type was char, where some targets assigned 0
- if pixel colour >127 (e.g. negative). API change to use unsigned char.
- - HanXin: wrong codepage, gb2312 instead gb18030.
- - PDF417: corrected alloced sizes to max characters
- - Ticket 189: FNC1 encodation fixed (FLG(0) missing after FLG(n))
- - PCX format: added missing bytes_per_line if bitmap width is odd.
- Version 2.7.1 2020-02-01
- ========================
- Changes
- -------
- - QR encoding optimized to get smaller code matrix results
- - PDF417: remove obsolete codeword number option in qzint.
- Option removed in qtzint.
- - Removed annex B (3 digit country codes) and annex C (GS1 General
- Specification) from the manual. This material may be found elsewhere.
- - MAC homebrew remark added to the documentation
- - Correct cmake file to match BSD-3-clause licence
- Bugs
- ----
- - Correct uninitialized warning in gridmatrix.call
- - do not export internal functions
- - raster painting of UPC-A bound check
- - pdf417 documentation corrected: change flag -security to -secure
- - Dot Code encoding ECI number corrected
- - Corrected postscript plotting error
- - Datamatrix: corrected possible buffer overrun in 3 characters to 2 byte
- encodings.
- - In 2.7.0 removed interface "ZBarcode_Render" still declared
- - vc6 make was missing (trivial) resource.h
- Version 2.7.0 2019-12-05
- ========================
- Changes
- -------
- - Automatic height option added to qzint
- - DotCode in line with new specification
- - New GS1 AIs 7240, 235, 417, 7040, 8026, updated checks for 7007, 8008
- - New Symbology rMQR
- - QR and Qridmatrix optimisation for GB2312
- - removed depreciated interface for gLabels program. Please use current
- interface.
- Fixed bugs
- ----------
- - Many improvements in composite codes
- - SVG output corrected for messages containing "<" and "&".
- - GS1-128 and RSS may only be used with GS1 contents
- - Han Xin chinese character handling
- Version 2.6.7 2019-10-07
- ========================
- Changes
- -------
- Ticket 127: Allow to code ECI 3 if explicitly given for debug purposes.
- **Incompatible change**
- "--eci 3" now leads to included ECI information.
- "--eci 0" may now be used to not include any ECI information.
- The default of the parameter changed from 3 to 0.
- Fixed bugs
- ----------
- Ticket 146, 165: fix wrong encoding of RSS composite codes
- Version 2.6.6 2019-09-18
- ========================
- Fixed bugs
- ----------
- Ticket 161: PDF row size may be set
- Ticket 155: PDF numeric compaction
- Ticket 164: crash due to call of svg_plot withnull vector
- Ticket 119: Crash on bullseye raster drawing
- qtzint: Micro-QR version option choice corrected (+1 missing).
- Datamatrix: code corruption when ECI was encoded and base256 encoding was
- automatically chosen.
- Version 2.6.5 2019-09-02
- ========================
- Fixed bugs
- ----------
- backend/main.c was missing
- Maxicode bullseye rastering for scale = 0.5
- Crash in utf to eci.
- eci ISO 8859-16 table missing data line
- upce check for 7 digit input (causes crash) and BARCODE_UPCE_CHK -> BARCODE_UPCE
- mapping removed
- US imail check for invalid barcode identifier and allow 0/5/9/11 length zip
- maxicode code set correction
- cmake flags for debugging and sanitize options
- unit tests for the changes, with a simple test suite based on qrencode/tests
- Version 2.6.4 2019-08-30
- ========================
- Fixed bugs: EMF output, maxicode plot/content
- Datamatrix DMRE updated to the ISO/IEC29158 version. This is incompatible in the
- way that the old -vers numbers for DMRE are re-assigned.
- The separator of GS1-datamatrix may be switched from FNC1 to GS.
- GS1 field length check AI 8009 and 7230 to 7239 currected.
- Version 2.6.3 2018-02-15
- ========================
- New symbology Royal Mail 4-state Mailmark. Added North America VIN verification.
- Bugfixes for TIF and EMF output and escape character handling.
- Version 2.6.2 2017-10-22
- ========================
- Further bugfixes in Aztec and DotCode. Expand escape sequence support
- to API and GUI. Handle UTF BOM. Bugfix raster images of Maxicode.
- Version 2.6.1 2017-08-27
- ========================
- Library bugfixes: EDIFACT unlatch in Data Matrix, Add UPNQR, Improved Aztec
- data compression, Detect Code 128 data too long, Make error codes consistent.
- GUI improvements: Additional clipboard options, remove border width bug,
- remove changing background colour bug, remember more settings and make GUI
- more consistent with user expectations. All windows now resizable and more
- information given when batch processing.
- Version 2.6.0 2017-05-12
- ========================
- Update front end to Qt5. Output to EMF and TIF. Copy to clipboard. Update
- to latest draft of DMRE. Usual bugfixes.
- Version 2.5.1 2017-04-03
- ========================
- Numerous bugfixes, especially with Data Matrix thanks to extensive testing
- by brunt@SF
- Version 2.5 2016-11-13
- ======================
- Support for DotCode and Han Xin code. ECI code processing. Output to BMP, GIF
- and PCX. Added bold and small text options. Reintroduction of Codablock-F.
- Many minor fixes and improvements.
- Version 2.4.3 2011-05-16
- ========================
- Includes minor bugfixes
- Version 2.4.1 2011-04-19 & 2.4.2 2011-05-04
- ===========================================
- A whole host of bugfixes including correction of ECC routines
- for Code-1 and addition of batch processing at the command line.
- Version 2.4 2010-09-13
- ======================
- Built extensions to the API for integrating with glabels with thanks to
- Sam Lown and Jim Evins. Added code optimisation and input from stdin thanks to
- Ismael Luceno. Reinstated escape character input. Simplification of Barcode
- Studio.
- Version 2.3.2 2010-05-29
- ========================
- Corrected many bugs in GS1 DataBar Extended thanks to the careful
- study of the code by Pablo Orduña at the PIRAmIDE project. Similarly corrected
- some bugs in Maxicode thanks to Monica Swanson at Source Technologies. Also
- minor bugfixes for ISBN and Aztec Code, and added some small features like a
- --square option in the CLI.
- Version 2.3.1 2010-04-07
- ========================
- Removed Codablock-F. Redesigned scale function so that human readable
- text and Maxicode symbols can be scaled consistently. Corrected encoding bugs
- with Code 128/Code 16k and Data Matrix ECC200 ECC 050. Added --notext option to
- CLI.
- Version 2.3 2009-11-23
- ======================
- Fixed problems with Micro QR Code and rebuilt QR Code support removing
- dependence on libqrencode. Improved Kanji character support for QR Code and
- Micro QR Code which now auto-detects and automatically converts to Shift-JIS.
- Added Grid Matrix symbology with Kanji character support and automatic
- conversion to GB 2312. Removed no_qr compile option. Advanced Barcode Studio
- version number to match library version number.
- Version 2.2.2 2009-09-29
- ========================
- A beta release previewing the new API structure. Better NULL character
- support with "nullchar" value removed. Added loading from file and sequence
- dialogs in Barcode Studio.
- Version 2.2.1 2009-08-06
- ========================
- Data encoding bugfixes for Aztec Code, Data Matrix ECC200, USPS One
- Code and PDF417. Symbol plotting bugfixes for MicroPDF417 and 2D components of
- composite symbols. Text formatting bugfix for Qt renderer and a couple of
- compiler fixes for MSVC PNG image output.
- Version 2.2 2009-07-18
- ======================
- Added Code One and GS1 support in Code 49. Changed GUI binary name to
- zint-qt and brought GUI up to version 1.0. Made some minor bugfixes to Code 39,
- ITF-14, Aztec Code, Code 128 and Code 16K. Added 'rest' button to GUI. Included
- .spec file from Radist.
- Version 2.1.4 2009-06-19
- ========================
- Many stability improvements including removal of buffer overruns in
- Code 39, LOGMARS, PZN, Aztec Code and Composite CC-A. Addition of files for
- compiling on MS Windows platform - tested successfully on XP and Vista.
- Version 2.1.3 2009-05-19
- ========================
- Many improvements to the QZint GUI which is now renamed "Zint Barcode
- Studio 0.2". Added Japanese Postal Barcode, Code 49 and Channel Code and made
- corrections to Data Matrix ECC200 (Binary mode data compression terminates too
- soon), Aztec Code (Bug when automatically resizing after removing "all 0" and
- "all 1" codewords) and Code 128 (Extended ASCII characters become corrupt).
- Version 2.1.2 2009-03-01
- ========================
- Added SVG output option. Improved Japanese character support including
- Unicode > Shift-JIS capability. Bugfixes for Data Matrix ECC200 (missing
- characters at end of string) and Codablock-F (K1/K2 check digit and row
- indicators above row 6).
- Version 2.1.1 2009-02-10
- ========================
- Minor Data Matrix ECC200 bugfix and added HIBC options.
- Version 2.1 2009-01-31
- ======================
- 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 ECC200, added NULL character handling for Codablock-F, Code 128,
- Code 16k, Extended Code 39, Code 93, Telepen, Maxicode, Data Matrix ECC200 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 ECC200
- ECC 200 encoding algorithms to support NULL encoding and GS1 data encoding.
- Version 2.0 2008-11-18
- ======================
- Made corrections to Aztec Code and tested output with bcTester. Added
- Aztec Runes, Micro QR Code and Data Matrix ECC200 ECC 000-140. Updated e-mail
- information.
- Version 2.0 beta r2 2008-10-19
- ==============================
- Many corrections and bugfixes. (Code 11, Code 128, EAN-128,
- Aztec Code, Codablock-F, Code 16k, POSTNET, PLANET, NVE-18, PZN, Data Matrix
- ECC200, Maxicode and QR Code)
- Version 2.0 beta 2008-09-29
- ===========================
- Added support for Aztec Code, Codablock-F, Code 32, EAN-14 and DAFT
- Code. Rearranged symbology numbers to match Tbarcode v8. Corrected a never
- ending loop bug in EAN-128.
- Version 1.6.2 2008-07-28
- ========================
- Added KIX Code support and PNG image rotation. Corrected a bug
- affecting extended ASCII support in Code 128 and Code 16k.
- Version 1.6.1 2008-07-08
- ========================
- 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.
- Version 1.6 2008-04-22
- ======================
- Data Matrix ECC200, 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.
- Version 1.5.5 2008-03-09
- ========================
- Added composite symbology support. Corrected errors with GS1-128 and
- PDF417/MicroPDF417 byte processing. Transferred licence to GPL version 3.
- Version 1.5.4 2007-11-26
- ========================
- Added GS1 DataBar (Reduced Space Symbology) support.
- Version 1.5.3 2007-10-10
- ========================
- 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.
- Version 1.5.2 2007-09-26
- ========================
- Added extended ASCII support to Code 16k. Corrected Code 128 error.
- Added Maxicode support by integrating code by John Lien.
- Version 1.5.1 2007-09-03
- ========================
- 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.
- Version 1.5 2007-08-12
- ======================
- 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.
- Version 1.4 2007-06-20
- ======================
- 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.
- Version 1.3 2007-06-13
- ======================
- Supports USPS OneCode and LOGMARS. Brought all usage information into
- one User Manual document.
- Version 1.2 2007-05-28
- ======================
- Supports Data Matrix ECC200 (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.
- Version 1.1 2007-04-26
- ======================
- 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.
- Version 1.0 2007-04-20
- ======================
- 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.
- Version 0.6 2007-04-01
- ======================
- 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.
- Version 0.5 2007-02-28
- ======================
- Added Australia Post 4-State Barcodes and Pharmacode (1 and 2 track).
- 4-state codes now draw with correct height/width ratio.
- Version 0.4 2007-01-15
- ======================
- Added barcode stacking (now stacks up to 16 barcodes) and Code16k (stub).
- Version 0.3 2006-12-30
- ======================
- 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.
- Version 0.2 2006-12-12
- ======================
- 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.
- Version 0.1 (as Zebar) 2006-11-13
- =================================
- 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.
- # vim: syntax=off :
|