CODE128: Add minimal encodation algorithm (non-extended ASCII only)

from ZXing (props Alex Geller) - about 25-60% slower depending on
  data & stack heavy but does improve some outcomes when FNC1s
  present (GS1_MODE or manual) although not much else it appears
  (the previous algorithm was very good), but has a logical clarity
  the other lacked - funcs `c128_dxsmooth()` etc shared with
  CODE16K now moved there and renamed as `c16k_`;
  also fix extended char latching when exactly 4 extended chars
  at end
  also manual code set switching now honoured exactly even if
  immediate shift required;
manual: make explicit that AI "(00)" and "(01)" prefixes added by
  Zint are HRT-only
general: add `extern "C"` wrappers to a few header files
This commit is contained in:
gitlost 2024-09-07 12:44:16 +01:00
parent 10747d6385
commit 93c3e27fba
23 changed files with 1017 additions and 958 deletions

View file

@ -80,7 +80,7 @@ The width of the boundary bar is specified by the \f[CR]\-\-border\f[R]
option.
.TP
\f[CR]\-\-bold\f[R]
Use bold text for the Human Readable Text (HRT).
Use a bold font for the Human Readable Text (HRT).
.TP
\f[CR]\-\-border=INTEGER\f[R]
Set the width of boundary bars (\f[CR]\-\-bind\f[R] or
@ -420,7 +420,7 @@ Set the height of row separator bars for stacked symbologies, where
The default is zero.
.TP
\f[CR]\-\-small\f[R]
Use small text for Human Readable Text (HRT).
Use a smaller font for Human Readable Text (HRT).
.TP
\f[CR]\-\-square\f[R]
For Data Matrix symbols, exclude rectangular sizes when considering
@ -729,7 +729,7 @@ ISO/IEC 16390:2007, ISO/IEC 16023:2000, ISO/IEC 24728:2006, ISO/IEC
15438:2015, ISO/IEC 18004:2015, ISO/IEC 23941:2022, AIM ITS/04\-023
(2022)
.SH COPYRIGHT
Copyright © 2023 Robin Stuart.
Copyright © 2024 Robin Stuart.
Released under GNU GPL 3.0 or later.
.SH AUTHOR
Robin Stuart \c