1
0
mirror of https://git.code.sf.net/p/zint/code synced 2026-05-12 09:03:59 +00:00

DATAMATRIX: add manual FNC1 support

CODE128: error on unrecognized extra escape sequences instead of
  just passing them thru;
  fix possible shifting before manual FNC1 in 2nd position
  after single alpha (otherwise won't be recognized as AIM)
  fix not removing manual FNC1 in 1st/2nd position from content
  segs (as implied by symbology identifier)
CLI: warn if both "--dmre" and "--square" given (as "--square"
  overwrites "--dmre")
common: new routines `z_isalpha()`, `z_extra_escapes()` and
  `z_ct_set_seg_extra_escapes_eci()`
library: new helper `supports_extra_escape_mode()`;
  fix some error_number dups
BWIPP: update to latest, and allow for removal of DBAR_LTD_CC RHS
  quiet zones & extra row when have add-on in EAN/UPC composites
test suite: fix BWIPP escaping
manual/man/tcl: update for DATAMATRIX manual FNC1 support
Windows: resource scripts: make more consistent (libzint, CLI, GUI)
win32/README: update with MSVC 2026
This commit is contained in:
gitlost
2026-04-18 22:55:52 +01:00
parent f9a493522f
commit 7b076717f2
30 changed files with 1650 additions and 869 deletions

View File

@@ -98,6 +98,32 @@ ret /pixs known {
pixs 0 tmppixs 0 j getinterval putinterval
} if
b (databarlimitedcomposite) eq {
% Add RHS 5-space quiet zone
/cpypixs pixs length array def
cpypixs 0 pixs 0 pixs length getinterval putinterval
/pixw pixs length pixx idiv def
/pixs [
0 pixx cpypixs length 1 sub {
/i exch def
cpypixs i pixx getinterval aload pop 0 0 0 0 0
} for
] def
/pixx pixx 5 add def
} if
b (ean13composite) eq b (ean8composite) eq or b (upcacomposite) eq or b (upcecomposite) eq or {
d (|) search {
/linear exch def
pop pop
linear ( ) search { % Have add-on?
pop pop pop
% Remove last row from pixs array which just contains add-on overhang
/pixs [ pixs 0 pixs length pixx sub getinterval aload pop ] def
} { pop } ifelse
} { pop } ifelse
} if
/xs systemdict /xs known { systemdict /xs get cvi } { 0 } ifelse def
/xe systemdict /xe known { systemdict /xe get cvi } { 0 } ifelse def