1
0
mirror of https://git.code.sf.net/p/zint/code synced 2026-05-09 15:43:47 +00:00

AZTEC: add manual FNC1 support:

improve P/S vs P/L choice when have ECI;
  add ZINT_DEBUG_TEST dump
AUSPOST: allow variable length data input
DATAMATRIX: do `EXTRA_ESCAPE_MODE` processing up front & check have
  non-zero length afterwards;
  disallow `READER_INIT` and `EXTRA_ESCAPE_MODE`;
general: add new `z_zero_fill()` func & use;
  add new `z_extra_escape_position_fnc1()` helper;
  in `z_ct_set_seg_extra_escapes_eci` check position FNC1 whether
  or not have ECI
library: escape_char_process: note escaped backslash followed by
  caret by passes `EXTRA_ESCAPE_MODE` check
test suite: BWIPP: update to latest; support AUSPOST variants;
  process `EXTRA_ESCAPE_MODE` escaping up front
This commit is contained in:
gitlost
2026-04-27 01:02:25 +01:00
parent b40393723f
commit 0a3ffc1dc2
31 changed files with 1968 additions and 905 deletions

View File

@@ -603,14 +603,16 @@ the sequence backslash caret ("`\^`"):
Extra Escape Interpretation Available for Symbology
Sequence
----------------- ------------------------------ -----------------------
`\^1` Insert `FNC1` character Code128, Data Matrix
`\^1` Insert `FNC1` character Aztec Code, Code 128,
Data Matrix
`\^^` Literal `\^` Code128, Data Matrix
`\^^` Literal `\^` Aztec Code, Code 128,
Data Matrix
`\^A`, `\^B`, `\^C` Select Code Set A, B or C Code128 only
`\^A`, `\^B`, `\^C` Select Code Set A, B or C Code 128 only
respectively
`\^@` Exit manual Code Set selection Code128 only
`\^@` Exit manual Code Set selection Code 128 only
and resume automatic Code Set
selection
---------------------------------------------------------------------------
@@ -2552,7 +2554,7 @@ Value Effect
`MICROPDF417`, `PDF417`, `QRCODE` and `UPNQR` only).
`EXTRA_ESCAPE_MODE` Process special symbology-specific escape sequences
(`CODE128` and `DATAMATRIX` only).
(`AZTEC`, `CODE128` and `DATAMATRIX` only).
`GS1SYNTAXENGINE_MODE` Use the GS1 Syntax Engine (if available) to strictly
validate GS1 input.
@@ -3007,7 +3009,8 @@ Standard Code 2 of 5].
#### 6.1.2.5 Code 2 of 5 Data Logic
Data Logic can encode numeric input (digits 0-9) up to a maximum of 113 digits.
Data Logic, also known as China Post or Hong Kong 2 of 5, can encode numeric
input (digits 0-9) up to a maximum of 113 digits.
![`zint -b C25LOGIC -d "9212320967"`](images/c25logic.svg){.lin}
@@ -4056,7 +4059,7 @@ pharmaceuticals. The symbology is able to encode whole numbers between 4 and
### 6.4.2 POSTNET
Used by the United States Postal Service until 2009, the POSTNET barcode was
used for encoding zip-codes on mail items. POSTNET uses numerical input data and
used for encoding ZIP codes on mail items. POSTNET uses numerical input data and
includes a modulo-10 check digit. While Zint will encode POSTNET symbols of up
to 38 digits in length, standard lengths as used by USPS were `PostNet6`
(5-digit ZIP input), `PostNet10` (5-digit ZIP + 4-digit user data) and
@@ -4141,28 +4144,28 @@ on mail items.
Valid data characters are 0-9, A-Z, a-z, space and hash (#). A Format Control
Code (FCC) is added by Zint and should not be included in the input data.
Reed-Solomon error correction data is generated by Zint. Encoding behaviour is
determined by the length of the input data according to the formula shown in the
following table. The first 8 digits is the DPID.
determined by the length and type of the input data as shown in the following
table, where `C` means any valid character.
-------------------------------------------------------------
Input Required Input Format Symbol FCC Encoding
Length Length Table(s)
------ ------------------------- ------ --- --------
8 `99999999` 37-bar 11 N
Input DPID Customer Data Symbol FCC Encoding
Length (required) (optional) Length Table(s)
------ ------------- -------------- ------- --- --------
1-8 1 to 8 digits None 37 bars 11 N
13 `99999999AAAAA` 52-bar 59 N and C
9-13 8 digits 1 to 5 `C` 52 bars 59 N and C
16 `9999999999999999` 52-bar 59 N
9-16 8 digits 1 to 8 digits 52 bars 59 N
18 `99999999AAAAAAAAAA` 67-bar 62 N and C
9-18 8 digits 1 to 10 `C` 67 bars 62 N and C
23 `99999999999999999999999` 67-bar 62 N
9-23 8 digits 1 to 15 digits 67 bars 62 N
-------------------------------------------------------------
Table: Australia Post Input Formats {#tbl:auspost_input_formats}
The special Null FCC 00, non-machine readable and intended for customer use
only, is used (all input lengths) if the DPID is all zeroes.
The special Null FCC 00, intended for customer use only, is used (all input
lengths) if the DPID is all zeroes.
#### 6.5.1.2 Reply Paid Barcode
@@ -4256,9 +4259,9 @@ PLANET symbologies in 2009.
![`zint -b USPS_IMAIL --compliantheight -d
"01234567094987654321-01234"`](images/usps_imail.svg){.trk}
Intelligent Mail is a fixed length (65-bar) symbol which combines routing and
Intelligent Mail is a fixed length 65-bar symbol which combines routing and
customer information in a single symbol. Input data consists of a 20-digit
tracking code, followed by a dash (`-`), followed by a delivery point zip-code
tracking code, followed by a dash (`-`), followed by a delivery point ZIP code
which can be 0, 5, 9 or 11 digits in length. For example all of the following
inputs are valid data entries:
@@ -4887,6 +4890,11 @@ approximately 3823 numeric or 3067 alphabetic characters or 1914 bytes of data.
A separate symbology ID (`BARCODE_HIBC_AZTEC`) can be used to encode Health
Industry Barcode (HIBC) data.
Manual insertion of `FNC1` is possible using the `--extraesc` option (API
`input_mode |= EXTRA_ESCAPE_MODE`), which apart from processing normal escape
sequences also processes the extra escape sequences given in
[#tbl:extra_escapes] - see [6.6.1 Data Matrix (ISO 16022)] for details.
For a faster but less optimal encodation, the `--fast` option (API `input_mode
|= FAST_MODE`) may be used.
@@ -5164,8 +5172,8 @@ Code Letter Usage
----------- --------------------------------------------------------------
A Used for courtesy reply mail and metered reply mail with a
pre-printed POSTNET symbol.
B Used for business reply mail without a pre-printed zip code.
C Used for business reply mail with a pre-printed zip code.
B Used for business reply mail without a pre-printed ZIP code.
C Used for business reply mail with a pre-printed ZIP code.
D Used for Information Based Indicia (IBI) postage.
E Used for customized mail with a USPS Intelligent Mail barcode.