diff --git a/backend/composite.c b/backend/composite.c index 4807429a..cfb1564e 100644 --- a/backend/composite.c +++ b/backend/composite.c @@ -1298,7 +1298,7 @@ INTERNAL int composite(struct zint_symbol *symbol, unsigned char source[], int l error_number = 0; pri_len = (int) strlen(symbol->primary); if (pri_len == 0) { - strcpy(symbol->errtxt, "445: No primary (linear) message in 2D composite"); + strcpy(symbol->errtxt, "445: No primary (linear) message"); return ZINT_ERROR_INVALID_OPTION; /* TODO: change to more appropiate ZINT_ERROR_INVALID_DATA */ } diff --git a/backend/tests/test_composite.c b/backend/tests/test_composite.c index 581d007e..d8a0711a 100644 --- a/backend/tests/test_composite.c +++ b/backend/tests/test_composite.c @@ -3397,7 +3397,7 @@ static void test_input(int index, int debug) { /* 94*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, -1, -1, -1, "12345678901231", "[20]1A", 0, 11, 56, "" }, /* 95*/ { BARCODE_DBAR_OMNSTK_CC, -1, -1, -1, -1, "12345678901231", "[02]12345678901234", ZINT_WARN_NONCOMPLIANT, 11, 56, "Warning 261: AI (02) position 14: Bad checksum '4', expected '1' in 2D component" }, /* 96*/ { BARCODE_DBAR_OMNSTK_CC, GS1NOCHECK_MODE, -1, -1, -1, "12345678901231", "[02]12345678901234", 0, 11, 56, "" }, - /* 97*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, "", "[20]12", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 445: No primary (linear) message in 2D composite" }, + /* 97*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, "", "[20]12", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 445: No primary (linear) message" }, /* 98*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, "[01]12345678901231", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, 31, 273, "" }, // Tries CC-A then CC-B then CC-C - ensure errtxt empty /* 99*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, "[01]12345678901231[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890123456789012345678901234", "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890123456789012345678901234567890123", 0, 29, 702, "" }, // Max linear and CC-C input /*100*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1,"[01]12345678901231[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890123456789012345678901234", "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[97]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[98]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[99]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[92]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[93]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[94]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[95]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL[96]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL", ZINT_ERROR_TOO_LONG, -1, -1, "Error 442: Input too long for selected 2D component" }, // Max linear and oversized CC-C input diff --git a/backend/tests/test_library.c b/backend/tests/test_library.c index bafdd49e..e4e596ad 100644 --- a/backend/tests/test_library.c +++ b/backend/tests/test_library.c @@ -350,7 +350,7 @@ static void test_input_data(int index, int debug) { /* 2*/ { BARCODE_GS1_128, -1, "", -1, "", ZINT_ERROR_INVALID_DATA, "Error 778: No input data" }, /* 3*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", -1, "[10]121212", 0, "" }, /* 4*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", -1, "", ZINT_ERROR_INVALID_DATA, "Error 779: No composite data in 2D component" }, - /* 5*/ { BARCODE_GS1_128_CC, -1, "", -1, "[10]121212", ZINT_ERROR_INVALID_OPTION, "Error 445: No primary (linear) message in 2D composite" }, + /* 5*/ { BARCODE_GS1_128_CC, -1, "", -1, "[10]121212", ZINT_ERROR_INVALID_OPTION, "Error 445: No primary (linear) message" }, /* 6*/ { BARCODE_DATAMATRIX, -1, "", -1, "", ZINT_ERROR_INVALID_DATA, "Error 778: No input data (segment 0 empty)" }, }; int data_size = ARRAY_SIZE(data); diff --git a/docs/images/gui_appearance.png b/docs/images/gui_appearance.png index 28d23095..eac79608 100644 Binary files a/docs/images/gui_appearance.png and b/docs/images/gui_appearance.png differ diff --git a/docs/images/gui_aztec.png b/docs/images/gui_aztec.png index 3220a558..d99d41e4 100644 Binary files a/docs/images/gui_aztec.png and b/docs/images/gui_aztec.png differ diff --git a/docs/images/gui_composite.png b/docs/images/gui_composite.png index 4c739be2..fa78b8ef 100644 Binary files a/docs/images/gui_composite.png and b/docs/images/gui_composite.png differ diff --git a/docs/images/gui_main.png b/docs/images/gui_main.png index f11d01c4..0430e9c3 100644 Binary files a/docs/images/gui_main.png and b/docs/images/gui_main.png differ diff --git a/docs/images/gui_segs.png b/docs/images/gui_segs.png index 178e7a7f..366067bf 100644 Binary files a/docs/images/gui_segs.png and b/docs/images/gui_segs.png differ diff --git a/docs/manual.pmd b/docs/manual.pmd index 90a89092..8119ab5c 100644 --- a/docs/manual.pmd +++ b/docs/manual.pmd @@ -545,7 +545,7 @@ Value 9 `BARCODE_EXCODE39` Extended Code 3 of 9 (Code 39+) - 13 `BARCODE_EANX` EAN (including EAN-8 and EAN-13) + 13 `BARCODE_EANX` EAN (EAN-2, EAN-5, EAN-8 and EAN-13) 14 `BARCODE_EANX_CHK` EAN + Check Digit @@ -811,9 +811,9 @@ A `--quietzones` option is also available which adds quiet zones compliant with the symbology's specification. This is in addition to any whitespace specified with the `--whitesp` or `--vwhitesp` switches. -Note that Codablock-F, Code 16K, Code 49, ITF-14, EAN-13, EAN-8, EAN-5, EAN-2, -ISBN, UPC-A and UPC-E have compliant quiet zones added by default. This can be -disabled with the option `--noquietzones`. +Note that Codablock-F, Code 16K, Code 49, ITF-14, EAN-2 to EAN-13, ISBN, UPC-A +and UPC-E have compliant quiet zones added by default. This can be disabled with +the option `--noquietzones`. ## 4.6 Adding Boundary Bars and Boxes @@ -1986,8 +1986,8 @@ Table: API `output_options` Values {#tbl:api_output_options tag="$ $"} [^6]: The `BARCODE_BIND` flag is always set for Codablock-F, Code 16K and Code 49. Special considerations apply to ITF-14 - see [6.1.2.6 ITF-14]. -[^7]: Codablock-F, Code 16K, Code 49, EAN-2 to EAN-13, ISBN, ITF-14, -UPC-A and UPC-E have compliant quiet zones added by default. +[^7]: Codablock-F, Code 16K, Code 49, EAN-2 to EAN-13, ISBN, ITF-14, UPC-A and +UPC-E have compliant quiet zones added by default. \clearpage @@ -2346,7 +2346,7 @@ Identcode is based on Interleaved Code 2 of 5 and is used by Deutsche Post for mailing purposes. Identcode requires an 11-digit numerical input and includes a check digit. -### 6.1.3 Universal Product Code (ISO 15420) +### 6.1.3 UPC (Universal Product Code) (ISO 15420) #### 6.1.3.1 UPC Version A @@ -2413,7 +2413,7 @@ the X-dimension by setting `--addongap` (API `option_2`) to a value between 7 the main bars can be adjusted by setting `--guarddescent` (API `guard_descent`) to a value between 0 and 20 (default 5). -### 6.1.4 European Article Number (ISO 15420) +### 6.1.4 EAN (European Article Number) (ISO 15420) #### 6.1.4.1 EAN-2, EAN-5, EAN-8 and EAN-13 @@ -3051,8 +3051,8 @@ ZBarcode_Encode_and_Print(my_symbol, "[99]1234-abcd", 0, 0); ``` EAN-2 and EAN-5 add-on data can be used with EAN and UPC symbols using the + -symbol as described in sections [6.1.3 Universal Product Code (ISO 15420)] and -[6.1.4 European Article Number (ISO 15420)]. +symbol as described in sections [6.1.3 UPC (Universal Product Code) (ISO 15420)] +and [6.1.4 EAN (European Article Number) (ISO 15420)]. The 2D component of a composite symbol can use one of three systems: CC-A, CC-B and CC-C, as described below. The 2D component type can be selected diff --git a/docs/manual.txt b/docs/manual.txt index 246f3b32..104feb4f 100644 --- a/docs/manual.txt +++ b/docs/manual.txt @@ -80,10 +80,10 @@ June 2022 - 6.1.2.6 ITF-14 - 6.1.2.7 Deutsche Post Leitcode - 6.1.2.8 Deutsche Post Identcode - - 6.1.3 Universal Product Code (ISO 15420) + - 6.1.3 UPC (Universal Product Code) (ISO 15420) - 6.1.3.1 UPC Version A - 6.1.3.2 UPC Version E - - 6.1.4 European Article Number (ISO 15420) + - 6.1.4 EAN (European Article Number) (ISO 15420) - 6.1.4.1 EAN-2, EAN-5, EAN-8 and EAN-13 - 6.1.4.2 SBN, ISBN and ISBN-13 - 6.1.5 Plessey @@ -683,7 +683,7 @@ underscores are optional. 9 BARCODE_EXCODE39 Extended Code 3 of 9 (Code 39+) - 13 BARCODE_EANX EAN (including EAN-8 and EAN-13) + 13 BARCODE_EANX EAN (EAN-2, EAN-5, EAN-8 and EAN-13) 14 BARCODE_EANX_CHK EAN + Check Digit @@ -928,9 +928,9 @@ A --quietzones option is also available which adds quiet zones compliant with the symbology’s specification. This is in addition to any whitespace specified with the --whitesp or --vwhitesp switches. -Note that Codablock-F, Code 16K, Code 49, ITF-14, EAN-13, EAN-8, EAN-5, EAN-2, -ISBN, UPC-A and UPC-E have compliant quiet zones added by default. This can be -disabled with the option --noquietzones. +Note that Codablock-F, Code 16K, Code 49, ITF-14, EAN-2 to EAN-13, ISBN, UPC-A +and UPC-E have compliant quiet zones added by default. This can be disabled with +the option --noquietzones. 4.6 Adding Boundary Bars and Boxes @@ -2338,7 +2338,7 @@ Identcode is based on Interleaved Code 2 of 5 and is used by Deutsche Post for mailing purposes. Identcode requires an 11-digit numerical input and includes a check digit. -6.1.3 Universal Product Code (ISO 15420) +6.1.3 UPC (Universal Product Code) (ISO 15420) 6.1.3.1 UPC Version A @@ -2396,7 +2396,7 @@ and 12. The height in X-dimensions that the guard bars descend below the main bars can be adjusted by setting --guarddescent (API guard_descent) to a value between 0 and 20 (default 5). -6.1.4 European Article Number (ISO 15420) +6.1.4 EAN (European Article Number) (ISO 15420) 6.1.4.1 EAN-2, EAN-5, EAN-8 and EAN-13 @@ -2995,8 +2995,8 @@ be achieved using the API as shown below: ZBarcode_Encode_and_Print(my_symbol, "[99]1234-abcd", 0, 0); EAN-2 and EAN-5 add-on data can be used with EAN and UPC symbols using the + -symbol as described in sections 6.1.3 Universal Product Code (ISO 15420) and -6.1.4 European Article Number (ISO 15420). +symbol as described in sections 6.1.3 UPC (Universal Product Code) (ISO 15420) +and 6.1.4 EAN (European Article Number) (ISO 15420). The 2D component of a composite symbol can use one of three systems: CC-A, CC-B and CC-C, as described below. The 2D component type can be selected diff --git a/frontend_qt/mainWindow.ui b/frontend_qt/mainWindow.ui index 1e80564a..b0c51c06 100644 --- a/frontend_qt/mainWindow.ui +++ b/frontend_qt/mainWindow.ui @@ -11,6 +11,12 @@ 0 + + + 360 + 0 + + Zint Barcode Studio @@ -512,7 +518,7 @@ for this symbology to defaults GS1 Composite symbol settings - GS1 Composite Code + GS1 Composite @@ -1818,7 +1824,8 @@ in X-dimensions - Image scale when output to file + Image scale when output to file +(adjusts the X-dimension) &Printing Scale: @@ -1834,7 +1841,8 @@ in X-dimensions - Image scale when output to file + Image scale when output to file +(adjusts the X-dimension) diff --git a/frontend_qt/mainwindow.cpp b/frontend_qt/mainwindow.cpp index 39aaf2df..9aded534 100644 --- a/frontend_qt/mainwindow.cpp +++ b/frontend_qt/mainwindow.cpp @@ -96,9 +96,9 @@ static const struct bstyle_item bstyle_items[] = { { QSL("DotCode"), BARCODE_DOTCODE }, { QSL("DPD Code"), BARCODE_DPD }, { QSL("Dutch Post KIX"), BARCODE_KIX }, + { QSL("EAN (EAN-2, EAN-5, EAN-8 and EAN-13) (ISO 15420)"), BARCODE_EANX }, { QSL("EAN-14"), BARCODE_EAN14 }, - { QSL("European Article Number (EAN) (ISO 15420)"), BARCODE_EANX }, - { QSL("Facing Identification Mark (FIM)"), BARCODE_FIM }, + { QSL("FIM (Facing Identification Mark)"), BARCODE_FIM }, { QSL("Flattermarken"), BARCODE_FLAT }, { QSL("Grid Matrix"), BARCODE_GRIDMATRIX }, { QSL("GS1 DataBar Expanded (ISO 24724)"), BARCODE_DBAR_EXP }, @@ -108,7 +108,7 @@ static const struct bstyle_item bstyle_items[] = { { QSL("GS1 DataBar Stacked (ISO 24724)"), BARCODE_DBAR_STK }, { QSL("GS1 DataBar Stacked Omnidirectional (ISO 24724)"), BARCODE_DBAR_OMNSTK }, { QSL("Han Xin (Chinese Sensible) Code (ISO 20830)"), BARCODE_HANXIN }, - { QSL("International Standard Book Number (ISBN)"), BARCODE_ISBNX }, + { QSL("ISBN (International Standard Book Number)"), BARCODE_ISBNX }, { QSL("ITF-14"), BARCODE_ITF14 }, { QSL("Japanese Postal Barcode"), BARCODE_JAPANPOST }, { QSL("Korean Postal Barcode"), BARCODE_KOREAPOST }, @@ -132,8 +132,8 @@ static const struct bstyle_item bstyle_items[] = { { QSL("Telepen Numeric"), BARCODE_TELEPEN_NUM }, { QSL("UK Plessey"), BARCODE_PLESSEY }, { QSL("Ultracode"), BARCODE_ULTRA }, - { QSL("Universal Product Code (UPC-A) (ISO 15420)"), BARCODE_UPCA }, - { QSL("Universal Product Code (UPC-E) (ISO 15420)"), BARCODE_UPCE }, + { QSL("UPC-A (ISO 15420)"), BARCODE_UPCA }, + { QSL("UPC-E (ISO 15420)"), BARCODE_UPCE }, { QSL("UPNQR"), BARCODE_UPNQR }, { QSL("USPS Intelligent Mail (OneCode)"), BARCODE_USPS_IMAIL }, { QSL("VIN (Vehicle Identification Number)"), BARCODE_VIN },