Add Royal Mail Mailmark to front end

This commit is contained in:
Robin Stuart 2018-02-09 20:55:17 +00:00
parent 59116f689d
commit 389bcce10f
5 changed files with 43 additions and 32 deletions

View File

@ -147,7 +147,7 @@ int mailmark(struct zint_symbol *symbol, unsigned char source[], int length) {
int i, j; int i, j;
if ((length != 22) && (length != 26)) { if ((length != 22) && (length != 26)) {
strcpy(symbol->errtxt, "Invalid length input"); strcpy(symbol->errtxt, "580: Invalid length input");
return ZINT_ERROR_INVALID_DATA; return ZINT_ERROR_INVALID_DATA;
} }
@ -159,28 +159,28 @@ int mailmark(struct zint_symbol *symbol, unsigned char source[], int length) {
} }
if (is_sane(RUBIDIUM, (unsigned char *) local_source, length) != 0) { if (is_sane(RUBIDIUM, (unsigned char *) local_source, length) != 0) {
strcpy(symbol->errtxt, "Invalid characters or format in input data"); strcpy(symbol->errtxt, "581: Invalid characters or format in input data");
return ZINT_ERROR_INVALID_DATA; return ZINT_ERROR_INVALID_DATA;
} }
// Format is in the range 0-4 // Format is in the range 0-4
format = ctoi(local_source[0]); format = ctoi(local_source[0]);
if ((format < 0) || (format > 4)) { if ((format < 0) || (format > 4)) {
strcpy(symbol->errtxt, "Invalid format"); strcpy(symbol->errtxt, "582: Invalid format");
return ZINT_ERROR_INVALID_DATA; return ZINT_ERROR_INVALID_DATA;
} }
// Version ID is in the range 1-4 // Version ID is in the range 1-4
version_id = ctoi(local_source[1]) - 1; version_id = ctoi(local_source[1]) - 1;
if ((version_id < 0) || (version_id > 3)) { if ((version_id < 0) || (version_id > 3)) {
strcpy(symbol->errtxt, "Invalid Version ID"); strcpy(symbol->errtxt, "583: Invalid Version ID");
return ZINT_ERROR_INVALID_DATA; return ZINT_ERROR_INVALID_DATA;
} }
// Class is in the range 0-9,A-E // Class is in the range 0-9,A-E
class = ctoi(local_source[2]); class = ctoi(local_source[2]);
if ((class < 0) || (class > 14)) { if ((class < 0) || (class > 14)) {
strcpy(symbol->errtxt, "Invalid Class"); strcpy(symbol->errtxt, "584: Invalid Class");
return ZINT_ERROR_INVALID_DATA; return ZINT_ERROR_INVALID_DATA;
} }
@ -191,7 +191,7 @@ int mailmark(struct zint_symbol *symbol, unsigned char source[], int length) {
supply_chain_id *= 10; supply_chain_id *= 10;
supply_chain_id += ctoi(local_source[i]); supply_chain_id += ctoi(local_source[i]);
} else { } else {
strcpy(symbol->errtxt, "Invalid Supply Chain ID"); strcpy(symbol->errtxt, "585: Invalid Supply Chain ID");
return ZINT_ERROR_INVALID_DATA; return ZINT_ERROR_INVALID_DATA;
} }
} }
@ -203,7 +203,7 @@ int mailmark(struct zint_symbol *symbol, unsigned char source[], int length) {
item_id *= 10; item_id *= 10;
item_id += (long) ctoi(local_source[i]); item_id += (long) ctoi(local_source[i]);
} else { } else {
strcpy(symbol->errtxt, "Invalid Item ID"); strcpy(symbol->errtxt, "586: Invalid Item ID");
return ZINT_ERROR_INVALID_DATA; return ZINT_ERROR_INVALID_DATA;
} }
} }
@ -258,7 +258,7 @@ int mailmark(struct zint_symbol *symbol, unsigned char source[], int length) {
// Verify postcode type // Verify postcode type
if (postcode_type != 7) { if (postcode_type != 7) {
if (verify_postcode(postcode, postcode_type) != 0) { if (verify_postcode(postcode, postcode_type) != 0) {
strcpy(symbol->errtxt, "Invalid postcode"); strcpy(symbol->errtxt, "587: Invalid postcode");
return ZINT_ERROR_INVALID_DATA; return ZINT_ERROR_INVALID_DATA;
} }
} }
@ -624,9 +624,9 @@ int mailmark(struct zint_symbol *symbol, unsigned char source[], int length) {
j += 2; j += 2;
} }
symbol->row_height[0] = 3; symbol->row_height[0] = 4;
symbol->row_height[1] = 2; symbol->row_height[1] = 2;
symbol->row_height[2] = 3; symbol->row_height[2] = 4;
symbol->rows = 3; symbol->rows = 3;
symbol->width = j - 1; symbol->width = j - 1;

View File

@ -307,6 +307,7 @@ Numeric Value | Barcode Name
112 | HIBC Aztec Code 112 | HIBC Aztec Code
115 | DotCode 115 | DotCode
116 | Han Xin (Chinese Sensible) Code 116 | Han Xin (Chinese Sensible) Code
121 | Royal Mail 4-state Mailmark
128 | Aztec Runes 128 | Aztec Runes
129 | Code 32 129 | Code 32
130 | Composite Symbol with EAN linear component 130 | Composite Symbol with EAN linear component
@ -982,6 +983,7 @@ Value |
112 | BARCODE_HIBC_AZTEC | HIBC Aztec Code 112 | BARCODE_HIBC_AZTEC | HIBC Aztec Code
115 | BARCODE_DOTCODE | DotCode 115 | BARCODE_DOTCODE | DotCode
116 | BARCODE_HANXIN | Han Xin (Chinese Sensible) Code 116 | BARCODE_HANXIN | Han Xin (Chinese Sensible) Code
121 | BARCODE_MAILMARK | Royal Mail 4-state Mailmark
128 | BARCODE_AZRUNE | Aztec Runes 128 | BARCODE_AZRUNE | Aztec Runes
129 | BARCODE_CODE32 | Code 32 129 | BARCODE_CODE32 | Code 32
130 | BARCODE_EANX_CC | Composite Symbol with EAN linear component 130 | BARCODE_EANX_CC | Composite Symbol with EAN linear component
@ -1312,8 +1314,8 @@ This option adds a leading '+' character and a trailing modulo-49 check digit
to a standard Code 39 symbol as required by the Health Industry Barcode to a standard Code 39 symbol as required by the Health Industry Barcode
standards. standards.
6.1.8.8 Vehicle Identification Number 6.1.8.8 Vehicle Identification Number (VIN)
------------------------------------- -------------------------------------------
This option includes a verification stage for vehicle identification numbers This option includes a verification stage for vehicle identification numbers
used in North America which include a check digit. For European vehicle used in North America which include a check digit. For European vehicle
identification numbers use Standard Code 39. identification numbers use Standard Code 39.
@ -1719,7 +1721,14 @@ A-Z and usually includes delivery postcode followed by house number. For
example "W1J0TR01" for 1 Picadilly Circus in London. Check digit data is example "W1J0TR01" for 1 Picadilly Circus in London. Check digit data is
generated by Zint. generated by Zint.
6.5.4 USPS OneCode 6.5.4 Royal Mail 4-State Mailmark
---------------------------------
Developed in 2014 as a replacement for RM4SCC this 4-state symbol includes
Reed Solomon error correction. Input is a pre-formatted alpanumeric string of
22 (for Barcode C) or 26 (for Barcode L) characters, producing a symbol with
66 or 78 bars respectively.
6.5.5 USPS OneCode
------------------ ------------------
Also known as the Intelligent Mail Barcode and used in the US by the United Also known as the Intelligent Mail Barcode and used in the US by the United
States Postal Service (USPS), the OneCode system replaced the PostNet and States Postal Service (USPS), the OneCode system replaced the PostNet and
@ -1737,7 +1746,7 @@ example all of the following inputs are valid data entries:
"01234567094987654321-01234567891" "01234567094987654321-01234567891"
6.5.5 Japanese Postal Code 6.5.6 Japanese Postal Code
-------------------------- --------------------------
Used for address data on mail items for Japan Post. Accepted values are 0-9, Used for address data on mail items for Japan Post. Accepted values are 0-9,
A-Z and Dash (-). A modulo 19 check digit is added by Zint. A-Z and Dash (-). A modulo 19 check digit is added by Zint.

View File

@ -50,23 +50,23 @@ void types(void) {
"16: GS1-128 67: AP Routing 112: HIBC Aztec Code\n" "16: GS1-128 67: AP Routing 112: HIBC Aztec Code\n"
"18: Codabar 68: AP Redirection 115: DotCode\n" "18: Codabar 68: AP Redirection 115: DotCode\n"
"20: Code 128 69: ISBN 116: Han Xin Code\n" "20: Code 128 69: ISBN 116: Han Xin Code\n"
"21: Leitcode 70: RM4SCC 128: Aztec Runes\n" "21: Leitcode 70: RM4SCC 121: RM Mailmark\n"
"22: Identcode 71: Data Matrix 129: Code 32\n" "22: Identcode 71: Data Matrix 128: Aztec Runes\n"
"23: Code 16k 72: EAN-14 130: Comp EAN\n" "23: Code 16k 72: EAN-14 129: Code 32\n"
"24: Code 49 73: VIN (North America) 131: Comp GS1-128\n" "24: Code 49 73: VIN (North America) 130: Comp EAN\n"
"25: Code 93 74: Codablock-F 132: Comp DataBar Omni\n" "25: Code 93 74: Codablock-F 131: Comp GS1-128\n"
"28: Flattermarken 75: NVE-18 133: Comp DataBar Ltd\n" "28: Flattermarken 75: NVE-18 132: Comp DataBar Omni\n"
"29: GS1 DataBar Omni 76: Japanese Post 134: Comp DataBar ExpOm\n" "29: GS1 DataBar Omni 76: Japanese Post 133: Comp DataBar Ltd\n"
"30: GS1 DataBar Ltd 77: Korea Post 135: Comp UPC-A\n" "30: GS1 DataBar Ltd 77: Korea Post 134: Comp DataBar ExpOm\n"
"31: GS1 DataBar ExpOm 79: GS1 DataBar Stack 136: Comp UPC-E\n" "31: GS1 DataBar ExpOm 79: GS1 DataBar Stack 135: Comp UPC-A\n"
"32: Telepen Alpha 80: GS1 DataBar Stack Omni 137: Comp DataBar Stack\n" "32: Telepen Alpha 80: GS1 DataBar Stack Omni 136: Comp UPC-E\n"
"34: UPC-A 81: GS1 DataBar ESO 138: Comp DataBar Stack Omni\n" "34: UPC-A 81: GS1 DataBar ESO 137: Comp DataBar Stack\n"
"35: UPC-A + Check 82: Planet 139: Comp DataBar ESO\n" "35: UPC-A + Check 82: Planet 138: Comp DataBar Stack Omni\n"
"37: UPC-E 84: MicroPDF 140: Channel Code\n" "37: UPC-E 84: MicroPDF 139: Comp DataBar ESO\n"
"38: UPC-E + Check 85: USPS OneCode 141: Code One\n" "38: UPC-E + Check 85: USPS OneCode 140: Channel Code\n"
"40: Postnet 86: UK Plessey 142: Grid Matrix\n" "40: Postnet 86: UK Plessey 141: Code One\n"
"47: MSI Plessey 87: Telepen Numeric 143: UPNQR\n" "47: MSI Plessey 87: Telepen Numeric 142: Grid Matrix\n"
"49: FIM 89: ITF-14\n" "49: FIM 89: ITF-14 143: UPNQR\n"
"50: Logmars 90: KIX Code\n" "50: Logmars 90: KIX Code\n"
); );
} }

View File

@ -102,6 +102,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags fl)
"Postnet", "Postnet",
"QR Code (ISO 18004)", "QR Code (ISO 18004)",
"Royal Mail 4-state Barcode", "Royal Mail 4-state Barcode",
"Royal Mail 4-state Mailmark",
"Telepen", "Telepen",
"Telepen Numeric", "Telepen Numeric",
"UK Plessey", "UK Plessey",
@ -268,7 +269,7 @@ void MainWindow::about()
"<p>A free barcode generator" "<p>A free barcode generator"
"<p>Instruction manual is available at the project homepage:<br>" "<p>Instruction manual is available at the project homepage:<br>"
"<a href=\"http://www.zint.org.uk\">http://www.zint.org.uk</a>" "<a href=\"http://www.zint.org.uk\">http://www.zint.org.uk</a>"
"<p>Copyright &copy; 2006-2017 Robin Stuart and others.<br>" "<p>Copyright &copy; 2006-2018 Robin Stuart and others.<br>"
"Qt back end by BogDan Vatra<br>" "Qt back end by BogDan Vatra<br>"
"Windows port by Harald Oehlmann</p>" "Windows port by Harald Oehlmann</p>"
"<p>Qt version " QT_VERSION_STR "<p>Qt version " QT_VERSION_STR

View File

@ -97,6 +97,7 @@ public:
POSTNET =40, POSTNET =40,
QRCODE =58, QRCODE =58,
RM4SCC =70, RM4SCC =70,
MAILMARK =121,
TELEPEN =32, TELEPEN =32,
TELEPEN_NUM =87, TELEPEN_NUM =87,
PLESSEY =86, PLESSEY =86,