mirror of
https://git.code.sf.net/p/zint/code
synced 2026-05-14 18:13:53 +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:
229
docs/manual.txt
229
docs/manual.txt
@@ -1,6 +1,6 @@
|
||||
Zint Barcode Generator and Zint Barcode Studio User Manual
|
||||
Version 2.16.0.9
|
||||
March 2026
|
||||
April 2026
|
||||
|
||||
*******************************************************************************
|
||||
* For reference the following is a text-only version of the Zint manual, *
|
||||
@@ -746,9 +746,35 @@ sequences are shown in the table below.
|
||||
|
||||
Table 2: Escape Sequences
|
||||
|
||||
(Special escape sequences are available for Code 128 only to manually switch
|
||||
Code Sets and insert special FNC1 characters - see 6.1.10.1 Standard Code 128
|
||||
(ISO 15417) for details.)
|
||||
Extra escape sequences are available for certain symbologies using the
|
||||
--extraesc option that allows the insertion of special characters or, in the
|
||||
case of Code 128 only, to manually switch Code Sets. Extra escapes begin with
|
||||
the sequence backslash caret (“\^”):
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Extra Escape Interpretation Available for Symbology
|
||||
Sequence
|
||||
-------------------- ------------------------------- -----------------------
|
||||
\^1 Insert FNC1 character Code128, Data Matrix
|
||||
|
||||
\^^ Literal \^ Code128, Data Matrix
|
||||
|
||||
\^A, \^B, \^C Select Code Set A, B or C Code128 only
|
||||
respectively
|
||||
|
||||
\^@ Exit manual Code Set selection Code128 only
|
||||
and resume automatic Code Set
|
||||
selection
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Table 3: Extra Escape Sequences
|
||||
|
||||
Currently the only special character recognized is the Function Code 1 character
|
||||
FNC1. If your data contains the sequence “\^” then it must be escaped using the
|
||||
extra escape sequence “\^^”, i.e. by doubling the caret.
|
||||
|
||||
See 6.1.10.1 Standard Code 128 (ISO 15417) for the details on manually switching
|
||||
Code Sets.
|
||||
|
||||
Input data can be read directly from file using the -i or --input switch as
|
||||
shown below. The input file is assumed to be UTF-8 formatted unless an
|
||||
@@ -789,7 +815,7 @@ The currently supported output file formats are:
|
||||
tif Tagged Image File Format
|
||||
txt Text file (see 4.19 Other Options)
|
||||
|
||||
Table 3: Output File Formats
|
||||
Table 4: Output File Formats
|
||||
|
||||
The filename can contain directories and sub-directories also, which will be
|
||||
created if they don’t already exist:
|
||||
@@ -1039,7 +1065,7 @@ underscores are optional.
|
||||
component
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Table 4: Barcode Types (Symbologies)
|
||||
Table 5: Barcode Types (Symbologies)
|
||||
|
||||
4.4 Adjusting Height
|
||||
|
||||
@@ -1242,7 +1268,7 @@ To summarize the more intricate details:
|
||||
Yes EMF 40 0.1 N/A
|
||||
-------------------------------------------------------------------
|
||||
|
||||
Table 5: Scaling Multipliers and Minima
|
||||
Table 6: Scaling Multipliers and Minima
|
||||
|
||||
4.9.1 Scaling by X-dimension and Resolution
|
||||
|
||||
@@ -1361,7 +1387,7 @@ Latin-2 (ISO/IEC 8859-2 plus ASCII).
|
||||
UPNQR Latin-2 N/A
|
||||
All others ASCII N/A
|
||||
|
||||
Table 6: Default Character Sets
|
||||
Table 7: Default Character Sets
|
||||
|
||||
If Zint encounters characters which can not be encoded using the default
|
||||
character encoding then it will take advantage of the ECI (Extended Channel
|
||||
@@ -1396,7 +1422,7 @@ behaviour.
|
||||
4.11.2 Input Modes and ECI
|
||||
|
||||
If your data contains characters that are not in the default character set, you
|
||||
may encode it using an ECI-aware symbology and an ECI value from Table 8: ECI
|
||||
may encode it using an ECI-aware symbology and an ECI value from Table 9: ECI
|
||||
Codes below. The ECI information is added to your code symbol as prefix data.
|
||||
The symbologies that support ECI are:
|
||||
|
||||
@@ -1405,7 +1431,7 @@ The symbologies that support ECI are:
|
||||
Code One DotCode Han Xin Code MicroPDF417 QR Code Ultracode
|
||||
------------ ------------- -------------- ------------- --------- -----------
|
||||
|
||||
Table 7: ECI-Aware Symbologies
|
||||
Table 8: ECI-Aware Symbologies
|
||||
|
||||
Be aware that not all barcode readers support ECI mode, so this can sometimes
|
||||
lead to unreadable barcodes. If you are using characters beyond those supported
|
||||
@@ -1452,11 +1478,11 @@ formatted. Zint automatically translates the data into the target encoding.
|
||||
170 ISO/IEC 646 Invariant[8]
|
||||
899 8-bit binary data[9]
|
||||
|
||||
Table 8: ECI Codes
|
||||
Table 9: ECI Codes
|
||||
|
||||
An ECI value of 0 does not encode any ECI information in the code symbol (unless
|
||||
the data contains non-default character set characters). In this case, the
|
||||
default character set applies (see Table 6: Default Character Sets above).
|
||||
default character set applies (see Table 7: Default Character Sets above).
|
||||
|
||||
If no ECI is specified or a value of 0 is given, and the data does contain
|
||||
characters other than in the default character set, then Zint will automatically
|
||||
@@ -1551,7 +1577,7 @@ The following symbologies accept GS1 data:
|
||||
Ultracode No No No
|
||||
UPC-A, UPC-E Yes (01) Yes Yes
|
||||
|
||||
Table 9: GS1-Enabled Symbologies
|
||||
Table 10: GS1-Enabled Symbologies
|
||||
|
||||
4.11.3.1 GS1 Data Entry
|
||||
|
||||
@@ -1648,7 +1674,7 @@ characters in the output filename as shown in the table below:
|
||||
@ Insert a number or * (or + on Windows)
|
||||
Any other Insert literally
|
||||
|
||||
Table 10: Batch Filename Formatting
|
||||
Table 11: Batch Filename Formatting
|
||||
|
||||
For instance
|
||||
|
||||
@@ -1664,7 +1690,7 @@ The following table shows some examples to clarify this method:
|
||||
-o "my~~bar~.eps" "my00bar1.eps", "my00bar2.eps", "my00bar3.eps"
|
||||
-o "t###est.png" "t 1est.png", "t 2est.png", "t 3est.png"
|
||||
|
||||
Table 11: Batch Filename Examples
|
||||
Table 12: Batch Filename Examples
|
||||
|
||||
The special characters can span directories also, which is useful when creating
|
||||
a large number of barcodes:
|
||||
@@ -1674,7 +1700,7 @@ a large number of barcodes:
|
||||
-o "dir~/file~~~.svg" "dir0/file001.svg", "dir0/file002.svg", …
|
||||
"dir0/file999.svg", "dir1/file000.svg", …
|
||||
|
||||
Table 12: Batch Directory Examples
|
||||
Table 13: Batch Directory Examples
|
||||
|
||||
For an alternative method of naming output files see the --mirror option in 4.14
|
||||
Automatic Filenames below.
|
||||
@@ -1690,7 +1716,7 @@ suffix of the file type required. For example:
|
||||
zint -b MICROPDF417 --direct --filetype=pcx -d "Data to encode"
|
||||
|
||||
This command will output the symbol as a PCX file to stdout. For the supported
|
||||
output file formats see Table 3: Output File Formats.
|
||||
output file formats see Table 4: Output File Formats.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@@ -1733,7 +1759,7 @@ The default and minimum scale for raster output in dotty mode is 1.
|
||||
|
||||
If you need to specify different ECIs for different sections of the input data,
|
||||
the --seg1 to --seg9 options can be used. Each option is of the form
|
||||
--segN=ECI,data where ECI is the ECI code (see Table 8: ECI Codes) and data is
|
||||
--segN=ECI,data where ECI is the ECI code (see Table 9: ECI Codes) and data is
|
||||
the data to which this applies. This is in addition to the ECI and data
|
||||
specified using the --eci and -d options which must still be present and which
|
||||
in effect constitute segment 0. For instance
|
||||
@@ -1743,7 +1769,7 @@ in effect constitute segment 0. For instance
|
||||
specifies 3 segments: segment 0 with ECI 9 (Greek), segment 1 with ECI 7
|
||||
(Cyrillic), and segment 2 with ECI 20 (Shift JIS). Segments must be consecutive.
|
||||
|
||||
Naturally the symbology must be ECI-aware (see Table 7: ECI-Aware Symbologies).
|
||||
Naturally the symbology must be ECI-aware (see Table 8: ECI-Aware Symbologies).
|
||||
|
||||
[zint -b AZTEC --eci=9 -d "Κείμενο" --seg1=7,"Текст" --seg2=20,"文章"]
|
||||
|
||||
@@ -2241,7 +2267,7 @@ the following members:
|
||||
floats
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Table 13: API Structure zint_symbol
|
||||
Table 14: API Structure zint_symbol
|
||||
|
||||
To alter these values use the syntax shown in the example below. This code has
|
||||
the same result as the previous example except the output is now taller and
|
||||
@@ -2340,7 +2366,7 @@ the nature of the error. The errors generated by Zint are:
|
||||
ZINT_WARN_HRT_TRUNCATED occurs.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Table 14: API Warning and Error Return Values
|
||||
Table 15: API Warning and Error Return Values
|
||||
|
||||
To catch errors use an integer variable as shown in the code below:
|
||||
|
||||
@@ -2377,7 +2403,7 @@ To treat all warnings as errors, set symbol->warn_level to WARN_FAIL_ALL.
|
||||
|
||||
5.9 Specifying a Symbology
|
||||
|
||||
Symbologies can be specified by number or by name as listed in Table 4: Barcode
|
||||
Symbologies can be specified by number or by name as listed in Table 5: Barcode
|
||||
Types (Symbologies). For example
|
||||
|
||||
symbol->symbology = BARCODE_LOGMARS;
|
||||
@@ -2445,7 +2471,7 @@ together when adjusting this value:
|
||||
symbol->contentsegs (see 5.16 Feedback).
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Table 15: API output_options Values
|
||||
Table 16: API output_options Values
|
||||
|
||||
5.11 Setting the Input Mode
|
||||
|
||||
@@ -2483,7 +2509,7 @@ member:
|
||||
MICROPDF417, PDF417, QRCODE and UPNQR only).
|
||||
|
||||
EXTRA_ESCAPE_MODE Process special symbology-specific escape sequences
|
||||
(CODE128 only).
|
||||
(CODE128 and DATAMATRIX only).
|
||||
|
||||
GS1SYNTAXENGINE_MODE Use the GS1 Syntax Engine (if available) to strictly
|
||||
validate GS1 input.
|
||||
@@ -2492,7 +2518,7 @@ member:
|
||||
Group Separators (GS, ASCII 29) as FNC1s.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Table 16: API input_mode Values
|
||||
Table 17: API input_mode Values
|
||||
|
||||
The default mode is DATA_MODE (CLI option --binary). (Note that this differs
|
||||
from the default for the CLI and GUI, which is UNICODE_MODE.)
|
||||
@@ -2515,8 +2541,8 @@ whereas
|
||||
is not valid.
|
||||
|
||||
Permissible escape sequences (ESCAPE_MODE) are listed in Table 2: Escape
|
||||
Sequences, and the special Code 128-only EXTRA_ESCAPE_MODE escape sequences are
|
||||
given in 6.1.10.1 Standard Code 128 (ISO 15417).
|
||||
Sequences, and the extra escape sequences (EXTRA_ESCAPE_MODE) are listed in
|
||||
Table 3: Extra Escape Sequences.
|
||||
|
||||
The GS1 options GS1PARENS_MODE (CLI --gs1parens) , GS1NOCHECK_MODE (CLI
|
||||
--gs1nocheck), GS1SYNTAXENGINE_MODE (CLI --gs1strict) and GS1RAW_MODE (CLI
|
||||
@@ -2561,7 +2587,7 @@ number of elements it contains. The zint_seg structure is of the form:
|
||||
int eci; /* Extended Channel Interpretation */
|
||||
};
|
||||
|
||||
The symbology must support ECIs (see Table 7: ECI-Aware Symbologies). For
|
||||
The symbology must support ECIs (see Table 8: ECI-Aware Symbologies). For
|
||||
example:
|
||||
|
||||
#include <zint.h>
|
||||
@@ -2710,7 +2736,7 @@ see which are set.
|
||||
linear symbologies.
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Table 17: API Capability Flags
|
||||
Table 18: API Capability Flags
|
||||
|
||||
For example:
|
||||
|
||||
@@ -2737,7 +2763,7 @@ were overridden by Zint.
|
||||
In particular for symbologies that have masks,[19] option_3 will contain the
|
||||
mask used as (N + 1) << 8, N being the mask. Also Aztec Code will return the
|
||||
actual ECC percentage used in option_1 as P << 8, where P is the integer
|
||||
percentage, the low byte containing the values given in Table 40: Aztec Code
|
||||
percentage, the low byte containing the values given in Table 41: Aztec Code
|
||||
Error Correction Modes (with the addition of 0 meaning less than 5% + 3
|
||||
codewords and -1 meaning minimum 3 codewords). Micro PDF417 also will return the
|
||||
ECC percentage in option_1 as P << 8.
|
||||
@@ -2883,8 +2909,7 @@ Standard Code 2 of 5.
|
||||
|
||||
6.1.2.5 Code 2 of 5 Data Logic
|
||||
|
||||
Data Logic does not include a check digit by default and can encode numeric
|
||||
input (digits 0-9) up to a maximum of 113 digits.
|
||||
Data Logic can encode numeric input (digits 0-9) up to a maximum of 113 digits.
|
||||
|
||||
[zint -b C25LOGIC -d "9212320967"]
|
||||
|
||||
@@ -3148,7 +3173,7 @@ MSI Plessey has a range of check digit options that are selectable by setting
|
||||
5 Modulo-11 (NCR)
|
||||
6 Modulo-11 (NCR) & Modulo-10
|
||||
|
||||
Table 18: MSI Plessey Check Digit Options
|
||||
Table 19: MSI Plessey Check Digit Options
|
||||
|
||||
To not show the check digit or digits in the Human Readable Text, add 10 to the
|
||||
--vers value. For example --vers=12 (API option_2 = 12) will add two hidden
|
||||
@@ -3158,9 +3183,9 @@ modulo-10 check digits.
|
||||
|
||||
6.1.6.1 Telepen Alpha
|
||||
|
||||
Telepen Alpha was developed by SB Electronic Systems Limited and can encode
|
||||
ASCII text input, up to a maximum of 69 characters. Telepen includes a hidden
|
||||
modulo-127 check digit, added by Zint.
|
||||
Telepen Alpha was developed in 1972 by SB Electronic Systems Limited and can
|
||||
encode ASCII text input, up to a maximum of 69 characters. Telepen includes a
|
||||
hidden modulo-127 check digit, added by Zint.
|
||||
|
||||
[zint -b TELEPEN --compliantheight -d "Z80"]
|
||||
|
||||
@@ -3301,28 +3326,33 @@ supports the encoding of ISO/IEC 8859-1 (non-English) characters in Code 128
|
||||
symbols. The ISO/IEC 8859-1 character set is shown in Annex A.2 Latin Alphabet
|
||||
No. 1 (ISO/IEC 8859-1).
|
||||
|
||||
Manual switching of Code Sets is possible using the --extraesc option (API
|
||||
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 Code 128-specific escapes \^A, \^B, \^C and \^@
|
||||
(the latter turns off manual Code Set selection). For instance the following
|
||||
will force switching to Code Set B for the data "5678" (normally Code Set C
|
||||
would be used throughout):
|
||||
sequences also processes the extra escape sequences given in Table 3: Extra
|
||||
Escape Sequences. For instance
|
||||
|
||||
zint -b CODE128 -d "A\^1BC\^1DEF" --extraesc
|
||||
|
||||
encodes the data "A<FNC1>BC<FNC1>DEF", where <FNC1> represents the FNC1
|
||||
character.
|
||||
|
||||
If the data contains an extra escape sequence, it can be escaped by doubling the
|
||||
caret (^). For instance
|
||||
|
||||
zint -b CODE128 -d "A\^1BC\^^1DEF" --extraesc
|
||||
|
||||
will encode the data "A<FNC1>BC\^1DEF".
|
||||
|
||||
Manual switching of Code Sets is possible using the Code 128-specific extra
|
||||
escapes \^A, \^B, \^C and \^@ (the latter turns off manual Code Set selection).
|
||||
For instance the following will force switching to Code Set B for the data
|
||||
"5678" (normally Code Set C would be used throughout):
|
||||
|
||||
zint -b CODE128 -d "1234\^B5678" --extraesc
|
||||
|
||||
The manually selected Code Set will apply until the next Code Set escape
|
||||
sequence or until a \^@, with the exception that data that cannot be represented
|
||||
in that Code Set will be switched as appropriate. If the data contains an extra
|
||||
escape sequence, it can be escaped by doubling the caret (^). For instance
|
||||
|
||||
zint -b CODE128 -d "\^AABC\^^BDEF" --extraesc
|
||||
|
||||
will encode the data "ABC\^BDEF" in Code Set A.
|
||||
|
||||
There is also the extra escape \^1, which will encode a special Function Code 1
|
||||
character (FNC1) anywhere you choose in the data, for instance
|
||||
|
||||
zint -b CODE128 -d "A\^1BC\^1DEF" --extraesc
|
||||
in that Code Set will be switched as appropriate.
|
||||
|
||||
Zint can encode a maximum of 102 symbol characters, which allows for e.g. 202
|
||||
all-numeric or 101 all-uppercase characters. Sizes above 120 digits (60
|
||||
@@ -3406,7 +3436,7 @@ alphanumeric, and is of the form:
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Table 19: DPD Input Fields
|
||||
Table 20: DPD Input Fields
|
||||
|
||||
A warning will be generated if the Service Code, the Destination Country Code,
|
||||
or the last 10 characters of the Tracking Number are non-numeric.
|
||||
@@ -3524,7 +3554,7 @@ the table below:
|
||||
7 000000 576688
|
||||
8 0000000 7742862
|
||||
|
||||
Table 20: Channel Value Ranges
|
||||
Table 21: Channel Value Ranges
|
||||
|
||||
6.1.14 BC412 (SEMI T1-95)
|
||||
|
||||
@@ -3770,7 +3800,7 @@ encoding methods. Valid values are shown below.
|
||||
component
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Table 21: GS1 Composite Symbology Values
|
||||
Table 22: GS1 Composite Symbology Values
|
||||
|
||||
The data to be encoded in the linear component of a composite symbol should be
|
||||
entered into a primary string with the data for the 2D component being entered
|
||||
@@ -3936,7 +3966,7 @@ following table.
|
||||
23 99999999999999999999999 67-bar 62 N
|
||||
---------------------------------------------------------------
|
||||
|
||||
Table 22: Australia Post Input Formats
|
||||
Table 23: Australia Post Input Formats
|
||||
|
||||
6.5.1.2 Reply Paid Barcode
|
||||
|
||||
@@ -3997,7 +4027,7 @@ rules for the input data are complex, as summarized in the following table.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Table 23: Royal Mail 4-State Mailmark Input Fields
|
||||
Table 24: Royal Mail 4-State Mailmark Input Fields
|
||||
|
||||
|
||||
The 6 Destination+DPS (Destination Post Code plus Delivery Point Suffix)
|
||||
@@ -4007,7 +4037,7 @@ patterns are:
|
||||
ANNLLNLSS AANNLLNLS ANNNLLNLS AANNNLLNL ANANLLNLS AANANLLNL
|
||||
----------- ----------- ----------- ----------- ----------- -----------
|
||||
|
||||
Table 24: Royal Mail 4-State Mailmark Destination+DPS Patterns
|
||||
Table 25: Royal Mail 4-State Mailmark Destination+DPS Patterns
|
||||
|
||||
|
||||
where 'A' stands for full alphabetic (A-Z), 'L' for limited alphabetic (A-Z less
|
||||
@@ -4103,7 +4133,7 @@ Note that only ECC 200 symbols are supported, the older standards (ECC 000 to
|
||||
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 25: Data Matrix Sizes
|
||||
Table 26: Data Matrix Sizes
|
||||
|
||||
The largest version 24 (144 x 144) can encode 3116 digits, around 2335
|
||||
alphanumeric characters, or 1555 bytes of data.
|
||||
@@ -4127,7 +4157,7 @@ the following values as before:
|
||||
38 12 x 88 47 26 x 48
|
||||
39 16 x 64 48 26 x 64
|
||||
|
||||
Table 26: DMRE Sizes
|
||||
Table 27: DMRE Sizes
|
||||
|
||||
DMRE symbol sizes may be activated in automatic size mode using the option
|
||||
--dmre (API option_3 = DM_DMRE).
|
||||
@@ -4136,6 +4166,18 @@ GS1 data may be encoded using FNC1 (default) or GS (Group Separator, ASCII 29)
|
||||
as separator. Use the option --gssep to change to GS (API
|
||||
output_options |= GS1_GS_SEPARATOR).
|
||||
|
||||
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 Table 3: Extra
|
||||
Escape Sequences. For instance
|
||||
|
||||
zint -b DATAMATRIX -d "A\^1BC\^1DEF" --extraesc
|
||||
|
||||
encodes the data "A<FNC1>BC<FNC1>DEF", where <FNC1> represents the FNC1
|
||||
character. If the data contains an extra escape sequence, it can be escaped by
|
||||
doubling the caret (^), i.e. "\^^" encodes "\^". Note that if using ECIs with
|
||||
manual FNC1s then the ECIs must be ASCII compatible.[24]
|
||||
|
||||
By default Zint uses a “de facto” codeword placement for symbols of size 144 x
|
||||
144 (version 24). To override this and use the now clarified ISO/IEC standard
|
||||
placement, use option --dmiso144 (API option_3 |= DM_ISO_144).
|
||||
@@ -4179,7 +4221,7 @@ section, as summarized below.
|
||||
Reserved 6 Spaces
|
||||
Customer Data 6, 45 or 29 Anything (Latin-1)
|
||||
|
||||
Table 27: Royal Mail 2D Mailmark Input Fields
|
||||
Table 28: Royal Mail 2D Mailmark Input Fields
|
||||
|
||||
|
||||
The 12 Destination+DPS (Destination Post Code plus Delivery Point Suffix)
|
||||
@@ -4192,7 +4234,7 @@ required (the rest can be blank), and the whole field can be blank:
|
||||
ANSSSSSSS AANSSSSSS ANNSSSSSS AANNSSSSS ANASSSSSS AANASSSSS
|
||||
----------- ----------- ----------- ----------- ----------- -----------
|
||||
|
||||
Table 28: Royal Mail 2D Mailmark Destination+DPS Patterns
|
||||
Table 29: Royal Mail 2D Mailmark Destination+DPS Patterns
|
||||
|
||||
|
||||
where 'A' is alphabetic (A-Z), 'N' numeric (0-9), and 'S' space.
|
||||
@@ -4205,7 +4247,7 @@ the whole field can be):
|
||||
ANNAASS AANNAAS ANNNAAS AANNNAA ANANAAS AANANAA
|
||||
--------- --------- --------- --------- --------- ---------
|
||||
|
||||
Table 29: Royal Mail 2D Mailmark RTS Patterns
|
||||
Table 30: Royal Mail 2D Mailmark RTS Patterns
|
||||
|
||||
Three sizes are defined, one rectangular, with varying maximum amounts of
|
||||
optional customer data:
|
||||
@@ -4216,7 +4258,7 @@ optional customer data:
|
||||
Type 9 32 x 32 45 characters 10
|
||||
Type 29 16 x 48 29 characters 30
|
||||
|
||||
Table 30: Royal Mail 2D Mailmark Sizes
|
||||
Table 31: 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
|
||||
@@ -4244,7 +4286,7 @@ option_1) as shown in the following table.
|
||||
3 Q Approx 55% of symbol Approx 25%
|
||||
4 H Approx 65% of symbol Approx 30%
|
||||
|
||||
Table 31: QR Code ECC Levels
|
||||
Table 32: QR Code ECC Levels
|
||||
|
||||
The size of the symbol can be specified by setting the --vers option (API
|
||||
option_2) to the QR Code version required (1-40). The size of symbol generated
|
||||
@@ -4267,7 +4309,7 @@ is shown in the table below.
|
||||
13 69 x 69 27 125 x 125
|
||||
14 73 x 73 28 129 x 129
|
||||
|
||||
Table 32: QR Code Sizes
|
||||
Table 33: QR Code Sizes
|
||||
|
||||
The maximum capacity of a QR Code symbol (version 40) is 7089 numeric digits,
|
||||
4296 alphanumeric characters or 2953 bytes of data. QR Code symbols can also be
|
||||
@@ -4327,7 +4369,7 @@ restrictions on what characters can be encoded.
|
||||
4 M4 17 x 17 Latin-1 and Shift JIS
|
||||
------------------------------------------------------------------
|
||||
|
||||
Table 33: Micro QR Code Sizes
|
||||
Table 34: Micro QR Code Sizes
|
||||
|
||||
Version M4 can encode up to 35 digits, 21 alphanumerics, 15 bytes or 9 Kanji
|
||||
characters.
|
||||
@@ -4347,7 +4389,7 @@ not available for any version, and ECC level Q is only available for version M4:
|
||||
3 Q Approx 55% of symbol Approx 25% M4
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Table 34: Micro QR ECC Levels
|
||||
Table 35: Micro QR ECC Levels
|
||||
|
||||
The defaults for symbol size and ECC level depend on the input and whether
|
||||
either of them is specified.
|
||||
@@ -4379,7 +4421,7 @@ option_1), however only ECC levels M and H are valid for this type of symbol.
|
||||
2 M Approx 37% of symbol Approx 15%
|
||||
4 H Approx 65% of symbol Approx 30%
|
||||
|
||||
Table 35: rMQR ECC Levels
|
||||
Table 36: rMQR ECC Levels
|
||||
|
||||
The preferred symbol sizes can be selected using the --vers option (API
|
||||
option_2) as shown in the table below. Input values between 33 and 38 fix the
|
||||
@@ -4427,7 +4469,7 @@ height of the symbol while allowing Zint to determine the minimum symbol width.
|
||||
19 R13x59 13 x 59 38 R17xW 17 x automatic width
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Table 36: rMQR Sizes
|
||||
Table 37: rMQR Sizes
|
||||
|
||||
The largest version R17x139 (32) can encode up to 361 digits, 219 alphanumerics,
|
||||
150 bytes, or 92 Kanji characters.
|
||||
@@ -4485,7 +4527,7 @@ Zint is given in the following table.
|
||||
13 - 15 Three-digit service code. This depends on your parcel courier.
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Table 37: MaxiCode Structured Carrier Message Format
|
||||
Table 38: MaxiCode Structured Carrier Message Format
|
||||
|
||||
The primary message can be set at the command prompt using the --primary switch
|
||||
(API primary). The secondary message uses the normal data entry method. For
|
||||
@@ -4540,7 +4582,7 @@ Example maximum data lengths are given in the table below:
|
||||
6 93 138 50
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Table 38: MaxiCode Data Length Maxima
|
||||
Table 39: MaxiCode Data Length Maxima
|
||||
|
||||
* - secondary only
|
||||
|
||||
@@ -4586,7 +4628,7 @@ symbol. Two options, mutually exclusive, are available to change this behaviour:
|
||||
11 45 x 45 23 95 x 95 35 147 x 147
|
||||
12 49 x 49 24 101 x 101 36 151 x 151
|
||||
|
||||
Table 39: Aztec Code Sizes
|
||||
Table 40: Aztec Code Sizes
|
||||
|
||||
Note that in symbols which have a specified size the amount of error correction
|
||||
is dependent on the length of the data input and Zint will allow error
|
||||
@@ -4604,7 +4646,7 @@ recommended, and anything less than 5% + 3 codewords will result in a warning).
|
||||
3 >=36% + 3 codewords
|
||||
4 >=50% + 3 codewords
|
||||
|
||||
Table 40: Aztec Code Error Correction Modes
|
||||
Table 41: Aztec Code Error Correction Modes
|
||||
|
||||
It is not possible to select both symbol size and error correction capacity for
|
||||
the same symbol. If both options are selected then the error correction capacity
|
||||
@@ -4672,7 +4714,7 @@ below:
|
||||
10 T 16 x automatic width 90 55
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Table 41: Code One Sizes
|
||||
Table 42: Code One Sizes
|
||||
|
||||
Version S symbols can only encode numeric data. The width of version S and
|
||||
version T symbols is determined by the length of the input data.
|
||||
@@ -4710,7 +4752,7 @@ using the --secure option (API option_1), according to the following tables.
|
||||
6 78 x 78 13 162 x 162
|
||||
7 90 x 90
|
||||
|
||||
Table 42: Grid Matrix Sizes
|
||||
Table 43: Grid Matrix Sizes
|
||||
|
||||
Mode Error Correction Capacity
|
||||
------ ---------------------------
|
||||
@@ -4720,7 +4762,7 @@ using the --secure option (API option_1), according to the following tables.
|
||||
4 Approximately 40%
|
||||
5 Approximately 50%
|
||||
|
||||
Table 43: Grid Matrix Error Correction Modes
|
||||
Table 44: Grid Matrix Error Correction Modes
|
||||
|
||||
Non-ASCII data density may be maximized by using the --fullmultibyte switch (API
|
||||
option_3 = ZINT_FULL_MULTIBYTE), but check that your barcode reader supports
|
||||
@@ -4798,7 +4840,7 @@ to a value between 1 and 84 according to the following table.
|
||||
27 75 x 75 55 131 x 131 83 187 x 187
|
||||
28 77 x 77 56 133 x 133 84 189 x 189
|
||||
|
||||
Table 44: Han Xin Sizes
|
||||
Table 45: Han Xin Sizes
|
||||
|
||||
The largest version (84) can encode 7827 digits, 4350 ASCII characters, up to
|
||||
2175 Chinese characters, or 3261 bytes, making it the most capacious of all the
|
||||
@@ -4815,7 +4857,7 @@ following table.
|
||||
3 Approx 23%
|
||||
4 Approx 30%
|
||||
|
||||
Table 45: Han Xin Error Correction Modes
|
||||
Table 46: Han Xin Error Correction Modes
|
||||
|
||||
Non-ASCII data density may be maximized by using the --fullmultibyte switch (API
|
||||
option_3 = ZINT_FULL_MULTIBYTE), but check that your barcode reader supports
|
||||
@@ -4847,7 +4889,7 @@ option_1) to a value as shown in the following table.
|
||||
5 EC4 Approx 25%
|
||||
6 EC5 Approx 33%
|
||||
|
||||
Table 46: Ultracode Error Correction Values
|
||||
Table 47: Ultracode Error Correction Values
|
||||
|
||||
Zint does not currently implement data compression by default, but this can be
|
||||
initiated through the API by setting
|
||||
@@ -4893,7 +4935,7 @@ as shown in the table below.
|
||||
D Used for Information Based Indicia (IBI) postage.
|
||||
E Used for customized mail with a USPS Intelligent Mail barcode.
|
||||
|
||||
Table 47: Valid FIM Characters
|
||||
Table 48: Valid FIM Characters
|
||||
|
||||
6.7.2 Flattermarken
|
||||
|
||||
@@ -5081,13 +5123,13 @@ reproduced here for reference.
|
||||
E SO RS . > N ^ n ~
|
||||
F SI US / ? O _ o DEL
|
||||
|
||||
Table 48: ASCII
|
||||
Table 49: ASCII
|
||||
|
||||
A.2 Latin Alphabet No. 1 (ISO/IEC 8859-1)
|
||||
|
||||
ISO/IEC 8859-1 defines additional characters common in western European
|
||||
languages like French, German, Italian and Spanish. This extension is the
|
||||
default encoding of many barcodes (see Table 6: Default Character Sets) when a
|
||||
default encoding of many barcodes (see Table 7: Default Character Sets) when a
|
||||
codepoint above hex 9F is encoded. Note that codepoints hex 80 to 9F are not
|
||||
defined.
|
||||
|
||||
@@ -5110,7 +5152,7 @@ defined.
|
||||
E ® ¾ Î Þ î þ
|
||||
F ¯ ¿ Ï ß ï ÿ
|
||||
|
||||
Table 49: ISO/IEC 8859-1
|
||||
Table 50: ISO/IEC 8859-1
|
||||
|
||||
Annex B. Qt Backend QZint
|
||||
|
||||
@@ -5200,7 +5242,7 @@ configured barcode is updated when the "Generate" button is pressed.
|
||||
|
||||
Annex D. Man Page ZINT(1)
|
||||
|
||||
% ZINT(1) Version 2.16.0.9 % % March 2026
|
||||
% ZINT(1) Version 2.16.0.9 % % April 2026
|
||||
|
||||
NAME
|
||||
|
||||
@@ -5413,11 +5455,12 @@ OPTIONS
|
||||
|
||||
--extraesc
|
||||
|
||||
For Code 128 only, as well as processing the normal escape sequences above,
|
||||
process the special escape sequences \^A, \^B, \^C and \^@ that allow manual
|
||||
switching of Code Sets, and the special escape sequence \^1 that inserts an
|
||||
FNC1 character. The sequence \@ turns off manual switching. The sequence \^^
|
||||
can be used to encode data that contains special escape sequences.
|
||||
As well as processing the normal escape sequences above, process the special
|
||||
escape sequences beginning with \^. For Code 128 and Data Matrix, process
|
||||
the escape sequence \^1 that inserts an FNC1 character, and the escaping
|
||||
sequence \^^ that encodes a literal \^. For Code 128 only, process the
|
||||
escape sequences \^A, \^B, \^C and \^@ that allow manual switching of Code
|
||||
Sets. The sequence \^@ turns off manual switching.
|
||||
|
||||
--fast
|
||||
|
||||
@@ -5956,7 +5999,7 @@ see “GS1 Barcode Syntax Engine” at https://github.com/gs1/gs1-syntax-engine.
|
||||
codeset from U+0000 to U+D7FF and U+E000 to U+FFFF (i.e. excluding surrogates).
|
||||
Not to be confused with the Windows Bitmap file format BMP!
|
||||
|
||||
[4] The symbology names marked with an asterisk (*) in Table 4: Barcode Types
|
||||
[4] The symbology names marked with an asterisk (*) in Table 5: Barcode Types
|
||||
(Symbologies) above used different names in previous versions of Zint. These
|
||||
names are now deprecated but are still recognised by Zint. Those marked with a
|
||||
dagger (†) are replacements for BARCODE_EANX (13), BARCODE_EANX_CHK (14) and
|
||||
@@ -6032,3 +6075,7 @@ recognised.
|
||||
|
||||
[23] The DX number may be looked up in The (Modified) Big Film Database at
|
||||
https://thebigfilmdatabase.merinorus.com.
|
||||
|
||||
[24] ASCII-compatible ECIs are ECIs 3 to 18 and 21 to 27 (see Table 9: ECI
|
||||
Codes). Note in particular that ECI 899, 8-bit binary, is not considered
|
||||
ASCII-compatible.
|
||||
|
||||
Reference in New Issue
Block a user