diff --git a/backend_tcl/licence.txt b/backend_tcl/licence.txt new file mode 100644 index 00000000..795e883e --- /dev/null +++ b/backend_tcl/licence.txt @@ -0,0 +1,14 @@ +Copyright (c) 2023 Robin Stuart +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +advertising materials, and other materials related to such +distribution and use acknowledge that the software was developed +by the . The name of the + may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. diff --git a/backend_tcl/readme.txt b/backend_tcl/readme.txt index 537fb228..50ede106 100644 --- a/backend_tcl/readme.txt +++ b/backend_tcl/readme.txt @@ -10,6 +10,8 @@ Build: The header files of a TCL and Tk build are required for the build. - MS-VC6 project file "zint_tcl.dsp" may be opened by the GUI. + (will need to add your version of tcl/tk libs to LINK32, e.g. + "tcl85.lib" and "tk85.lib") - Linux/Unix build is provided by the configure script. Thanks to Christian Werner for that. diff --git a/docs/zint.1 b/docs/zint.1 index 44d059ae..9fd23c36 100644 --- a/docs/zint.1 +++ b/docs/zint.1 @@ -1,11 +1,11 @@ -.\" Automatically generated by Pandoc 3.1.9 +.\" Automatically generated by Pandoc 3.1.10 .\" .TH "ZINT" "1" "December 2023" "Version 2.12.0.9" "" .SH NAME -\f[CR]zint\f[R] - encode data as a barcode image +\f[CR]zint\f[R] \- encode data as a barcode image .SH SYNOPSIS .PP -\f[CR]zint\f[R] [\f[CR]-h\f[R] | \f[CR]--help\f[R]] +\f[CR]zint\f[R] [\f[CR]\-h\f[R] | \f[CR]\-\-help\f[R]] .PD 0 .P .PD @@ -14,13 +14,13 @@ zint takes input data from the command line or a file to encode in a barcode which is then output to an image file. .PP -Input data is UTF-8, unless \f[CR]--binary\f[R] is specified. +Input data is UTF\-8, unless \f[CR]\-\-binary\f[R] is specified. .PP Human Readable Text (HRT) is displayed by default for those barcodes -that support HRT, unless \f[CR]--notext\f[R] is specified. +that support HRT, unless \f[CR]\-\-notext\f[R] is specified. .PP -The output image file (specified with \f[CR]-o\f[R] | -\f[CR]--output\f[R]) may be in one of these formats: Windows Bitmap +The output image file (specified with \f[CR]\-o\f[R] | +\f[CR]\-\-output\f[R]) may be in one of these formats: Windows Bitmap (\f[CR]BMP\f[R]), Enhanced Metafile Format (\f[CR]EMF\f[R]), Encapsulated PostScript (\f[CR]EPS\f[R]), Graphics Interchange Format (\f[CR]GIF\f[R]), ZSoft Paintbrush (\f[CR]PCX\f[R]), Portable Network @@ -28,139 +28,141 @@ Format (\f[CR]PNG\f[R]), Scalable Vector Graphic (\f[CR]SVG\f[R]), or Tagged Image File Format (\f[CR]TIF\f[R]). .SH OPTIONS .TP -\f[CR]-h\f[R], \f[CR]--help\f[R] +\f[CR]\-h\f[R], \f[CR]\-\-help\f[R] Print usage information summarizing command line options. .TP -\f[CR]-b TYPE\f[R], \f[CR]--barcode=TYPE\f[R] +\f[CR]\-b TYPE\f[R], \f[CR]\-\-barcode=TYPE\f[R] Set the barcode symbology that will be used to encode the data. \f[I]TYPE\f[R] is the number or name of the barcode symbology. If not given, the symbology defaults to 20 (Code 128). -To see what types are available, use the \f[CR]-t\f[R] | -\f[CR]--types\f[R] option. -Type names are case-insensitive, and non-alphanumerics are ignored. +To see what types are available, use the \f[CR]\-t\f[R] | +\f[CR]\-\-types\f[R] option. +Type names are case\-insensitive, and non\-alphanumerics are ignored. .TP -\f[CR]--addongap=INTEGER\f[R] +\f[CR]\-\-addongap=INTEGER\f[R] For EAN/UPC symbologies, set the gap between the main data and the -add-on. -\f[I]INTEGER\f[R] is in integral multiples of the X-dimension. +add\-on. +\f[I]INTEGER\f[R] is in integral multiples of the X\-dimension. The maximum gap that can be set is 12. -The minimum is 7, except for UPC-A, when the minimum is 9. +The minimum is 7, except for UPC\-A, when the minimum is 9. .TP -\f[CR]--batch\f[R] -Treat each line of an input file specified with \f[CR]-i\f[R] | -\f[CR]--input\f[R] as a separate data set and produce a barcode image +\f[CR]\-\-batch\f[R] +Treat each line of an input file specified with \f[CR]\-i\f[R] | +\f[CR]\-\-input\f[R] as a separate data set and produce a barcode image for each one. The barcode images are outputted by default to numbered filenames starting with \[lq]00001.png\[rq], \[lq]00002.png\[rq] etc., which can -be changed by using the \f[CR]-o\f[R] | \f[CR]--output\f[R] option. +be changed by using the \f[CR]\-o\f[R] | \f[CR]\-\-output\f[R] option. .TP -\f[CR]--bg=COLOUR\f[R] +\f[CR]\-\-bg=COLOUR\f[R] Specify a background (paper) colour where \f[I]COLOUR\f[R] is in hexadecimal \f[CR]RRGGBB\f[R] or \f[CR]RRGGBBAA\f[R] format or in decimal \f[CR]C,M,Y,K\f[R] percentages format. .TP -\f[CR]--binary\f[R] -Treat input data as raw 8-bit binary data instead of the default UTF-8. +\f[CR]\-\-binary\f[R] +Treat input data as raw 8\-bit binary data instead of the default +UTF\-8. Automatic code page translation to an ECI page is disabled, and no validation of the data\[cq]s character encoding takes place. .TP -\f[CR]--bind\f[R] +\f[CR]\-\-bind\f[R] Add horizontal boundary bars (also known as bearer bars) to the symbol. -The width of the boundary bars is specified by the \f[CR]--border\f[R] +The width of the boundary bars is specified by the \f[CR]\-\-border\f[R] option. -\f[CR]--bind\f[R] can also be used to add row separator bars to symbols -stacked with multiple \f[CR]-d\f[R] | \f[CR]--data\f[R] inputs, in which -case the width of the separator bars is specified with the -\f[CR]--separator\f[R] option. +\f[CR]\-\-bind\f[R] can also be used to add row separator bars to +symbols stacked with multiple \f[CR]\-d\f[R] | \f[CR]\-\-data\f[R] +inputs, in which case the width of the separator bars is specified with +the \f[CR]\-\-separator\f[R] option. .TP -\f[CR]--bindtop\f[R] +\f[CR]\-\-bindtop\f[R] Add a horizontal boundary bar to the top of the symbol. -The width of the boundary bar is specified by the \f[CR]--border\f[R] +The width of the boundary bar is specified by the \f[CR]\-\-border\f[R] option. .TP -\f[CR]--bold\f[R] +\f[CR]\-\-bold\f[R] Use bold text 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 -\f[CR]--bindtop\f[R]) or box borders (\f[CR]--box\f[R]), where -\f[I]INTEGER\f[R] is in integral multiples of the X-dimension. +\f[CR]\-\-border=INTEGER\f[R] +Set the width of boundary bars (\f[CR]\-\-bind\f[R] or +\f[CR]\-\-bindtop\f[R]) or box borders (\f[CR]\-\-box\f[R]), where +\f[I]INTEGER\f[R] is in integral multiples of the X\-dimension. The default is zero. .TP -\f[CR]--box\f[R] +\f[CR]\-\-box\f[R] Add a box around the symbol. -The width of the borders is specified by the \f[CR]--border\f[R] option. +The width of the borders is specified by the \f[CR]\-\-border\f[R] +option. .TP -\f[CR]--cmyk\f[R] +\f[CR]\-\-cmyk\f[R] Use the CMYK colour space when outputting to Encapsulated PostScript (EPS) or TIF files. .TP -\f[CR]--cols=INTEGER\f[R] +\f[CR]\-\-cols=INTEGER\f[R] Set the number of data columns in the symbol to \f[I]INTEGER\f[R]. -Affects Codablock-F, DotCode, GS1 DataBar Expanded Stacked +Affects Codablock\-F, DotCode, GS1 DataBar Expanded Stacked (DBAR_EXPSTK), MicroPDF417 and PDF417 symbols. .TP -\f[CR]--compliantheight\f[R] -Warn if the height specified by the \f[CR]--height\f[R] option is not +\f[CR]\-\-compliantheight\f[R] +Warn if the height specified by the \f[CR]\-\-height\f[R] option is not compliant with the barcode\[cq]s specification, or if -\f[CR]--height\f[R] is not given, default to the height specified by the -specification (if any). +\f[CR]\-\-height\f[R] is not given, default to the height specified by +the specification (if any). .TP -\f[CR]-d\f[R], \f[CR]--data=DATA\f[R] +\f[CR]\-d\f[R], \f[CR]\-\-data=DATA\f[R] Specify the input \f[I]DATA\f[R] to encode. -The \f[CR]--esc\f[R] option may be used to enter non-printing characters -using escape sequences. -The \f[I]DATA\f[R] should be UTF-8, unless the \f[CR]--binary\f[R] +The \f[CR]\-\-esc\f[R] option may be used to enter non\-printing +characters using escape sequences. +The \f[I]DATA\f[R] should be UTF\-8, unless the \f[CR]\-\-binary\f[R] option is given, in which case it can be anything. .TP -\f[CR]--direct\f[R] -Send output to stdout, which in most cases should be re-directed to a +\f[CR]\-\-direct\f[R] +Send output to stdout, which in most cases should be re\-directed to a pipe or a file. -Use \f[CR]--filetype\f[R] to specify output format. +Use \f[CR]\-\-filetype\f[R] to specify output format. .TP -\f[CR]--dmiso144\f[R] +\f[CR]\-\-dmiso144\f[R] For Data Matrix symbols, use the standard ISO/IEC codeword placement for -144 x 144 (\f[CR]--vers=24\f[R]) sized symbols, instead of the default +144 x 144 (\f[CR]\-\-vers=24\f[R]) sized symbols, instead of the default \[lq]de facto\[rq] placement (which rotates the placement of ECC codewords). .TP -\f[CR]--dmre\f[R] +\f[CR]\-\-dmre\f[R] For Data Matrix symbols, allow Data Matrix Rectangular Extended (DMRE) sizes when considering automatic sizes. -See also \f[CR]--square\f[R]. +See also \f[CR]\-\-square\f[R]. .TP -\f[CR]--dotsize=NUMBER\f[R] -Set the radius of the dots in dotty mode (\f[CR]--dotty\f[R]). -\f[I]NUMBER\f[R] is in X-dimensions, and may be floating-point. +\f[CR]\-\-dotsize=NUMBER\f[R] +Set the radius of the dots in dotty mode (\f[CR]\-\-dotty\f[R]). +\f[I]NUMBER\f[R] is in X\-dimensions, and may be floating\-point. The default is 0.8. .TP -\f[CR]--dotty\f[R] +\f[CR]\-\-dotty\f[R] Use dots instead of squares for matrix symbols. DotCode is always in dotty mode. .TP -\f[CR]--dump\f[R] +\f[CR]\-\-dump\f[R] Dump a hexadecimal representation of the symbol\[cq]s encodation to stdout. The same representation may be outputted to a file by using a -\f[CR].txt\f[R] extension with \f[CR]-o\f[R] | \f[CR]--output\f[R] or by -specifying \f[CR]--filetype=txt\f[R]. +\f[CR].txt\f[R] extension with \f[CR]\-o\f[R] | \f[CR]\-\-output\f[R] or +by specifying \f[CR]\-\-filetype=txt\f[R]. .TP -\f[CR]-e\f[R], \f[CR]--ecinos\f[R] +\f[CR]\-e\f[R], \f[CR]\-\-ecinos\f[R] Display the table of ECIs (Extended Channel Interpretations). .TP -\f[CR]--eci=INTEGER\f[R] +\f[CR]\-\-eci=INTEGER\f[R] Set the ECI code for the input data to \f[I]INTEGER\f[R]. -See \f[CR]-e\f[R] | \f[CR]--ecinos\f[R] for a list of the ECIs +See \f[CR]\-e\f[R] | \f[CR]\-\-ecinos\f[R] for a list of the ECIs available. ECIs are supported by Aztec Code, Code One, Data Matrix, DotCode, Grid Matrix, Han Xin Code, MaxiCode, MicroPDF417, PDF417, QR Code, rMQR and Ultracode. .TP -\f[CR]--embedfont\f[R] +\f[CR]\-\-embedfont\f[R] For vector output, embed the font in the file for portability. Currently only available for SVG output. .TP -\f[CR]--esc\f[R] +\f[CR]\-\-esc\f[R] Process escape characters in the input data. The escape sequences are: .RS @@ -179,109 +181,109 @@ The escape sequences are: \[rs]G (0x1D) GS Group Separator \[rs]R (0x1E) RS Record Separator \[rs]\[rs] (0x5C) \[rs] Backslash -\[rs]dNNN (NNN) Any 8-bit character where NNN is - decimal (000-255) -\[rs]oNNN (0oNNN) Any 8-bit character where NNN is - octal (000-377) -\[rs]xNN (0xNN) Any 8-bit character where NN is - hexadecimal (00-FF) -\[rs]uNNNN (U+NNNN) Any 16-bit Unicode BMP character +\[rs]dNNN (NNN) Any 8\-bit character where NNN is + decimal (000\-255) +\[rs]oNNN (0oNNN) Any 8\-bit character where NNN is + octal (000\-377) +\[rs]xNN (0xNN) Any 8\-bit character where NN is + hexadecimal (00\-FF) +\[rs]uNNNN (U+NNNN) Any 16\-bit Unicode BMP character where NNNN is hexadecimal -\[rs]UNNNNNN (U+NNNNNN) Any 21-bit Unicode character +\[rs]UNNNNNN (U+NNNNNN) Any 21\-bit Unicode character where NNNNNN is hexadecimal .EE .RE .TP -\f[CR]--extraesc\f[R] +\f[CR]\-\-extraesc\f[R] Process the special escape sequences \f[CR]\[rs]\[ha]A\f[R], \f[CR]\[rs]\[ha]B\f[R] and \f[CR]\[rs]\[ha]C\f[R] that allow manual switching of Code Sets (Code 128 only). The sequence \f[CR]\[rs]\[ha]\[ha]\f[R] can be used to encode data that contains special escape sequences. .TP -\f[CR]--fast\f[R] +\f[CR]\-\-fast\f[R] Use faster if less optimal encodation or other shortcuts (affects Data Matrix, MicroPDF417, PDF417, QRCODE & UPNQR only). .TP -\f[CR]--fg=COLOUR\f[R] +\f[CR]\-\-fg=COLOUR\f[R] Specify a foreground (ink) colour where \f[I]COLOUR\f[R] is in hexadecimal \f[CR]RRGGBB\f[R] or \f[CR]RRGGBBAA\f[R] format or in decimal \f[CR]C,M,Y,K\f[R] percentages format. .TP -\f[CR]--filetype=TYPE\f[R] +\f[CR]\-\-filetype=TYPE\f[R] Set the output file type to \f[I]TYPE\f[R], which is one of \f[CR]BMP\f[R], \f[CR]EMF\f[R], \f[CR]EPS\f[R], \f[CR]GIF\f[R], \f[CR]PCX\f[R], \f[CR]PNG\f[R], \f[CR]SVG\f[R], \f[CR]TIF\f[R], \f[CR]TXT\f[R]. .TP -\f[CR]--fullmultibyte\f[R] +\f[CR]\-\-fullmultibyte\f[R] Use the multibyte modes of Grid Matrix, Han Xin and QR Code for -non-ASCII data. +non\-ASCII data. .TP -\f[CR]--gs1\f[R] +\f[CR]\-\-gs1\f[R] Treat input as GS1 compatible data. Application Identifiers (AIs) should be placed in square brackets -\f[CR]\[dq][]\[dq]\f[R] (but see \f[CR]--gs1parens\f[R]). +\f[CR]\[dq][]\[dq]\f[R] (but see \f[CR]\-\-gs1parens\f[R]). .TP -\f[CR]--gs1nocheck\f[R] +\f[CR]\-\-gs1nocheck\f[R] Do not check the validity of GS1 data. .TP -\f[CR]--gs1parens\f[R] +\f[CR]\-\-gs1parens\f[R] Process parentheses \f[CR]\[dq]()\[dq]\f[R] as GS1 AI delimiters, rather than square brackets \f[CR]\[dq][]\[dq]\f[R]. The input data must not otherwise contain parentheses. .TP -\f[CR]--gssep\f[R] +\f[CR]\-\-gssep\f[R] For Data Matrix in GS1 mode, use \f[CR]GS\f[R] (0x1D) as the GS1 data separator instead of \f[CR]FNC1\f[R]. .TP -\f[CR]--guarddescent=NUMBER\f[R] +\f[CR]\-\-guarddescent=NUMBER\f[R] For EAN/UPC symbols, set the height the guard bars descend below the -main bars, where \f[I]NUMBER\f[R] is in X-dimensions. -\f[I]NUMBER\f[R] may be floating-point. +main bars, where \f[I]NUMBER\f[R] is in X\-dimensions. +\f[I]NUMBER\f[R] may be floating\-point. .TP -\f[CR]--guardwhitespace\f[R] +\f[CR]\-\-guardwhitespace\f[R] For EAN/UPC symbols, add quiet zone indicators \f[CR]\[dq]<\[dq]\f[R] and/or \f[CR]\[dq]>\[dq]\f[R] to HRT where applicable. .TP -\f[CR]--height=NUMBER\f[R] -Set the height of the symbol in X-dimensions. -\f[I]NUMBER\f[R] may be floating-point. +\f[CR]\-\-height=NUMBER\f[R] +Set the height of the symbol in X\-dimensions. +\f[I]NUMBER\f[R] may be floating\-point. .TP -\f[CR]--heightperrow\f[R] -Treat height as per-row. -Affects Codablock-F, Code 16K, Code 49, GS1 DataBar Expanded Stacked +\f[CR]\-\-heightperrow\f[R] +Treat height as per\-row. +Affects Codablock\-F, Code 16K, Code 49, GS1 DataBar Expanded Stacked (DBAR_EXPSTK), MicroPDF417 and PDF417. .TP -\f[CR]-i\f[R], \f[CR]--input=FILE\f[R] +\f[CR]\-i\f[R], \f[CR]\-\-input=FILE\f[R] Read the input data from \f[I]FILE\f[R]. -Specify a single hyphen (\f[CR]-\f[R]) for \f[I]FILE\f[R] to read from +Specify a single hyphen (\f[CR]\-\f[R]) for \f[I]FILE\f[R] to read from stdin. .TP -\f[CR]--init\f[R] +\f[CR]\-\-init\f[R] Create a Reader Initialisation (Programming) symbol. .TP -\f[CR]--mask=INTEGER\f[R] +\f[CR]\-\-mask=INTEGER\f[R] Set the masking pattern to use for DotCode, Han Xin or QR Code to \f[I]INTEGER\f[R], overriding the automatic selection. .TP -\f[CR]--mirror\f[R] +\f[CR]\-\-mirror\f[R] Use the batch data to determine the filename in batch mode -(\f[CR]--batch\f[R]). -The \f[CR]-o\f[R] | \f[CR]--output\f[R] option can be used to specify an -output directory (any filename will be ignored). +(\f[CR]\-\-batch\f[R]). +The \f[CR]\-o\f[R] | \f[CR]\-\-output\f[R] option can be used to specify +an output directory (any filename will be ignored). .TP -\f[CR]--mode=INTEGER\f[R] +\f[CR]\-\-mode=INTEGER\f[R] For MaxiCode and GS1 Composite symbols, set the encoding mode to \f[I]INTEGER\f[R]. .RS .PP For MaxiCode (SCM is Structured Carrier Message, with 3 fields: -postcode, 3-digit ISO 3166-1 country code, 3-digit service code): +postcode, 3\-digit ISO 3166\-1 country code, 3\-digit service code): .IP .EX -2 SCM with 9-digit numeric postcode -3 SCM with 6-character alphanumeric postcode +2 SCM with 9\-digit numeric postcode +3 SCM with 6\-character alphanumeric postcode 4 Enhanced ECC for the primary part of the message 5 Enhanced ECC for all of the message 6 Reader Initialisation (Programming) @@ -291,27 +293,27 @@ For GS1 Composite symbols (names end in \f[CR]_CC\f[R], i.e.\ EANX_CC, GS1_128_CC, DBAR_OMN_CC etc.): .IP .EX -1 CC-A -2 CC-B -3 CC-C (GS1_128_CC only) +1 CC\-A +2 CC\-B +3 CC\-C (GS1_128_CC only) .EE .RE .TP -\f[CR]--nobackground\f[R] +\f[CR]\-\-nobackground\f[R] Remove the background colour (EMF, EPS, GIF, PNG, SVG and TIF only). .TP -\f[CR]--noquietzones\f[R] +\f[CR]\-\-noquietzones\f[R] Disable any quiet zones for symbols that define them by default. .TP -\f[CR]--notext\f[R] +\f[CR]\-\-notext\f[R] Remove the Human Readable Text (HRT). .TP -\f[CR]-o\f[R], \f[CR]--output=FILE\f[R] +\f[CR]\-o\f[R], \f[CR]\-\-output=FILE\f[R] Send the output to \f[I]FILE\f[R]. When not in batch mode, the default is \[lq]out.png\[rq] (or \[lq]out.gif\[rq] if zint built without PNG support). -When in batch mode (\f[CR]--batch\f[R]), special characters can be used -to format the output filenames: +When in batch mode (\f[CR]\-\-batch\f[R]), special characters can be +used to format the output filenames: .RS .IP .EX @@ -322,33 +324,33 @@ Any other Insert literally .EE .RE .TP -\f[CR]--primary=STRING\f[R] +\f[CR]\-\-primary=STRING\f[R] For MaxiCode, set the content of the primary message. For GS1 Composite symbols, set the content of the linear symbol. .TP -\f[CR]--quietzones\f[R] +\f[CR]\-\-quietzones\f[R] Add compliant quiet zones for symbols that specify them. -This is in addition to any whitespace specified by \f[CR]-w\f[R] | -\f[CR]--whitesp\f[R] or \f[CR]--vwhitesp\f[R]. +This is in addition to any whitespace specified by \f[CR]\-w\f[R] | +\f[CR]\-\-whitesp\f[R] or \f[CR]\-\-vwhitesp\f[R]. .TP -\f[CR]-r\f[R], \f[CR]--reverse\f[R] +\f[CR]\-r\f[R], \f[CR]\-\-reverse\f[R] Reverse the foreground and background colours (white on black). Known as \[lq]reflectance reversal\[rq] or \[lq]reversed reflectance\[rq]. .TP -\f[CR]--rotate=INTEGER\f[R] +\f[CR]\-\-rotate=INTEGER\f[R] Rotate the symbol by \f[I]INTEGER\f[R] degrees, where \f[I]INTEGER\f[R] can be 0, 90, 270 or 360. .TP -\f[CR]--rows=INTEGER\f[R] -Set the number of rows for Codablock-F or PDF417 to \f[I]INTEGER\f[R]. +\f[CR]\-\-rows=INTEGER\f[R] +Set the number of rows for Codablock\-F or PDF417 to \f[I]INTEGER\f[R]. It will also set the minimum number of rows for Code 16K or Code 49, and the maximum number of rows for GS1 DataBar Expanded Stacked (DBAR_EXPSTK). .TP -\f[CR]--scale=NUMBER\f[R] -Adjust the size of the X-dimension. -\f[I]NUMBER\f[R] may be floating-point, and is multiplied by 2 (except +\f[CR]\-\-scale=NUMBER\f[R] +Adjust the size of the X\-dimension. +\f[I]NUMBER\f[R] may be floating\-point, and is multiplied by 2 (except for MaxiCode) before being applied. The default scale is 1. .RS @@ -356,19 +358,19 @@ The default scale is 1. For MaxiCode, the scale is multiplied by 10 for raster output, by 40 for EMF output, and by 2 otherwise. .PP -Increments of 0.5 (half-integers) are recommended for non-MaxiCode +Increments of 0.5 (half\-integers) are recommended for non\-MaxiCode raster output (BMP, GIF, PCX, PNG and TIF). .PP -See also \f[CR]--scalexdimdp\f[R] below. +See also \f[CR]\-\-scalexdimdp\f[R] below. .RE .TP -\f[CR]--scalexdimdp=X[,R]\f[R] -Scale the image according to X-dimension \f[I]X\f[R] and resolution +\f[CR]\-\-scalexdimdp=X[,R]\f[R] +Scale the image according to X\-dimension \f[I]X\f[R] and resolution \f[I]R\f[R], where \f[I]X\f[R] is in mm and \f[I]R\f[R] is in dpmm (dots per mm). -\f[I]X\f[R] and \f[I]R\f[R] may be floating-point. +\f[I]X\f[R] and \f[I]R\f[R] may be floating\-point. \f[I]R\f[R] is optional and defaults to 12 dpmm (approximately 300 dpi). -\f[I]X\f[R] may be zero in which case a symbology-specific default is +\f[I]X\f[R] may be zero in which case a symbology\-specific default is used. .RS .PP @@ -376,16 +378,16 @@ The scaling takes into account the output filetype, and deals with all the details mentioned above. Units may be specified for \f[I]X\f[R] by appending \[lq]in\[rq] (inch) or \[lq]mm\[rq], and for \f[I]R\f[R] by appending \[lq]dpi\[rq] (dots -per inch) or \[lq]dpmm\[rq] - -e.g.\ \f[CR]--scalexdimdp=0.013in,300dpi\f[R]. +per inch) or \[lq]dpmm\[rq] \- +e.g.\ \f[CR]\-\-scalexdimdp=0.013in,300dpi\f[R]. .RE .TP -\f[CR]--scmvv=INTEGER\f[R] +\f[CR]\-\-scmvv=INTEGER\f[R] For MaxiCode, prefix the Structured Carrier Message (SCM) with \f[CR]\[dq][)>\[rs]R01\[rs]Gvv\[dq]\f[R], where \f[CR]vv\f[R] is a -2-digit \f[I]INTEGER\f[R]. +2\-digit \f[I]INTEGER\f[R]. .TP -\f[CR]--secure=INTEGER\f[R] +\f[CR]\-\-secure=INTEGER\f[R] Set the error correction level (ECC) to \f[I]INTEGER\f[R]. The meaning is specific to the following matrix symbols (all except PDF417 are approximate): @@ -403,28 +405,28 @@ Ultracode 1 to 6 (0%, 5%, 9%, 17%, 25%, 33%) .EE .RE .TP -\f[CR]--segN=ECI,DATA\f[R] +\f[CR]\-\-segN=ECI,DATA\f[R] Set the \f[I]ECI\f[R] & \f[I]DATA\f[R] content for segment N, where N is 1 to 9. -\f[CR]-d\f[R] | \f[CR]--data\f[R] must still be given, and counts as -segment 0, its ECI given by \f[CR]--eci\f[R]. +\f[CR]\-d\f[R] | \f[CR]\-\-data\f[R] must still be given, and counts as +segment 0, its ECI given by \f[CR]\-\-eci\f[R]. Segments must be consecutive. .TP -\f[CR]--separator=INTEGER\f[R] +\f[CR]\-\-separator=INTEGER\f[R] Set the height of row separator bars for stacked symbologies, where -\f[I]INTEGER\f[R] is in integral multiples of the X-dimension. +\f[I]INTEGER\f[R] is in integral multiples of the X\-dimension. The default is zero. .TP -\f[CR]--small\f[R] +\f[CR]\-\-small\f[R] Use small text for Human Readable Text (HRT). .TP -\f[CR]--square\f[R] +\f[CR]\-\-square\f[R] For Data Matrix symbols, exclude rectangular sizes when considering automatic sizes. -See also \f[CR]--dmre\f[R]. +See also \f[CR]\-\-dmre\f[R]. .TP -\f[CR]--structapp=I,C[,ID]\f[R] -Set Structured Append info, where \f[I]I\f[R] is the 1-based index, +\f[CR]\-\-structapp=I,C[,ID]\f[R] +Set Structured Append info, where \f[I]I\f[R] is the 1\-based index, \f[I]C\f[R] is the total number of symbols in the sequence, and \f[I]ID\f[R], which is optional, is the identifier that all symbols in the sequence share. @@ -432,21 +434,21 @@ Structured Append is supported by Aztec Code, Code One, Data Matrix, DotCode, Grid Matrix, MaxiCode, MicroPDF417, PDF417, QR Code and Ultracode. .TP -\f[CR]-t\f[R], \f[CR]--types\f[R] +\f[CR]\-t\f[R], \f[CR]\-\-types\f[R] Display the table of barcode types (symbologies). -The numbers or names can be used with \f[CR]-b\f[R] | -\f[CR]--barcode\f[R]. +The numbers or names can be used with \f[CR]\-b\f[R] | +\f[CR]\-\-barcode\f[R]. .TP -\f[CR]--textgap=NUMBER\f[R] +\f[CR]\-\-textgap=NUMBER\f[R] Adjust the gap between the barcode and the Human Readable Text (HRT). -\f[I]NUMBER\f[R] is in X-dimensions, and may be floating-point. -Maximum is 10 and minimum is -5. +\f[I]NUMBER\f[R] is in X\-dimensions, and may be floating\-point. +Maximum is 10 and minimum is \-5. The default is 1. .TP -\f[CR]--vers=INTEGER\f[R] +\f[CR]\-\-vers=INTEGER\f[R] Set the symbol version (size, check digits, other options) to \f[I]INTEGER\f[R]. -The meaning is symbol-specific. +The meaning is symbol\-specific. .RS .PP For most matrix symbols, it specifies size: @@ -584,9 +586,9 @@ Code 93 1 (hide the default check characters) EXCODE39 1 or 2 (add visible or hidden check digit) LOGMARS 1 or 2 (add visible or hidden check digit) MSI Plessey 0 to 6 (none to various visible options) - 1, 2 (mod-10, mod-10 + mod-10) - 3, 4 (mod-11 IBM, mod-11 IBM + mod-10) - 5, 6 (mod-11 NCR, mod-11 NCR + mod-10) + 1, 2 (mod\-10, mod\-10 + mod\-10) + 3, 4 (mod\-11 IBM, mod\-11 IBM + mod\-10) + 5, 6 (mod\-11 NCR, mod\-11 NCR + mod\-10) +10 (hide) .EE .PP @@ -602,25 +604,26 @@ VIN 1 (add international prefix) .EE .RE .TP -\f[CR]-v\f[R], \f[CR]--version\f[R] +\f[CR]\-v\f[R], \f[CR]\-\-version\f[R] Display zint version. .TP -\f[CR]--vwhitesp=INTEGER\f[R] +\f[CR]\-\-vwhitesp=INTEGER\f[R] Set the height of vertical whitespace above and below the barcode, where -\f[I]INTEGER\f[R] is in integral multiples of the X-dimension. +\f[I]INTEGER\f[R] is in integral multiples of the X\-dimension. .TP -\f[CR]-w\f[R], \f[CR]--whitesp=INTEGER\f[R] +\f[CR]\-w\f[R], \f[CR]\-\-whitesp=INTEGER\f[R] Set the width of horizontal whitespace either side of the barcode, where -\f[I]INTEGER\f[R] is in integral multiples of the X-dimension. +\f[I]INTEGER\f[R] is in integral multiples of the X\-dimension. .TP -\f[CR]--werror\f[R] +\f[CR]\-\-werror\f[R] Convert all warnings into errors. .SH EXIT STATUS .TP \f[CR]0\f[R] -Success (including when given informational options \f[CR]-h\f[R] | -\f[CR]--help\f[R], \f[CR]-e\f[R] | \f[CR]--ecinos\f[R], \f[CR]-t\f[R] | -\f[CR]--types\f[R], \f[CR]-v\f[R] | \f[CR]--version\f[R]). +Success (including when given informational options \f[CR]\-h\f[R] | +\f[CR]\-\-help\f[R], \f[CR]\-e\f[R] | \f[CR]\-\-ecinos\f[R], +\f[CR]\-t\f[R] | \f[CR]\-\-types\f[R], \f[CR]\-v\f[R] | +\f[CR]\-\-version\f[R]). .TP \f[CR]1\f[R] Human Readable Text was truncated (maximum 199 bytes) @@ -663,44 +666,44 @@ Memory allocation (malloc) failure (\f[CR]ZINT_ERROR_MEMORY\f[R]) Error writing to output file (\f[CR]ZINT_ERROR_FILE_WRITE\f[R]) .TP \f[CR]13\f[R] -Error counterpart of warning if \f[CR]--werror\f[R] given +Error counterpart of warning if \f[CR]\-\-werror\f[R] given (\f[CR]ZINT_ERROR_USES_ECI\f[R]) .TP \f[CR]14\f[R] -Error counterpart of warning if \f[CR]--werror\f[R] given +Error counterpart of warning if \f[CR]\-\-werror\f[R] given (\f[CR]ZINT_ERROR_NONCOMPLIANT\f[R]) .TP \f[CR]15\f[R] -Error counterpart of warning if \f[CR]--werror\f[R] given +Error counterpart of warning if \f[CR]\-\-werror\f[R] given (\f[CR]ZINT_ERROR_HRT_TRUNCATED\f[R]) .SH EXAMPLES Create \[lq]out.png\[rq] (or \[lq]out.gif\[rq] if zint built without PNG support) in the current directory, as a Code 128 symbol. .IP .EX -zint -d \[aq]This Text\[aq] +zint \-d \[aq]This Text\[aq] .EE .PP Create \[lq]qr.svg\[rq] in the current directory, as a QR Code symbol. .IP .EX -zint -b QRCode -d \[aq]This Text\[aq] -o \[aq]qr.svg\[aq] +zint \-b QRCode \-d \[aq]This Text\[aq] \-o \[aq]qr.svg\[aq] .EE .PP Use batch mode to read from an input file \[lq]ean13nos.txt\[rq] -containing 13-digit GTINs, to create a series of EAN-13 barcodes, +containing 13\-digit GTINs, to create a series of EAN\-13 barcodes, formatting the output filenames to \[lq]ean001.gif\[rq], \[lq]ean002.gif\[rq] etc. using the special character \[lq]\[ti]\[rq]. .IP .EX -zint -b EANX --batch -i \[aq]ean13nos.txt\[aq] -o \[aq]ean\[ti]\[ti]\[ti].gif\[aq] +zint \-b EANX \-\-batch \-i \[aq]ean13nos.txt\[aq] \-o \[aq]ean\[ti]\[ti]\[ti].gif\[aq] .EE .SH BUGS Please send bug reports to https://sourceforge.net/p/zint/tickets/. .SH SEE ALSO Full documention for \f[CR]zint\f[R] (and the API \f[CR]libzint\f[R] and -the GUI \f[CR]zint-qt\f[R]) is available from +the GUI \f[CR]zint\-qt\f[R]) is available from .IP .EX https://zint.org.uk/manual/ @@ -715,13 +718,13 @@ and at Zint is designed to be compliant with a number of international standards, including: .PP -ISO/IEC 24778:2008, ANSI/AIM BC12-1998, EN 798:1996, AIM ISS-X-24 +ISO/IEC 24778:2008, ANSI/AIM BC12\-1998, EN 798:1996, AIM ISS\-X\-24 (1995), ISO/IEC 15417:2007, EN 12323:2005, ISO/IEC 16388:2007, ANSI/AIM -BC6-2000, ANSI/AIM BC5-1995, AIM USS Code One (1994), ISO/IEC +BC6\-2000, ANSI/AIM BC5\-1995, AIM USS Code One (1994), ISO/IEC 16022:2006, ISO/IEC 21471:2019, ISO/IEC 15420:2009, AIMD014 (v 1.63) (2008), ISO/IEC 24723:2010, ISO/IEC 24724:2011, ISO/IEC 20830:2021, 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 +15438:2015, ISO/IEC 18004:2015, ISO/IEC 23941:2022, AIM ITS/04\-023 (2022) .SH COPYRIGHT Copyright © 2023 Robin Stuart. diff --git a/frontend/zint.rc b/frontend/zint.rc index e9f76819..0fc9904b 100644 --- a/frontend/zint.rc +++ b/frontend/zint.rc @@ -30,7 +30,7 @@ BEGIN VALUE "FileDescription", "zint barcode generator\0" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "zint.exe\0" - VALUE "LegalCopyright", "Copyright © 2022 Robin Stuart & BogDan Vatra\0" + VALUE "LegalCopyright", "Copyright © 2023 Robin Stuart & BogDan Vatra\0" VALUE "OriginalFilename", "zint.exe\0" VALUE "ProductName", "zint\0" VALUE "ProductVersion", VER_FILEVERSION_STR diff --git a/frontend_qt/res/qtZint.rc b/frontend_qt/res/qtZint.rc index 1d4bdf50..a69839b3 100644 --- a/frontend_qt/res/qtZint.rc +++ b/frontend_qt/res/qtZint.rc @@ -58,7 +58,7 @@ BEGIN VALUE "InternalName", "qtZint" - VALUE "LegalCopyright", "Copyright © 2022 Robin Stuart & BogDan Vatra" + VALUE "LegalCopyright", "Copyright © 2023 Robin Stuart & BogDan Vatra" VALUE "License", "GNU General Public License version 3" diff --git a/tools/update_version.php b/tools/update_version.php index a793f8b3..e9a9e027 100644 --- a/tools/update_version.php +++ b/tools/update_version.php @@ -142,6 +142,35 @@ function rc_replace($file, $rc_str1, $rc_str2, $year = '') { } } +function year_replace($file, $year) { + global $basename; + + if (($get = file_get_contents($file)) === false) { + exit("$basename: ERROR: Could not read file \"$file\"" . PHP_EOL); + } + + $match_pattern = '/Copyright /'; + $lines = explode("\n", $get); + $done = 0; + foreach ($lines as $li => $line) { + if (preg_match($match_pattern, $line)) { + $cnt = 0; + $lines[$li] = preg_replace('/[0-9]+/', $year, $line, 1, $cnt); + if ($cnt === 0 || $lines[$li] === NULL) { + exit("$basename: ERROR: Could not replace \"$match_pattern\" in file \"$file\"" . PHP_EOL); + } + $done++; + break; + } + } + if ($done !== 1) { + exit("$basename: ERROR: Failed to replace Copyright year in file \"$file\"" . PHP_EOL); + } + if (!file_put_contents($file, implode("\n", $lines))) { + exit("$basename: ERROR: Could not write file \"$file\"" . PHP_EOL); + } +} + // CMakeLists.txt $file = $data_dirname . 'CMakeLists.txt'; @@ -243,6 +272,10 @@ version_replace(2, $data_dirname . 'backend_tcl/zint_tcl.dsp', '/ZINT_VERSION="\ version_replace(1, $data_dirname . 'backend_tcl/lib/zint/pkgIndex.tcl', '/zint /', '/zint [0-9.]+/', 'zint ' . $v_base_str . ''); +// backend_tcl/licence.txt + +year_replace($data_dirname . 'backend_tcl/licence.txt', $year); + // frontend/zint.rc rc_replace($data_dirname . 'frontend/zint.rc', $rc_str1, $rc_str2, $year); diff --git a/win32/libzint.vcxproj b/win32/libzint.vcxproj index f5aded69..558d30a4 100644 --- a/win32/libzint.vcxproj +++ b/win32/libzint.vcxproj @@ -57,7 +57,7 @@ Disabled ..\..\zlib;..\..\lpng;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.13.0";BUILD_ZINT_DLL;DEBUG;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.12.0.9";BUILD_ZINT_DLL;DEBUG;%(PreprocessorDefinitions) true EnableFastChecks @@ -91,7 +91,7 @@ MaxSpeed false ..\..\zlib;..\..\lpng;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.13.0";BUILD_ZINT_DLL;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.12.0.9";BUILD_ZINT_DLL;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/win32/zint.vcxproj b/win32/zint.vcxproj index 42ee5ee4..6e459dad 100644 --- a/win32/zint.vcxproj +++ b/win32/zint.vcxproj @@ -53,7 +53,7 @@ Disabled ..\backend;%(AdditionalIncludeDirectories) - WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.13.0";ZINT_DLL;%(PreprocessorDefinitions) + WIN32;_WIN32;_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.12.0.9";ZINT_DLL;%(PreprocessorDefinitions) true EnableFastChecks @@ -72,7 +72,7 @@ MaxSpeed ..\backend;%(AdditionalIncludeDirectories) - WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.13.0";ZINT_DLL;%(PreprocessorDefinitions) + WIN32;_WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;ZINT_VERSION="2.12.0.9";ZINT_DLL;%(PreprocessorDefinitions) true MultiThreaded diff --git a/win32/zint_cmdline_vc6/zint.rc b/win32/zint_cmdline_vc6/zint.rc index 249618c0..3710f921 100644 --- a/win32/zint_cmdline_vc6/zint.rc +++ b/win32/zint_cmdline_vc6/zint.rc @@ -55,7 +55,7 @@ BEGIN VALUE "FileDescription", "zint barcode generator\0" VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", "zint.exe\0" - VALUE "LegalCopyright", "Copyright © 2022 Robin Stuart\0" + VALUE "LegalCopyright", "Copyright © 2023 Robin Stuart\0" VALUE "LegalTrademarks", "\0" VALUE "License", "GNU General Public License version 3\0" VALUE "OriginalFilename", "zint.exe\0"