- Add new symbology BARCODE_MAILMARK_2D (Royal Mail 2D Mailmark),

renaming previous BARCODE_MAILMARK (Royal Mail 4-State Mailmark)
  to BARCODE_MAILMARK_4S
- backend_tcl: update TEA
This commit is contained in:
gitlost 2022-12-08 13:48:31 +00:00
parent 1daa1ab0ab
commit 25dacb2949
38 changed files with 3769 additions and 3621 deletions

View file

@ -724,7 +724,9 @@ Value
116 `BARCODE_HANXIN` Han Xin (Chinese Sensible) Code
121 `BARCODE_MAILMARK` Royal Mail 4-State Mailmark
119 `BARCODE_MAILMARK_2D` Royal Mail 2D Mailmark (CMDM) (Data Matrix)
121 `BARCODE_MAILMARK_4S` Royal Mail 4-State Mailmark
128 `BARCODE_AZRUNE` Aztec Runes
@ -3397,8 +3399,8 @@ generated by Zint.
### 6.5.4 Royal Mail 4-State Mailmark
![`zint -b MAILMARK --compliantheight -d
"1100000000000XY11"`](images/mailmark.svg)
![`zint -b MAILMARK_4S --compliantheight -d
"1100000000000XY11"`](images/mailmark_4s.svg)
Developed in 2014 as a replacement for RM4SCC this 4-state symbol includes
Reed Solomon error correction. Input is a pre-formatted alphanumeric string of
@ -3411,7 +3413,8 @@ Format Version ID Class Supply Chain ID Item ID Destination+DPS
1 digit 1 digit 1 alphanum. 2 digits (C) or 8 digits 9 alphanumerics
(0-4) (0-3) (0-9A-E) 6 digits (L) (1 of 6 patterns)
Table: {#tbl:mailmark_input_fields tag=": Royal Mail Mailmark Input Fields"}
Table: {#tbl:mailmark_4s_input_fields
tag=": Royal Mail 4-State Mailmark Input Fields"}
The 6 Destination+DPS (Destination Post Code plus Delivery Point Suffix)
patterns are `'FNFNLLNLS'`, `'FFNNLLNLS'`, `'FFNNNLLNL'`, `'FFNFNLLNL'`,
@ -3422,6 +3425,9 @@ patterns are `'FNFNLLNLS'`, `'FFNNLLNLS'`, `'FFNNNLLNL'`, `'FFNFNLLNL'`,
Four of the permitted patterns include a number of trailing space characters -
these will be appended by Zint if not included in the input data.
For the two-dimensional Data Matrix-based version, see [6.6.2 Royal Mail 2D
Mailmark (CMDM) (Data Matrix)].
### 6.5.5 USPS Intelligent Mail
![`zint -b USPS_IMAIL --compliantheight -d
@ -3493,18 +3499,18 @@ below. A separate symbology ID (`BARCODE_HIBC_DM`) can be used to encode Health
Industry Barcode (HIBC) data. Note that only ECC200 encoding is supported, the
older standards have now been removed from Zint.
Input Symbol Size Input Symbol Size Input Symbol Size
----- ----------- -- ----- ----------- -- ----- -----------
1 10 x 10 11 36 x 36 21 104 x 104
2 12 x 12 12 40 x 40 22 120 x 120
3 14 x 14 13 44 x 44 23 132 x 132
4 16 x 16 14 48 x 48 24 144 x 144
5 18 x 18 15 52 x 52 25 8 x 18
6 20 x 20 16 64 x 64 26 8 x 32
7 22 x 22 17 72 x 72 28 12 x 26
8 24 x 24 18 80 x 80 28 12 x 36
9 26 x 26 19 88 x 88 29 16 x 36
10 32 x 32 20 96 x 96 30 16 x 48
Input Symbol Size Input Symbol Size Input Symbol Size
----- ----------- -- ----- ----------- -- ----- -----------
1 10 x 10 11 36 x 36 21 104 x 104
2 12 x 12 12 40 x 40 22 120 x 120
3 14 x 14 13 44 x 44 23 132 x 132
4 16 x 16 14 48 x 48 24 144 x 144
5 18 x 18 15 52 x 52 25 8 x 18
6 20 x 20 16 64 x 64 26 8 x 32
7 22 x 22 17 72 x 72 28 12 x 26
8 24 x 24 18 80 x 80 28 12 x 36
9 26 x 26 19 88 x 88 29 16 x 36
10 32 x 32 20 96 x 96 30 16 x 48
Table: {#tbl:datamatrix_sizes tag=": Data Matrix Sizes"}
@ -3515,17 +3521,17 @@ When using automatic symbol sizes you can force Zint to use square symbols
Data Matrix Rectangular Extension (ISO/IEC 21471) codes may be generated with
the following values as before:
Input Symbol Size Input Symbol Size
----- ----------- -- ----- -----------
31 8 x 48 40 20 x 36
32 8 x 64 41 20 x 44
33 8 x 80 42 20 x 64
34 8 x 96 43 22 x 48
35 8 x 120 44 24 x 48
36 8 x 144 45 24 x 64
37 12 x 64 46 26 x 40
38 12 x 88 47 26 x 48
39 16 x 64 48 26 x 64
Input Symbol Size Input Symbol Size
----- ----------- -- ----- -----------
31 8 x 48 40 20 x 36
32 8 x 64 41 20 x 44
33 8 x 80 42 20 x 64
34 8 x 96 43 22 x 48
35 8 x 120 44 24 x 48
36 8 x 144 45 24 x 64
37 12 x 64 46 26 x 40
38 12 x 88 47 26 x 48
39 16 x 64 48 26 x 64
Table: {#tbl:dmre_sizes tag=": DMRE Sizes"}
@ -3547,7 +3553,60 @@ be given as `"123234"`. Note that both `ID1` and `ID2` must be non-zero, so e.g.
`"123000"` or `"000123"` would be invalid IDs. If an ID is not given it defaults
to `"001001"`.
### 6.6.2 QR Code (ISO 18004)
### 6.6.2 Royal Mail 2D Mailmark (CMDM) (Data Matrix)
![`zint -b MAILMARK_2D -d
"JGB 01Z999999900000001EC1A1AA1A0SN35TQ" --vers=30`](images/mailmark_2d.svg)
This variant of Data Matrix, also known as "Complex Mail Data Mark" (CMDM), was
introduced by Royal Mail along with [6.5.4 Royal Mail 4-State Mailmark], and
offers space for customer data following the initial pre-formatted 45 character
section, an expanded version of the 4-state one, as summarized below.
Field Name Length Values
---------------- ----------- ------------------------------
UPU Country ID 4 `"JGB "`
Information Type 1 Alphanumeric
Version ID 1 `"1"`
Class 1 Alphanumeric
Supply Chain ID 7 Numeric
Item ID 8 Numeric
Destination+DPS 9 Alphanumeric (1 of 6 patterns)
Service Type 1 Numeric
RTS Post Code 7 Alphanumeric (1 of 6 patterns)
Reserved 6 Spaces
Customer Data 6, 45 or 29 Anything (Latin-1 plus ASCII)
Table: {#tbl:mailmark_2d_input_fields
tag=": Royal Mail 2D Mailmark Input Fields"}
The 6 Destination+DPS (Destination Post Code plus Delivery Point Suffix)
patterns are the same as for the 4-state. The 6 RTS (Return to Sender) Post Code
patterns are the same also except without the additional DPS `'NL'`, i.e.
`'FNFNLLS'`, `'FFNNLLS'`, `'FFNNNLL'`, `'FFNFNLL'`, `'FNNLLSS'` and `'FNNNLLS'`.
Three sizes are defined, one rectangular, with varying maximum amounts of
optional customer data:
Name Size Customer Data Zint Version
------- ------- ------------- ------------
Type 7 24 x 24 6 characters 8
Type 9 32 x 32 45 characters 10
Type 29 16 x 48 29 characters 30
Table: {#tbl:mailmark_2d_sizes tag=": Royal Mail 2D Mailmark Sizes"}
Zint will automatically select a size based on the amount of customer data, or
it can be specified using the `--vers` option (API `option_2`), which takes the
Zint version number (one more than the Royal Mail Type number). Zint will prefix
the input data with `"JGB "` if it's missing, and also space-pad the input to 45
characters when there is no customer data. As with Data Matrix, the rectangular
symbol Type 29 can be excluded from automatic size selection by using the option
`--square` (API `option_3 = DM_SQUARE`).
GS1 data, the ECI mechanism, and Structured Append are not supported.
### 6.6.3 QR Code (ISO 18004)
![`zint -b QRCODE -d "QR Code Symbol" --mask=5`](images/qrcode.svg)
@ -3620,7 +3679,7 @@ Structured Append]) (API `structapp`). The parity ID ranges from 0 (default) to
together each byte of the complete data forming the sequence. Currently this
calculation must be done outside of Zint.
### 6.6.3 Micro QR Code (ISO 18004)
### 6.6.4 Micro QR Code (ISO 18004)
![`zint -b MICROQR -d "01234567"`](images/microqr.svg)
@ -3676,7 +3735,7 @@ specified by using the `--mask` switch with values 0-3, or in the API by setting
option_3 = ZINT_FULL_MULTIBYTE | (N + 1) << 8
```
### 6.6.4 Rectangular Micro QR Code (rMQR) (ISO 23941)
### 6.6.5 Rectangular Micro QR Code (rMQR) (ISO 23941)
![`zint -b RMQR -d "0123456"`](images/rmqr.svg)
@ -3726,7 +3785,7 @@ For barcode readers that support it, non-ASCII data density may be maximized by
using the `--fullmultibyte` switch or in the API by setting
`option_3 = ZINT_FULL_MULTIBYTE`.
### 6.6.5 UPNQR (Univerzalnega Plačilnega Naloga QR)
### 6.6.6 UPNQR (Univerzalnega Plačilnega Naloga QR)
![`zint -b UPNQR -i upn_utf8.txt --quietzones`](images/upnqr.svg)
@ -3745,7 +3804,7 @@ zint -o upnqr.png -b 143 --scale=3 --binary -i upn.txt
A mask may be manually specified or the `--fast` option used as with QRCODE.
### 6.6.6 MaxiCode (ISO 16023)
### 6.6.7 MaxiCode (ISO 16023)
![`zint -b MAXICODE -d "1Z00004951\GUPSN\G06X610\G159\G1234567\G1/1\G\GY\G1 MAIN
ST\GNY\GNY\R\E" --esc --primary="152382802000000"
@ -3845,7 +3904,7 @@ MaxiCode uses a different scaling than other symbols for raster output, see
[4.9.3 MaxiCode Raster Scaling], and also for EMF vector output, when the scale
is multiplied by 20 instead of 2.
### 6.6.7 Aztec Code (ISO 24778)
### 6.6.8 Aztec Code (ISO 24778)
![`zint -b AZTEC -d "123456789012"`](images/aztec.svg)
@ -3909,7 +3968,7 @@ alphanumeric ID of up to 32 characters, which can be set by using the
`--structapp` option (see [4.16 Structured Append]) (API `structapp`). The ID
cannot contain spaces. If an ID is not given, no ID is encoded.
### 6.6.8 Aztec Runes (ISO 24778)
### 6.6.9 Aztec Runes (ISO 24778)
![`zint -b AZRUNE -d "125"`](images/azrune.svg)
@ -3917,7 +3976,7 @@ A truncated version of compact Aztec Code for encoding whole integers between 0
and 255, as defined in ISO/IEC 24778 Annex A. Includes Reed-Solomon error
correction. It does not support Structured Append.
### 6.6.9 Code One
### 6.6.10 Code One
![`zint -b CODEONE -d "1234567890123456789012"`](images/codeone.svg)
@ -3963,7 +4022,7 @@ using the `--structapp` option (see [4.16 Structured Append]) (API `structapp`).
It does not support specifying an ID. Structured Append is not supported with
GS1 data nor for Version S symbols.
### 6.6.10 Grid Matrix
### 6.6.11 Grid Matrix
![`zint -b GRIDMATRIX --eci=29 -d "AAT2556 电池充电器+降压转换器
200mA至2A tel:86 019 82512738"`](images/gridmatrix.svg)
@ -4010,7 +4069,7 @@ Grid Matrix supports Structured Append of up to 16 symbols and a numeric ID
(file signature), which can be set by using the `--structapp` option (see [4.16
Structured Append]) (API `structapp`). The ID ranges from 0 (default) to 255.
### 6.6.11 DotCode
### 6.6.12 DotCode
![`zint -b DOTCODE -d "[01]00012345678905[17]201231[10]ABC123456"
--gs1`](images/dotcode.svg)
@ -4035,7 +4094,7 @@ DotCode supports Structured Append of up to 35 symbols, which can be set by
using the `--structapp` option (see [4.16 Structured Append]) (API `structapp`).
It does not support specifying an ID.
### 6.6.12 Han Xin Code (ISO 20830)
### 6.6.13 Han Xin Code (ISO 20830)
![`zint -b HANXIN -d "Hanxin Code symbol"`](images/hanxin.svg)
@ -4106,7 +4165,7 @@ by using the `--mask` switch with values 0-3, or in the API by setting
option_3 = ZINT_FULL_MULTIBYTE | (N + 1) << 8
```
### 6.6.13 Ultracode
### 6.6.14 Ultracode
![`zint -b ULTRA -d "HEIMASÍÐA KENNARAHÁSKÓLA ÍSLANDS"`](images/ultra.svg)