diff --git a/backend/aztec.c b/backend/aztec.c index d94f6a13..a9fe53c5 100644 --- a/backend/aztec.c +++ b/backend/aztec.c @@ -31,6 +31,7 @@ */ /* vim: set ts=4 sw=4 et : */ +#include #include #ifdef _MSC_VER #include @@ -865,6 +866,7 @@ INTERNAL int aztec(struct zint_symbol *symbol, unsigned char source[], int lengt } error_number = aztec_text_process(source, length, binary_string, gs1, symbol->eci, &data_length, debug); + assert(data_length > 0); /* Suppress clang-tidy warning: clang-analyzer-core.UndefinedBinaryOperatorResult */ if (error_number != 0) { strcpy(symbol->errtxt, "502: Input too long or too many extended ASCII characters"); diff --git a/backend/tests/test_raster.c b/backend/tests/test_raster.c index b18be636..56dab02f 100644 --- a/backend/tests/test_raster.c +++ b/backend/tests/test_raster.c @@ -1202,6 +1202,487 @@ static void test_buffer_plot(int index, int generate, int debug) { testFinish(); } +static void test_height(int index, int generate, int debug) { + + testStart(""); + + int ret; + struct item { + int symbology; + int height; + char *data; + char *composite; + int ret; + + int expected_height; + int expected_rows; + int expected_width; + int expected_bitmap_width; + int expected_bitmap_height; + + const char *comment; + }; + struct item data[] = { + /* 0*/ { BARCODE_CODE11, 1, "1234567890", "", 0, 5, 1, 108, 216, 10, "" }, + /* 1*/ { BARCODE_CODE11, 4, "1234567890", "", 0, 5, 1, 108, 216, 10, "" }, + /* 2*/ { BARCODE_CODE11, 10, "1234567890", "", 0, 10, 1, 108, 216, 20, "" }, + /* 3*/ { BARCODE_C25STANDARD, 1, "1234567890", "", 0, 5, 1, 117, 234, 10, "" }, + /* 4*/ { BARCODE_C25STANDARD, 4, "1234567890", "", 0, 5, 1, 117, 234, 10, "" }, + /* 5*/ { BARCODE_C25STANDARD, 11, "1234567890", "", 0, 11, 1, 117, 234, 22, "" }, + /* 6*/ { BARCODE_C25INTER, 1, "1234567890", "", 0, 5, 1, 99, 198, 10, "" }, + /* 7*/ { BARCODE_C25INTER, 4, "1234567890", "", 0, 5, 1, 99, 198, 10, "" }, + /* 8*/ { BARCODE_C25INTER, 15, "1234567890", "", 0, 15, 1, 99, 198, 30, "" }, + /* 9*/ { BARCODE_C25IATA, 1, "1234567890", "", 0, 5, 1, 149, 298, 10, "" }, + /* 10*/ { BARCODE_C25IATA, 4, "1234567890", "", 0, 5, 1, 149, 298, 10, "" }, + /* 11*/ { BARCODE_C25IATA, 30, "1234567890", "", 0, 30, 1, 149, 298, 60, "" }, + /* 12*/ { BARCODE_C25LOGIC, 1, "1234567890", "", 0, 5, 1, 109, 218, 10, "" }, + /* 13*/ { BARCODE_C25LOGIC, 4, "1234567890", "", 0, 5, 1, 109, 218, 10, "" }, + /* 14*/ { BARCODE_C25LOGIC, 41, "1234567890", "", 0, 41, 1, 109, 218, 82, "" }, + /* 15*/ { BARCODE_C25IND, 1, "1234567890", "", 0, 5, 1, 159, 318, 10, "" }, + /* 16*/ { BARCODE_C25IND, 4, "1234567890", "", 0, 5, 1, 159, 318, 10, "" }, + /* 17*/ { BARCODE_C25IND, 21, "1234567890", "", 0, 21, 1, 159, 318, 42, "" }, + /* 18*/ { BARCODE_CODE39, 1, "1234567890", "", 0, 5, 1, 155, 310, 10, "" }, + /* 19*/ { BARCODE_CODE39, 4, "1", "", 0, 5, 1, 38, 76, 10, "" }, + /* 20*/ { BARCODE_CODE39, 17, "1234567890", "", 0, 17, 1, 155, 310, 34, "" }, + /* 21*/ { BARCODE_EXCODE39, 1, "1234567890", "", 0, 5, 1, 155, 310, 10, "" }, + /* 22*/ { BARCODE_EXCODE39, 4, "1234567890", "", 0, 5, 1, 155, 310, 10, "" }, + /* 23*/ { BARCODE_EXCODE39, 17, "1234567890", "", 0, 17, 1, 155, 310, 34, "" }, + /* 24*/ { BARCODE_EANX, 1, "123456789012", "", 0, 5, 1, 95, 226, 20, "EAN-13" }, + /* 25*/ { BARCODE_EANX, 4, "123456789012", "", 0, 5, 1, 95, 226, 20, "" }, + /* 26*/ { BARCODE_EANX, 69, "123456789012", "", 0, 69, 1, 95, 226, 148, "" }, + /* 27*/ { BARCODE_EANX, 55, "1234567", "", 0, 55, 1, 67, 162, 120, "EAN-8" }, + /* 28*/ { BARCODE_EANX, 66, "12345", "", 0, 66, 1, 47, 118, 132, "EAN-8" }, + /* 29*/ { BARCODE_EANX_CHK, 1, "1234567890128", "", 0, 5, 1, 95, 226, 20, "EAN-13" }, + /* 30*/ { BARCODE_EANX_CHK, 69, "1234567890128", "", 0, 69, 1, 95, 226, 148, "" }, + /* 31*/ { BARCODE_GS1_128, 1, "[01]12345678901231", "", 0, 5, 1, 134, 268, 10, "" }, + /* 32*/ { BARCODE_GS1_128, 4, "[01]12345678901231", "", 0, 5, 1, 134, 268, 10, "" }, + /* 33*/ { BARCODE_GS1_128, 5, "[01]12345678901231", "", 0, 5, 1, 134, 268, 10, "" }, + /* 34*/ { BARCODE_GS1_128, 50, "[01]12345678901231", "", 0, 50, 1, 134, 268, 100, "" }, + /* 35*/ { BARCODE_CODABAR, 1, "A0B", "", 0, 5, 1, 32, 64, 10, "" }, + /* 36*/ { BARCODE_CODABAR, 4, "A0B", "", 0, 5, 1, 32, 64, 10, "" }, + /* 37*/ { BARCODE_CODABAR, 26, "A0B", "", 0, 26, 1, 32, 64, 52, "" }, + /* 38*/ { BARCODE_CODE128, 1, "1234567890", "", 0, 5, 1, 90, 180, 10, "" }, + /* 39*/ { BARCODE_CODE128, 4, "1234567890", "", 0, 5, 1, 90, 180, 10, "" }, + /* 40*/ { BARCODE_CODE128, 7, "1234567890", "", 0, 7, 1, 90, 180, 14, "" }, + /* 41*/ { BARCODE_DPLEIT, 1, "1234567890123", "", 0, 5, 1, 135, 270, 10, "" }, + /* 42*/ { BARCODE_DPLEIT, 4, "1234567890123", "", 0, 5, 1, 135, 270, 10, "" }, + /* 43*/ { BARCODE_DPIDENT, 1, "12345678901", "", 0, 5, 1, 117, 234, 10, "" }, + /* 44*/ { BARCODE_DPIDENT, 4, "12345678901", "", 0, 5, 1, 117, 234, 10, "" }, + /* 45*/ { BARCODE_CODE16K, -1, "1234567890", "", 0, 20, 2, 70, 162, 44, "2 rows" }, + /* 46*/ { BARCODE_CODE16K, 1, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 47*/ { BARCODE_CODE16K, 4, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 48*/ { BARCODE_CODE16K, 17, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 49*/ { BARCODE_CODE16K, 40, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 50*/ { BARCODE_CODE16K, -1, "12345678901234567890123456789012345678901234567890", "", 0, 60, 6, 70, 162, 124, "6 rows" }, + /* 51*/ { BARCODE_CODE16K, 30, "12345678901234567890123456789012345678901234567890", "", 0, 60, 6, 70, 162, 124, "" }, + /* 52*/ { BARCODE_CODE16K, 120, "12345678901234567890123456789012345678901234567890", "", 0, 60, 6, 70, 162, 124, "" }, + /* 53*/ { BARCODE_CODE49, -1, "1234567890", "", 0, 20, 2, 70, 162, 44, "2 rows" }, + /* 54*/ { BARCODE_CODE49, 1, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 55*/ { BARCODE_CODE49, 4, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 56*/ { BARCODE_CODE49, 18, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 57*/ { BARCODE_CODE49, 40, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 58*/ { BARCODE_CODE49, -1, "12345678901234567890", "", 0, 30, 3, 70, 162, 64, "3 rows" }, + /* 59*/ { BARCODE_CODE49, 15, "12345678901234567890", "", 0, 30, 3, 70, 162, 64, "" }, + /* 60*/ { BARCODE_CODE49, 45, "12345678901234567890", "", 0, 30, 3, 70, 162, 64, "" }, + /* 61*/ { BARCODE_CODE93, 1, "1234567890", "", 0, 5, 1, 127, 254, 10, "" }, + /* 62*/ { BARCODE_CODE93, 4, "1234567890", "", 0, 5, 1, 127, 254, 10, "" }, + /* 63*/ { BARCODE_CODE93, 26, "1234567890", "", 0, 26, 1, 127, 254, 52, "" }, + /* 64*/ { BARCODE_FLAT, 1, "1234567890", "", 0, 5, 1, 90, 180, 10, "" }, + /* 65*/ { BARCODE_FLAT, 4, "1234567890", "", 0, 5, 1, 90, 180, 10, "" }, + /* 66*/ { BARCODE_DBAR_OMN, 1, "1234567890123", "", 0, 14, 1, 96, 192, 28, "" }, + /* 67*/ { BARCODE_DBAR_OMN, 4, "1234567890123", "", 0, 14, 1, 96, 192, 28, "" }, + /* 68*/ { BARCODE_DBAR_OMN, 12, "1234567890123", "", 0, 14, 1, 96, 192, 28, "" }, + /* 69*/ { BARCODE_DBAR_OMN, 33, "1234567890123", "", 0, 33, 1, 96, 192, 66, "" }, + /* 70*/ { BARCODE_DBAR_LTD, 1, "1234567890123", "", 0, 10, 1, 79, 158, 20, "" }, + /* 71*/ { BARCODE_DBAR_LTD, 4, "1234567890123", "", 0, 10, 1, 79, 158, 20, "" }, + /* 72*/ { BARCODE_DBAR_LTD, 9, "1234567890123", "", 0, 10, 1, 79, 158, 20, "" }, + /* 73*/ { BARCODE_DBAR_LTD, 10, "1234567890123", "", 0, 10, 1, 79, 158, 20, "" }, + /* 74*/ { BARCODE_DBAR_EXP, 1, "[01]12345678901231", "", 0, 34, 1, 134, 268, 68, "" }, + /* 75*/ { BARCODE_DBAR_EXP, 33, "[01]12345678901231", "", 0, 34, 1, 134, 268, 68, "" }, + /* 76*/ { BARCODE_DBAR_EXP, 34, "[01]12345678901231", "", 0, 34, 1, 134, 268, 68, "" }, + /* 77*/ { BARCODE_TELEPEN, 1, "1234567890", "", 0, 5, 1, 208, 416, 10, "" }, + /* 78*/ { BARCODE_TELEPEN, 4, "1234567890", "", 0, 5, 1, 208, 416, 10, "" }, + /* 79*/ { BARCODE_UPCA, 1, "12345678901", "", 0, 5, 1, 95, 226, 20, "" }, + /* 80*/ { BARCODE_UPCA, 4, "12345678901", "", 0, 5, 1, 95, 226, 20, "" }, + /* 81*/ { BARCODE_UPCA, 69, "12345678901", "", 0, 69, 1, 95, 226, 148, "" }, + /* 82*/ { BARCODE_UPCA_CHK, 1, "123456789012", "", 0, 5, 1, 95, 226, 20, "" }, + /* 83*/ { BARCODE_UPCE, 1, "1234567", "", 0, 5, 1, 51, 134, 20, "" }, + /* 84*/ { BARCODE_UPCE, 4, "1234567", "", 0, 5, 1, 51, 134, 20, "" }, + /* 85*/ { BARCODE_UPCE, 69, "1234567", "", 0, 69, 1, 51, 134, 148, "" }, + /* 86*/ { BARCODE_UPCE_CHK, 1, "12345670", "", 0, 5, 1, 51, 134, 20, "" }, + /* 87*/ { BARCODE_POSTNET, -1, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 88*/ { BARCODE_POSTNET, 1, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 89*/ { BARCODE_POSTNET, 4, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 90*/ { BARCODE_POSTNET, 9, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 91*/ { BARCODE_POSTNET, 20, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 92*/ { BARCODE_MSI_PLESSEY, 1, "1234567890", "", 0, 5, 1, 127, 254, 10, "" }, + /* 93*/ { BARCODE_MSI_PLESSEY, 4, "1234567890", "", 0, 5, 1, 127, 254, 10, "" }, + /* 94*/ { BARCODE_FIM, 1, "A", "", 0, 5, 1, 17, 34, 10, "" }, + /* 95*/ { BARCODE_FIM, 4, "A", "", 0, 5, 1, 17, 34, 10, "" }, + /* 96*/ { BARCODE_FIM, 12, "A", "", 0, 12, 1, 17, 34, 24, "" }, + /* 97*/ { BARCODE_LOGMARS, 1, "1234567890", "", 0, 5, 1, 191, 382, 10, "" }, + /* 98*/ { BARCODE_LOGMARS, 4, "1234567890", "", 0, 5, 1, 191, 382, 10, "" }, + /* 99*/ { BARCODE_LOGMARS, 6, "1234567890", "", 0, 6, 1, 191, 382, 12, "" }, + /*100*/ { BARCODE_LOGMARS, 45, "1234567890", "", 0, 45, 1, 191, 382, 90, "" }, + /*101*/ { BARCODE_PHARMA, 1, "123456", "", 0, 5, 1, 58, 116, 10, "" }, + /*102*/ { BARCODE_PHARMA, 4, "123456", "", 0, 5, 1, 58, 116, 10, "" }, + /*103*/ { BARCODE_PHARMA, 15, "123456", "", 0, 15, 1, 58, 116, 30, "" }, + /*104*/ { BARCODE_PHARMA, 16, "123456", "", 0, 16, 1, 58, 116, 32, "" }, + /*105*/ { BARCODE_PZN, 1, "123456", "", 0, 5, 1, 142, 284, 10, "" }, + /*106*/ { BARCODE_PZN, 4, "123456", "", 0, 5, 1, 142, 284, 10, "" }, + /*107*/ { BARCODE_PZN, 17, "123456", "", 0, 17, 1, 142, 284, 34, "" }, + /*108*/ { BARCODE_PZN, 106, "123456", "", 0, 106, 1, 142, 284, 212, "" }, + /*109*/ { BARCODE_PHARMA_TWO, -1, "12345678", "", 0, 10, 2, 29, 58, 20, "" }, + /*110*/ { BARCODE_PHARMA_TWO, 1, "12345678", "", 0, 10, 2, 29, 58, 20, "" }, + /*111*/ { BARCODE_PHARMA_TWO, 4, "12345678", "", 0, 10, 2, 29, 58, 20, "" }, + /*112*/ { BARCODE_PHARMA_TWO, 15, "12345678", "", 0, 15, 2, 29, 58, 30, "" }, + /*113*/ { BARCODE_PHARMA_TWO, 20, "12345678", "", 0, 20, 2, 29, 58, 40, "" }, + /*114*/ { BARCODE_PHARMA_TWO, 30, "12345678", "", 0, 30, 2, 29, 58, 60, "" }, + /*115*/ { BARCODE_PDF417, 1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 24, 8, 120, 240, 48, "8 rows" }, + /*116*/ { BARCODE_PDF417, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 24, 8, 120, 240, 48, "" }, + /*117*/ { BARCODE_PDF417, 23, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 24, 8, 120, 240, 48, "" }, + /*118*/ { BARCODE_PDF417, 24, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 24, 8, 120, 240, 48, "" }, + /*119*/ { BARCODE_PDF417, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 36, 12, 120, 240, 72, "12 rows" }, + /*120*/ { BARCODE_PDF417, 12, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 36, 12, 120, 240, 72, "" }, + /*121*/ { BARCODE_PDF417COMP, 1, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ", "", 0, 27, 9, 86, 172, 54, "9 rows" }, + /*122*/ { BARCODE_PDF417COMP, 24, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ", "", 0, 27, 9, 86, 172, 54, "" }, + /*123*/ { BARCODE_MAXICODE, 1, "1234567890", "", 0, 165, 33, 30, 299, 298, "Fixed size, symbol->height ignored" }, + /*124*/ { BARCODE_QRCODE, 1, "ABCD", "", 0, 21, 21, 21, 42, 42, "Fixed width-to-height ratio, symbol->height ignored" }, + /*125*/ { BARCODE_CODE128B, 1, "1234567890", "", 0, 5, 1, 145, 290, 10, "" }, + /*126*/ { BARCODE_CODE128B, 4, "1234567890", "", 0, 5, 1, 145, 290, 10, "" }, + /*127*/ { BARCODE_AUSPOST, -1, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*128*/ { BARCODE_AUSPOST, 1, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*129*/ { BARCODE_AUSPOST, 4, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*130*/ { BARCODE_AUSPOST, 7, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*131*/ { BARCODE_AUSPOST, 14, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*132*/ { BARCODE_AUSREPLY, 14, "12345678", "", 0, 8, 3, 73, 146, 16, "" }, + /*133*/ { BARCODE_AUSROUTE, 7, "12345678", "", 0, 8, 3, 73, 146, 16, "" }, + /*134*/ { BARCODE_AUSREDIRECT, 14, "12345678", "", 0, 8, 3, 73, 146, 16, "" }, + /*135*/ { BARCODE_ISBNX, 1, "123456789", "", 0, 5, 1, 95, 226, 20, "" }, + /*136*/ { BARCODE_ISBNX, 4, "123456789", "", 0, 5, 1, 95, 226, 20, "" }, + /*137*/ { BARCODE_ISBNX, 69, "123456789", "", 0, 69, 1, 95, 226, 148, "" }, + /*138*/ { BARCODE_RM4SCC, -1, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*139*/ { BARCODE_RM4SCC, 1, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*140*/ { BARCODE_RM4SCC, 4, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*141*/ { BARCODE_RM4SCC, 6, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*142*/ { BARCODE_RM4SCC, 11, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*143*/ { BARCODE_RM4SCC, 16, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*144*/ { BARCODE_DATAMATRIX, 1, "ABCD", "", 0, 12, 12, 12, 24, 24, "Fixed width-to-height ratio, symbol->height ignored" }, + /*145*/ { BARCODE_EAN14, 1, "1234567890123", "", 0, 5, 1, 134, 268, 10, "" }, + /*146*/ { BARCODE_EAN14, 4, "1234567890123", "", 0, 5, 1, 134, 268, 10, "" }, + /*147*/ { BARCODE_EAN14, 5, "1234567890123", "", 0, 5, 1, 134, 268, 10, "" }, + /*148*/ { BARCODE_VIN, 1, "12345678701234567", "", 0, 5, 1, 246, 492, 10, "" }, + /*149*/ { BARCODE_VIN, 4, "12345678701234567", "", 0, 5, 1, 246, 492, 10, "" }, + /*150*/ { BARCODE_CODABLOCKF, -1, "1234567890", "", 0, 20, 2, 101, 242, 44, "2 rows" }, + /*151*/ { BARCODE_CODABLOCKF, 1, "1234567890", "", 0, 20, 2, 101, 242, 44, "" }, + /*152*/ { BARCODE_CODABLOCKF, 4, "1234567890", "", 0, 20, 2, 101, 242, 44, "" }, + /*153*/ { BARCODE_CODABLOCKF, 30, "1234567890", "", 0, 20, 2, 101, 242, 44, "" }, + /*154*/ { BARCODE_CODABLOCKF, -1, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs", "", 0, 110, 11, 156, 352, 224, "11 rows, 14 cols" }, + /*155*/ { BARCODE_CODABLOCKF, 88, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs", "", 0, 110, 11, 156, 352, 224, "" }, + /*156*/ { BARCODE_CODABLOCKF, 220, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs", "", 0, 110, 11, 156, 352, 224, "" }, + /*157*/ { BARCODE_CODABLOCKF, -1, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv", "", 0, 110, 11, 167, 374, 224, "11 rows, 15 cols" }, + /*158*/ { BARCODE_CODABLOCKF, 88, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv", "", 0, 110, 11, 167, 374, 224, "" }, + /*159*/ { BARCODE_NVE18, 1, "12345678901234567", "", 0, 5, 1, 156, 312, 10, "" }, + /*160*/ { BARCODE_NVE18, 4, "12345678901234567", "", 0, 5, 1, 156, 312, 10, "" }, + /*161*/ { BARCODE_NVE18, 6, "12345678901234567", "", 0, 6, 1, 156, 312, 12, "" }, + /*162*/ { BARCODE_JAPANPOST, -1, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*163*/ { BARCODE_JAPANPOST, 1, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*164*/ { BARCODE_JAPANPOST, 4, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*165*/ { BARCODE_JAPANPOST, 7, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*166*/ { BARCODE_JAPANPOST, 16, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*167*/ { BARCODE_KOREAPOST, 1, "123456", "", 0, 5, 1, 167, 334, 10, "" }, + /*168*/ { BARCODE_KOREAPOST, 4, "123456", "", 0, 5, 1, 167, 334, 10, "" }, + /*169*/ { BARCODE_DBAR_STK, -1, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*170*/ { BARCODE_DBAR_STK, 1, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*171*/ { BARCODE_DBAR_STK, 4, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*172*/ { BARCODE_DBAR_STK, 12, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*173*/ { BARCODE_DBAR_STK, 13, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*174*/ { BARCODE_DBAR_STK, 24, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*175*/ { BARCODE_DBAR_STK, 26, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*176*/ { BARCODE_DBAR_OMNSTK, -1, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*177*/ { BARCODE_DBAR_OMNSTK, 1, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*178*/ { BARCODE_DBAR_OMNSTK, 4, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*179*/ { BARCODE_DBAR_OMNSTK, 68, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*180*/ { BARCODE_DBAR_OMNSTK, 69, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*181*/ { BARCODE_DBAR_OMNSTK, 150, "1234567890123", "", 0, 150, 5, 50, 100, 300, "" }, + /*182*/ { BARCODE_DBAR_EXPSTK, -1, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "2 rows" }, + /*183*/ { BARCODE_DBAR_EXPSTK, 1, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "" }, + /*184*/ { BARCODE_DBAR_EXPSTK, 4, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "" }, + /*185*/ { BARCODE_DBAR_EXPSTK, 71, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "" }, + /*186*/ { BARCODE_DBAR_EXPSTK, 76, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "" }, + /*187*/ { BARCODE_DBAR_EXPSTK, -1, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "3 rows" }, + /*188*/ { BARCODE_DBAR_EXPSTK, 1, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "" }, + /*189*/ { BARCODE_DBAR_EXPSTK, 54, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "" }, + /*190*/ { BARCODE_DBAR_EXPSTK, 90, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "" }, + /*191*/ { BARCODE_DBAR_EXPSTK, 160, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "" }, + /*192*/ { BARCODE_PLANET, -1, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*193*/ { BARCODE_PLANET, 1, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*194*/ { BARCODE_PLANET, 4, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*195*/ { BARCODE_PLANET, 9, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*196*/ { BARCODE_PLANET, 24, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*197*/ { BARCODE_MICROPDF417, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 20, 10, 82, 164, 40, "10 rows" }, + /*198*/ { BARCODE_MICROPDF417, 1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 20, 10, 82, 164, 40, "" }, + /*199*/ { BARCODE_MICROPDF417, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 20, 10, 82, 164, 40, "" }, + /*200*/ { BARCODE_MICROPDF417, 19, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 20, 10, 82, 164, 40, "" }, + /*201*/ { BARCODE_MICROPDF417, 30, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 30, 10, 82, 164, 60, "" }, + /*202*/ { BARCODE_MICROPDF417, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 40, 20, 55, 110, 80, "20 rows" }, + /*203*/ { BARCODE_MICROPDF417, 20, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 40, 20, 55, 110, 80, "" }, + /*204*/ { BARCODE_USPS_IMAIL, -1, "12345678901234567890", "", 0, 8, 3, 129, 258, 16, "" }, + /*205*/ { BARCODE_USPS_IMAIL, 1, "12345678901234567890", "", 0, 8, 3, 129, 258, 16, "" }, + /*206*/ { BARCODE_USPS_IMAIL, 4, "12345678901234567890", "", 0, 8, 3, 129, 258, 16, "" }, + /*207*/ { BARCODE_USPS_IMAIL, 7, "12345678901234567890", "", 0, 8, 3, 129, 258, 16, "" }, + /*208*/ { BARCODE_PLESSEY, 1, "1234567890", "", 0, 5, 1, 227, 454, 10, "" }, + /*209*/ { BARCODE_PLESSEY, 4, "1234567890", "", 0, 5, 1, 227, 454, 10, "" }, + /*210*/ { BARCODE_TELEPEN_NUM, 1, "1234567890", "", 0, 5, 1, 128, 256, 10, "" }, + /*211*/ { BARCODE_TELEPEN_NUM, 4, "1234567890", "", 0, 5, 1, 128, 256, 10, "" }, + /*212*/ { BARCODE_ITF14, 1, "1234567890", "", 0, 5, 1, 135, 330, 30, "" }, + /*213*/ { BARCODE_ITF14, 4, "1234567890", "", 0, 5, 1, 135, 330, 30, "" }, + /*214*/ { BARCODE_ITF14, 64, "1234567890", "", 0, 64, 1, 135, 330, 148, "" }, + /*215*/ { BARCODE_KIX, -1, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*216*/ { BARCODE_KIX, 1, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*217*/ { BARCODE_KIX, 4, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*218*/ { BARCODE_KIX, 6, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*219*/ { BARCODE_KIX, 10, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*220*/ { BARCODE_KIX, 16, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*221*/ { BARCODE_AZTEC, 1, "1234567890AB", "", 0, 15, 15, 15, 30, 30, "Fixed width-to-height ratio, symbol->height ignored" }, + /*222*/ { BARCODE_DAFT, -1, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*223*/ { BARCODE_DAFT, 1, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*224*/ { BARCODE_DAFT, 4, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*225*/ { BARCODE_DAFT, 6, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*226*/ { BARCODE_DAFT, 12, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*227*/ { BARCODE_DAFT, 16, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*228*/ { BARCODE_DPD, 1, "0123456789012345678901234567", "", 0, 5, 1, 189, 378, 10, "" }, + /*229*/ { BARCODE_DPD, 4, "0123456789012345678901234567", "", 0, 5, 1, 189, 378, 10, "" }, + /*230*/ { BARCODE_DPD, 62, "0123456789012345678901234567", "", 0, 62, 1, 189, 378, 124, "" }, + /*231*/ { BARCODE_MICROQR, 1, "12345", "", 0, 11, 11, 11, 22, 22, "Fixed width-to-height ratio, symbol->height ignored" }, + /*232*/ { BARCODE_HIBC_128, 1, "1234567890", "", 0, 5, 1, 123, 246, 10, "" }, + /*233*/ { BARCODE_HIBC_128, 4, "1234567890", "", 0, 5, 1, 123, 246, 10, "" }, + /*234*/ { BARCODE_HIBC_39, 1, "1234567890", "", 0, 5, 1, 223, 446, 10, "" }, + /*235*/ { BARCODE_HIBC_39, 4, "1234567890", "", 0, 5, 1, 223, 446, 10, "" }, + /*236*/ { BARCODE_HIBC_DM, 1, "ABC", "", 0, 12, 12, 12, 24, 24, "Fixed width-to-height ratio, symbol->height ignored" }, + /*237*/ { BARCODE_HIBC_QR, 1, "1234567890AB", "", 0, 21, 21, 21, 42, 42, "Fixed width-to-height ratio, symbol->height ignored" }, + /*238*/ { BARCODE_HIBC_PDF, -1, "ABCDEF", "", 0, 21, 7, 103, 206, 42, "7 rows" }, + /*239*/ { BARCODE_HIBC_PDF, 1, "ABCDEF", "", 0, 21, 7, 103, 206, 42, "" }, + /*240*/ { BARCODE_HIBC_PDF, 4, "ABCDEF", "", 0, 21, 7, 103, 206, 42, "" }, + /*241*/ { BARCODE_HIBC_PDF, 36, "ABCDEF", "", 0, 35, 7, 103, 206, 70, "" }, + /*242*/ { BARCODE_HIBC_MICPDF, -1, "ABCDEF", "", 0, 12, 6, 82, 164, 24, "6 rows" }, + /*243*/ { BARCODE_HIBC_MICPDF, 1, "ABCDEF", "", 0, 12, 6, 82, 164, 24, "" }, + /*244*/ { BARCODE_HIBC_MICPDF, 4, "ABCDEF", "", 0, 12, 6, 82, 164, 24, "" }, + /*245*/ { BARCODE_HIBC_MICPDF, 47, "ABCDEF", "", 0, 42, 6, 82, 164, 84, "" }, + /*246*/ { BARCODE_HIBC_BLOCKF, -1, "1234567890", "", 0, 30, 3, 101, 242, 64, "3 rows" }, + /*247*/ { BARCODE_HIBC_BLOCKF, 1, "1234567890", "", 0, 30, 3, 101, 242, 64, "" }, + /*248*/ { BARCODE_HIBC_BLOCKF, 4, "1234567890", "", 0, 30, 3, 101, 242, 64, "" }, + /*249*/ { BARCODE_HIBC_BLOCKF, 23, "1234567890", "", 0, 30, 3, 101, 242, 64, "" }, + /*250*/ { BARCODE_HIBC_BLOCKF, 60, "1234567890", "", 0, 30, 3, 101, 242, 64, "" }, + /*251*/ { BARCODE_HIBC_AZTEC, 1, "1234567890AB", "", 0, 19, 19, 19, 38, 38, "Fixed width-to-height ratio, symbol->height ignored" }, + /*252*/ { BARCODE_DOTCODE, 1, "ABC", "", 0, 11, 11, 16, 33, 23, "Fixed width-to-height ratio, symbol->height ignored" }, + /*253*/ { BARCODE_HANXIN, 1, "1234567890AB", "", 0, 23, 23, 23, 46, 46, "Fixed width-to-height ratio, symbol->height ignored" }, + /*254*/ { BARCODE_MAILMARK, -1, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*255*/ { BARCODE_MAILMARK, 1, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*256*/ { BARCODE_MAILMARK, 4, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*257*/ { BARCODE_MAILMARK, 6, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*258*/ { BARCODE_MAILMARK, 10, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*259*/ { BARCODE_MAILMARK, 15, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*260*/ { BARCODE_MAILMARK, 20, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*261*/ { BARCODE_AZRUNE, 1, "1", "", 0, 11, 11, 11, 22, 22, "Fixed width-to-height ratio, symbol->height ignored" }, + /*262*/ { BARCODE_CODE32, 1, "12345678", "", 0, 5, 1, 103, 206, 10, "" }, + /*263*/ { BARCODE_CODE32, 4, "12345678", "", 0, 5, 1, 103, 206, 10, "" }, + /*264*/ { BARCODE_CODE32, 19, "12345678", "", 0, 19, 1, 103, 206, 38, "" }, + /*265*/ { BARCODE_EANX_CC, -1, "123456789012", "[20]01", 0, 50, 7, 99, 234, 110, "EAN-13, CC-A 3 rows" }, + /*266*/ { BARCODE_EANX_CC, 1, "123456789012", "[20]01", 0, 17, 7, 99, 234, 44, "" }, + /*267*/ { BARCODE_EANX_CC, 4, "123456789012", "[20]01", 0, 17, 7, 99, 234, 44, "" }, + /*268*/ { BARCODE_EANX_CC, 81, "123456789012", "[20]01", 0, 81, 7, 99, 234, 172, "" }, + /*269*/ { BARCODE_EANX_CC, -1, "123456789012", "[20]01[90]123456789012345678901234567890", 0, 50, 9, 99, 234, 110, "EAN-13, CC-A 5 rows" }, + /*270*/ { BARCODE_EANX_CC, 1, "123456789012", "[20]01[90]123456789012345678901234567890", 0, 21, 9, 99, 234, 52, "" }, + /*271*/ { BARCODE_EANX_CC, 4, "123456789012", "[20]01[90]123456789012345678901234567890", 0, 21, 9, 99, 234, 52, "" }, + /*272*/ { BARCODE_EANX_CC, 20, "123456789012", "[20]01[90]123456789012345678901234567890", 0, 21, 9, 99, 234, 52, "" }, + /*273*/ { BARCODE_EANX_CC, -1, "123456789012", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 50, 11, 99, 234, 110, "EAN-13, CC-A 7 rows" }, + /*274*/ { BARCODE_EANX_CC, 1, "123456789012", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 25, 11, 99, 234, 60, "" }, + /*275*/ { BARCODE_EANX_CC, 4, "123456789012", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 25, 11, 99, 234, 60, "" }, + /*276*/ { BARCODE_EANX_CC, 40, "123456789012", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 40, 11, 99, 234, 90, "" }, + /*277*/ { BARCODE_EANX_CC, -1, "123456789012", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 50, 14, 99, 234, 110, "EAN-13, CC-B 10 rows" }, + /*278*/ { BARCODE_EANX_CC, 1, "123456789012", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 31, 14, 99, 234, 72, "" }, + /*279*/ { BARCODE_EANX_CC, 30, "123456789012", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 31, 14, 99, 234, 72, "" }, + /*280*/ { BARCODE_EANX_CC, -1, "1234567", "[20]01[90]123456789012345678901234", 0, 50, 10, 72, 172, 110, "EAN-8, CC-A 4 rows" }, + /*281*/ { BARCODE_EANX_CC, 1, "1234567", "[20]01[90]123456789012345678901234", 0, 23, 10, 72, 172, 56, "" }, + /*282*/ { BARCODE_EANX_CC, 4, "1234567", "[20]01[90]123456789012345678901234", 0, 23, 10, 72, 172, 56, "" }, + /*283*/ { BARCODE_EANX_CC, 69, "1234567", "[20]01[90]123456789012345678901234", 0, 69, 10, 72, 172, 148, "" }, + /*284*/ { BARCODE_EANX_CC, -1, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 24, 82, 192, 112, "EAN-8, CC-B 15 rows" }, + /*285*/ { BARCODE_EANX_CC, 1, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 24, 82, 192, 112, "" }, + /*286*/ { BARCODE_EANX_CC, 32, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 24, 82, 192, 112, "" }, + /*287*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]01", 0, 50, 5, 145, 290, 100, "CC-A 3 rows" }, + /*288*/ { BARCODE_GS1_128_CC, 1, "[01]12345678901231", "[20]01", 0, 12, 5, 145, 290, 24, "" }, + /*289*/ { BARCODE_GS1_128_CC, 4, "[01]12345678901231", "[20]01", 0, 12, 5, 145, 290, 24, "" }, + /*290*/ { BARCODE_GS1_128_CC, 12, "[01]12345678901231", "[20]01", 0, 12, 5, 145, 290, 24, "" }, + /*291*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 50, 9, 145, 290, 100, "CC-A 7 rows" }, + /*292*/ { BARCODE_GS1_128_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 20, 9, 145, 290, 40, "" }, + /*293*/ { BARCODE_GS1_128_CC, 52, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 52, 9, 145, 290, 104, "" }, + /*294*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 50, 12, 145, 290, 100, "CC-B 10 rows" }, + /*295*/ { BARCODE_GS1_128_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 26, 12, 145, 290, 52, "" }, + /*296*/ { BARCODE_GS1_128_CC, 40, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 40, 12, 145, 290, 80, "" }, + /*297*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890", 0, 96, 32, 154, 308, 192, "CC-C 30 rows" }, + /*298*/ { BARCODE_GS1_128_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890", 0, 96, 32, 154, 308, 192, "" }, + /*299*/ { BARCODE_GS1_128_CC, 100, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890", 0, 100, 32, 154, 308, 200, "" }, + /*300*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123", "[20]01[90]1234567890", 0, 21, 5, 100, 200, 42, "CC-A 3 rows" }, + /*301*/ { BARCODE_DBAR_OMN_CC, 1, "1234567890123", "[20]01[90]1234567890", 0, 21, 5, 100, 200, 42, "" }, + /*302*/ { BARCODE_DBAR_OMN_CC, 4, "1234567890123", "[20]01[90]1234567890", 0, 21, 5, 100, 200, 42, "" }, + /*303*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123", "[20]01[90]12345678901234567890", 0, 23, 6, 100, 200, 46, "CC-A 4 rows" }, + /*304*/ { BARCODE_DBAR_OMN_CC, 1, "1234567890123", "[20]01[90]12345678901234567890", 0, 23, 6, 100, 200, 46, "" }, + /*305*/ { BARCODE_DBAR_OMN_CC, 4, "1234567890123", "[20]01[90]12345678901234567890", 0, 23, 6, 100, 200, 46, "" }, + /*306*/ { BARCODE_DBAR_OMN_CC, 20, "1234567890123", "[20]01[90]12345678901234567890", 0, 23, 6, 100, 200, 46, "" }, + /*307*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 35, 12, 100, 200, 70, "CC-B 10 rows" }, + /*308*/ { BARCODE_DBAR_OMN_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 35, 12, 100, 200, 70, "" }, + /*309*/ { BARCODE_DBAR_OMN_CC, 40, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 35, 12, 100, 200, 70, "" }, + /*310*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890", 0, 39, 14, 100, 200, 78, "CC-B 12 rows" }, + /*311*/ { BARCODE_DBAR_OMN_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890", 0, 39, 14, 100, 200, 78, "" }, + /*312*/ { BARCODE_DBAR_OMN_CC, 36, "1234567890123", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890", 0, 39, 14, 100, 200, 78, "" }, + /*313*/ { BARCODE_DBAR_LTD_CC, -1, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "CC-A 4 rows" }, + /*314*/ { BARCODE_DBAR_LTD_CC, 1, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "" }, + /*315*/ { BARCODE_DBAR_LTD_CC, 4, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "" }, + /*316*/ { BARCODE_DBAR_LTD_CC, 18, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "" }, + /*317*/ { BARCODE_DBAR_LTD_CC, 19, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "" }, + /*318*/ { BARCODE_DBAR_LTD_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890", 0, 25, 9, 79, 158, 50, "CC-A 7 rows" }, + /*319*/ { BARCODE_DBAR_LTD_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890", 0, 25, 9, 79, 158, 50, "" }, + /*320*/ { BARCODE_DBAR_LTD_CC, 26, "1234567890123", "[20]01[90]123456789012345678901234567890", 0, 25, 9, 79, 158, 50, "" }, + /*321*/ { BARCODE_DBAR_LTD_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 22, 88, 176, 102, "CC-B 20 rows" }, + /*322*/ { BARCODE_DBAR_LTD_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 22, 88, 176, 102, "" }, + /*323*/ { BARCODE_DBAR_LTD_CC, 50, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 22, 88, 176, 102, "" }, + /*324*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "CC-A 3 rows" }, + /*325*/ { BARCODE_DBAR_EXP_CC, 1, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "" }, + /*326*/ { BARCODE_DBAR_EXP_CC, 4, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "" }, + /*327*/ { BARCODE_DBAR_EXP_CC, 40, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "" }, + /*328*/ { BARCODE_DBAR_EXP_CC, 41, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "" }, + /*329*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890", 0, 45, 7, 134, 268, 90, "CC-A 5 rows" }, + /*330*/ { BARCODE_DBAR_EXP_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890", 0, 45, 7, 134, 268, 90, "" }, + /*331*/ { BARCODE_DBAR_EXP_CC, 50, "[01]12345678901231", "[20]01[90]123456789012345678901234567890", 0, 45, 7, 134, 268, 90, "" }, + /*332*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 55, 12, 134, 268, 110, "CC-B 10 rows" }, + /*333*/ { BARCODE_DBAR_EXP_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 55, 12, 134, 268, 110, "" }, + /*334*/ { BARCODE_DBAR_EXP_CC, 46, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 55, 12, 134, 268, 110, "" }, + /*335*/ { BARCODE_UPCA_CC, -1, "12345678901", "[20]01", 0, 50, 7, 99, 234, 110, "CC-A 3 rows" }, + /*336*/ { BARCODE_UPCA_CC, 1, "12345678901", "[20]01", 0, 17, 7, 99, 234, 44, "" }, + /*337*/ { BARCODE_UPCA_CC, 4, "12345678901", "[20]01", 0, 17, 7, 99, 234, 44, "" }, + /*338*/ { BARCODE_UPCA_CC, 81, "12345678901", "[20]01", 0, 81, 7, 99, 234, 172, "" }, + /*339*/ { BARCODE_UPCA_CC, -1, "12345678901", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 50, 10, 99, 234, 110, "CC-A 6 rows" }, + /*340*/ { BARCODE_UPCA_CC, 1, "12345678901", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 23, 10, 99, 234, 56, "" }, + /*341*/ { BARCODE_UPCA_CC, 4, "12345678901", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 23, 10, 99, 234, 56, "" }, + /*342*/ { BARCODE_UPCA_CC, -1, "12345678901", "[20]01[90]123456789012345678901234567890[91]123456789012345678912345678901234567", 0, 50, 16, 99, 234, 110, "CC-B 12 rows" }, + /*343*/ { BARCODE_UPCA_CC, 1, "12345678901", "[20]01[90]123456789012345678901234567890[91]123456789012345678912345678901234567", 0, 35, 16, 99, 234, 80, "" }, + /*344*/ { BARCODE_UPCA_CC, 51, "12345678901", "[20]01[90]123456789012345678901234567890[91]123456789012345678912345678901234567", 0, 51, 16, 99, 234, 112, "" }, + /*345*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]01[90]123456789012345678", 0, 50, 11, 55, 142, 110, "CC-A 7 rows" }, + /*346*/ { BARCODE_UPCE_CC, 1, "1234567", "[20]01[90]123456789012345678", 0, 25, 11, 55, 142, 60, "" }, + /*347*/ { BARCODE_UPCE_CC, 4, "1234567", "[20]01[90]123456789012345678", 0, 25, 11, 55, 142, 60, "" }, + /*348*/ { BARCODE_UPCE_CC, 85, "1234567", "[20]01[90]123456789012345678", 0, 85, 11, 55, 142, 180, "" }, + /*349*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 50, 16, 55, 142, 110, "CC-A 12 rows" }, + /*350*/ { BARCODE_UPCE_CC, 1, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 35, 16, 55, 142, 80, "" }, + /*351*/ { BARCODE_UPCE_CC, 49, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 49, 16, 55, 142, 108, "" }, + /*352*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 50, 21, 55, 142, 110, "CC-B 17 rows" }, + /*353*/ { BARCODE_UPCE_CC, 1, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 45, 21, 55, 142, 100, "" }, + /*354*/ { BARCODE_UPCE_CC, 4, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 45, 21, 55, 142, 100, "" }, + /*355*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567", 0, 57, 27, 55, 142, 124, "CC-B 23 rows" }, + /*356*/ { BARCODE_UPCE_CC, 1, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567", 0, 57, 27, 55, 142, 124, "" }, + /*357*/ { BARCODE_UPCE_CC, 52, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567", 0, 57, 27, 55, 142, 124, "" }, + /*358*/ { BARCODE_DBAR_STK_CC, -1, "1234567890123", "[20]01", 0, 24, 9, 56, 112, 48, "CC-A 5 rows" }, + /*359*/ { BARCODE_DBAR_STK_CC, 1, "1234567890123", "[20]01", 0, 24, 9, 56, 112, 48, "" }, + /*360*/ { BARCODE_DBAR_STK_CC, 4, "1234567890123", "[20]01", 0, 24, 9, 56, 112, 48, "" }, + /*361*/ { BARCODE_DBAR_STK_CC, 24, "1234567890123", "[20]01", 0, 24, 9, 56, 112, 48, "" }, + /*362*/ { BARCODE_DBAR_STK_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 38, 16, 56, 112, 76, "CC-A 12 rows" }, + /*363*/ { BARCODE_DBAR_STK_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 38, 16, 56, 112, 76, "" }, + /*364*/ { BARCODE_DBAR_STK_CC, 25, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 38, 16, 56, 112, 76, "" }, + /*365*/ { BARCODE_DBAR_STK_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 48, 21, 56, 112, 96, "CC-B 17 rows" }, + /*366*/ { BARCODE_DBAR_STK_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 48, 21, 56, 112, 96, "" }, + /*367*/ { BARCODE_DBAR_STK_CC, 59, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 48, 21, 56, 112, 96, "" }, + /*368*/ { BARCODE_DBAR_OMNSTK_CC, -1, "1234567890123", "[20]01[90]1234567890123456", 0, 82, 12, 56, 112, 164, "CC-A 6 rows" }, + /*369*/ { BARCODE_DBAR_OMNSTK_CC, 1, "1234567890123", "[20]01[90]1234567890123456", 0, 82, 12, 56, 112, 164, "" }, + /*370*/ { BARCODE_DBAR_OMNSTK_CC, 4, "1234567890123", "[20]01[90]1234567890123456", 0, 82, 12, 56, 112, 164, "" }, + /*371*/ { BARCODE_DBAR_OMNSTK_CC, 80, "1234567890123", "[20]01[90]1234567890123456", 0, 82, 12, 56, 112, 164, "" }, + /*372*/ { BARCODE_DBAR_OMNSTK_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567", 0, 94, 18, 56, 112, 188, "CC-A 12 rows" }, + /*373*/ { BARCODE_DBAR_OMNSTK_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567", 0, 94, 18, 56, 112, 188, "" }, + /*374*/ { BARCODE_DBAR_OMNSTK_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 104, 23, 56, 112, 208, "CC-B 17 rows" }, + /*375*/ { BARCODE_DBAR_OMNSTK_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 104, 23, 56, 112, 208, "" }, + /*376*/ { BARCODE_DBAR_OMNSTK_CC, 4, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 104, 23, 56, 112, 208, "" }, + /*377*/ { BARCODE_DBAR_OMNSTK_CC, 52, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 104, 23, 56, 112, 208, "" }, + /*378*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "3 rows, CC-A 3 rows" }, + /*379*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "" }, + /*380*/ { BARCODE_DBAR_EXPSTK_CC, 4, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "" }, + /*381*/ { BARCODE_DBAR_EXPSTK_CC, 77, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "" }, + /*382*/ { BARCODE_DBAR_EXPSTK_CC, 78, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "" }, + /*383*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01", 0, 189, 21, 102, 204, 378, "5 rows, CC-A 3 rows" }, + /*384*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01", 0, 189, 21, 102, 204, 378, "" }, + /*385*/ { BARCODE_DBAR_EXPSTK_CC, 190, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01", 0, 189, 21, 102, 204, 378, "" }, + /*386*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231", "[20]01[90]12345678901234567890", 0, 80, 10, 102, 204, 160, "3 rows, CC-A 4 rows" }, + /*387*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[01]12345678901231", "[20]01[90]12345678901234567890", 0, 80, 10, 102, 204, 160, "" }, + /*388*/ { BARCODE_DBAR_EXPSTK_CC, 38, "[01]12345678901231", "[20]01[90]12345678901234567890", 0, 80, 10, 102, 204, 160, "" }, + /*389*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 92, 16, 102, 204, 184, "3 rows, CC-B 10 rows" }, + /*390*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 92, 16, 102, 204, 184, "" }, + /*391*/ { BARCODE_DBAR_EXPSTK_CC, 4, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 92, 16, 102, 204, 184, "" }, + /*392*/ { BARCODE_DBAR_EXPSTK_CC, 47, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 92, 16, 102, 204, 184, "" }, + /*393*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 203, 28, 102, 204, 406, "5 rows, CC-B 10 rows" }, + /*394*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 203, 28, 102, 204, 406, "" }, + /*395*/ { BARCODE_CHANNEL, 1, "1", "", 0, 5, 1, 19, 38, 10, "" }, + /*396*/ { BARCODE_CHANNEL, 4, "123", "", 0, 5, 1, 23, 46, 10, "" }, + /*397*/ { BARCODE_CODEONE, 1, "12345678901234567890", "", 0, 16, 16, 18, 36, 32, "Fixed height, symbol->height ignored" }, + /*398*/ { BARCODE_GRIDMATRIX, 1, "ABC", "", 0, 18, 18, 18, 36, 36, "Fixed width-to-height ratio, symbol->height ignored" }, + /*399*/ { BARCODE_UPNQR, 1, "1234567890AB", "", 0, 77, 77, 77, 154, 154, "Fixed width-to-height ratio, symbol->height ignored" }, + /*400*/ { BARCODE_ULTRA, 1, "1234567890", "", 0, 13, 13, 18, 36, 26, "Fixed width-to-height ratio, symbol->height ignored" }, + /*401*/ { BARCODE_RMQR, 1, "12345", "", 0, 11, 11, 27, 54, 22, "Fixed width-to-height ratio, symbol->height ignored" }, + }; + int data_size = ARRAY_SIZE(data); + + char *text; + + for (int i = 0; i < data_size; i++) { + + if (index != -1 && i != index) continue; + if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i); + + struct zint_symbol *symbol = ZBarcode_Create(); + assert_nonnull(symbol, "Symbol not created\n"); + + symbol->symbology = data[i].symbology; + if (data[i].height != -1) { + symbol->height = data[i].height; + } + symbol->input_mode = UNICODE_MODE; + symbol->show_hrt = 0; // Note: disabling HRT + symbol->debug |= debug; + + if (strlen(data[i].composite)) { + text = data[i].composite; + strcpy(symbol->primary, data[i].data); + } else { + text = data[i].data; + } + int length = strlen(text); + + ret = ZBarcode_Encode(symbol, (unsigned char *) text, length); + assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode(%s) ret %d != %d (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, data[i].ret, symbol->errtxt); + + ret = ZBarcode_Buffer(symbol, 0); + assert_zero(ret, "i:%d ZBarcode_Buffer(%s) ret %d != 0 (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, symbol->errtxt); + assert_nonnull(symbol->bitmap, "i:%d ZBarcode_Buffer(%s) bitmap NULL\n", i, testUtilBarcodeName(data[i].symbology)); + + if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); + + if (generate) { + printf(" /*%3d*/ { %s, %d, \"%s\", \"%s\", %s, %d, %d, %d, %d, %d, \"%s\" },\n", + i, testUtilBarcodeName(data[i].symbology), data[i].height, data[i].data, data[i].composite, testUtilErrorName(data[i].ret), + symbol->height, symbol->rows, symbol->width, symbol->bitmap_width, symbol->bitmap_height, data[i].comment); + } else { + assert_equal(symbol->height, data[i].expected_height, "i:%d (%s) symbol->height %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->height, data[i].expected_height); + assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%s) symbol->rows %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->rows, data[i].expected_rows); + assert_equal(symbol->width, data[i].expected_width, "i:%d (%s) symbol->width %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->width, data[i].expected_width); + assert_equal(symbol->bitmap_width, data[i].expected_bitmap_width, "i:%d (%s) symbol->bitmap_width %d != %d\n", + i, testUtilBarcodeName(data[i].symbology), symbol->bitmap_width, data[i].expected_bitmap_width); + assert_equal(symbol->bitmap_height, data[i].expected_bitmap_height, "i:%d (%s) symbol->bitmap_height %d != %d\n", + i, testUtilBarcodeName(data[i].symbology), symbol->bitmap_height, data[i].expected_bitmap_height); + } + + ZBarcode_Delete(symbol); + } + + testFinish(); +} + int main(int argc, char *argv[]) { testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */ @@ -1215,6 +1696,7 @@ int main(int argc, char *argv[]) { { "test_code128_utf8", test_code128_utf8, 1, 0, 1 }, { "test_scale", test_scale, 1, 0, 1 }, { "test_buffer_plot", test_buffer_plot, 1, 1, 1 }, + { "test_height", test_height, 1, 1, 1 }, }; testRun(argc, argv, funcs, ARRAY_SIZE(funcs)); diff --git a/backend/tests/test_vector.c b/backend/tests/test_vector.c index f1a1309a..ba32ef39 100644 --- a/backend/tests/test_vector.c +++ b/backend/tests/test_vector.c @@ -838,6 +838,483 @@ static void test_upcean_whitespace_width(int index, int debug) { testFinish(); } +static void test_height(int index, int generate, int debug) { + + testStart(""); + + int ret; + struct item { + int symbology; + int height; + char *data; + char *composite; + int ret; + + int expected_height; + int expected_rows; + int expected_width; + float expected_vector_width; + float expected_vector_height; + + const char *comment; + }; + struct item data[] = { + /* 0*/ { BARCODE_CODE11, 1, "1234567890", "", 0, 5, 1, 108, 216, 10, "" }, + /* 1*/ { BARCODE_CODE11, 4, "1234567890", "", 0, 5, 1, 108, 216, 10, "" }, + /* 2*/ { BARCODE_CODE11, 10, "1234567890", "", 0, 10, 1, 108, 216, 20, "" }, + /* 3*/ { BARCODE_C25STANDARD, 1, "1234567890", "", 0, 5, 1, 117, 234, 10, "" }, + /* 4*/ { BARCODE_C25STANDARD, 4, "1234567890", "", 0, 5, 1, 117, 234, 10, "" }, + /* 5*/ { BARCODE_C25STANDARD, 11, "1234567890", "", 0, 11, 1, 117, 234, 22, "" }, + /* 6*/ { BARCODE_C25INTER, 1, "1234567890", "", 0, 5, 1, 99, 198, 10, "" }, + /* 7*/ { BARCODE_C25INTER, 4, "1234567890", "", 0, 5, 1, 99, 198, 10, "" }, + /* 8*/ { BARCODE_C25INTER, 15, "1234567890", "", 0, 15, 1, 99, 198, 30, "" }, + /* 9*/ { BARCODE_C25IATA, 1, "1234567890", "", 0, 5, 1, 149, 298, 10, "" }, + /* 10*/ { BARCODE_C25IATA, 4, "1234567890", "", 0, 5, 1, 149, 298, 10, "" }, + /* 11*/ { BARCODE_C25IATA, 30, "1234567890", "", 0, 30, 1, 149, 298, 60, "" }, + /* 12*/ { BARCODE_C25LOGIC, 1, "1234567890", "", 0, 5, 1, 109, 218, 10, "" }, + /* 13*/ { BARCODE_C25LOGIC, 4, "1234567890", "", 0, 5, 1, 109, 218, 10, "" }, + /* 14*/ { BARCODE_C25LOGIC, 41, "1234567890", "", 0, 41, 1, 109, 218, 82, "" }, + /* 15*/ { BARCODE_C25IND, 1, "1234567890", "", 0, 5, 1, 159, 318, 10, "" }, + /* 16*/ { BARCODE_C25IND, 4, "1234567890", "", 0, 5, 1, 159, 318, 10, "" }, + /* 17*/ { BARCODE_C25IND, 21, "1234567890", "", 0, 21, 1, 159, 318, 42, "" }, + /* 18*/ { BARCODE_CODE39, 1, "1234567890", "", 0, 5, 1, 155, 310, 10, "" }, + /* 19*/ { BARCODE_CODE39, 4, "1", "", 0, 5, 1, 38, 76, 10, "" }, + /* 20*/ { BARCODE_CODE39, 17, "1234567890", "", 0, 17, 1, 155, 310, 34, "" }, + /* 21*/ { BARCODE_EXCODE39, 1, "1234567890", "", 0, 5, 1, 155, 310, 10, "" }, + /* 22*/ { BARCODE_EXCODE39, 4, "1234567890", "", 0, 5, 1, 155, 310, 10, "" }, + /* 23*/ { BARCODE_EXCODE39, 17, "1234567890", "", 0, 17, 1, 155, 310, 34, "" }, + /* 24*/ { BARCODE_EANX, 1, "123456789012", "", 0, 5, 1, 95, 226, 20, "EAN-13" }, + /* 25*/ { BARCODE_EANX, 4, "123456789012", "", 0, 5, 1, 95, 226, 20, "" }, + /* 26*/ { BARCODE_EANX, 69, "123456789012", "", 0, 69, 1, 95, 226, 148, "" }, + /* 27*/ { BARCODE_EANX, 55, "1234567", "", 0, 55, 1, 67, 162, 120, "EAN-8" }, + /* 28*/ { BARCODE_EANX, 66, "12345", "", 0, 66, 1, 47, 118, 132, "EAN-8" }, + /* 29*/ { BARCODE_EANX_CHK, 1, "1234567890128", "", 0, 5, 1, 95, 226, 20, "EAN-13" }, + /* 30*/ { BARCODE_EANX_CHK, 69, "1234567890128", "", 0, 69, 1, 95, 226, 148, "" }, + /* 31*/ { BARCODE_GS1_128, 1, "[01]12345678901231", "", 0, 5, 1, 134, 268, 10, "" }, + /* 32*/ { BARCODE_GS1_128, 4, "[01]12345678901231", "", 0, 5, 1, 134, 268, 10, "" }, + /* 33*/ { BARCODE_GS1_128, 5, "[01]12345678901231", "", 0, 5, 1, 134, 268, 10, "" }, + /* 34*/ { BARCODE_GS1_128, 50, "[01]12345678901231", "", 0, 50, 1, 134, 268, 100, "" }, + /* 35*/ { BARCODE_CODABAR, 1, "A0B", "", 0, 5, 1, 32, 64, 10, "" }, + /* 36*/ { BARCODE_CODABAR, 4, "A0B", "", 0, 5, 1, 32, 64, 10, "" }, + /* 37*/ { BARCODE_CODABAR, 26, "A0B", "", 0, 26, 1, 32, 64, 52, "" }, + /* 38*/ { BARCODE_CODE128, 1, "1234567890", "", 0, 5, 1, 90, 180, 10, "" }, + /* 39*/ { BARCODE_CODE128, 4, "1234567890", "", 0, 5, 1, 90, 180, 10, "" }, + /* 40*/ { BARCODE_CODE128, 7, "1234567890", "", 0, 7, 1, 90, 180, 14, "" }, + /* 41*/ { BARCODE_DPLEIT, 1, "1234567890123", "", 0, 5, 1, 135, 270, 10, "" }, + /* 42*/ { BARCODE_DPLEIT, 4, "1234567890123", "", 0, 5, 1, 135, 270, 10, "" }, + /* 43*/ { BARCODE_DPIDENT, 1, "12345678901", "", 0, 5, 1, 117, 234, 10, "" }, + /* 44*/ { BARCODE_DPIDENT, 4, "12345678901", "", 0, 5, 1, 117, 234, 10, "" }, + /* 45*/ { BARCODE_CODE16K, -1, "1234567890", "", 0, 20, 2, 70, 162, 44, "2 rows" }, + /* 46*/ { BARCODE_CODE16K, 1, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 47*/ { BARCODE_CODE16K, 4, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 48*/ { BARCODE_CODE16K, 17, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 49*/ { BARCODE_CODE16K, 40, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 50*/ { BARCODE_CODE16K, -1, "12345678901234567890123456789012345678901234567890", "", 0, 60, 6, 70, 162, 124, "6 rows" }, + /* 51*/ { BARCODE_CODE16K, 30, "12345678901234567890123456789012345678901234567890", "", 0, 60, 6, 70, 162, 124, "" }, + /* 52*/ { BARCODE_CODE16K, 120, "12345678901234567890123456789012345678901234567890", "", 0, 60, 6, 70, 162, 124, "" }, + /* 53*/ { BARCODE_CODE49, -1, "1234567890", "", 0, 20, 2, 70, 162, 44, "2 rows" }, + /* 54*/ { BARCODE_CODE49, 1, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 55*/ { BARCODE_CODE49, 4, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 56*/ { BARCODE_CODE49, 18, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 57*/ { BARCODE_CODE49, 40, "1234567890", "", 0, 20, 2, 70, 162, 44, "" }, + /* 58*/ { BARCODE_CODE49, -1, "12345678901234567890", "", 0, 30, 3, 70, 162, 64, "3 rows" }, + /* 59*/ { BARCODE_CODE49, 15, "12345678901234567890", "", 0, 30, 3, 70, 162, 64, "" }, + /* 60*/ { BARCODE_CODE49, 45, "12345678901234567890", "", 0, 30, 3, 70, 162, 64, "" }, + /* 61*/ { BARCODE_CODE93, 1, "1234567890", "", 0, 5, 1, 127, 254, 10, "" }, + /* 62*/ { BARCODE_CODE93, 4, "1234567890", "", 0, 5, 1, 127, 254, 10, "" }, + /* 63*/ { BARCODE_CODE93, 26, "1234567890", "", 0, 26, 1, 127, 254, 52, "" }, + /* 64*/ { BARCODE_FLAT, 1, "1234567890", "", 0, 5, 1, 90, 180, 10, "" }, + /* 65*/ { BARCODE_FLAT, 4, "1234567890", "", 0, 5, 1, 90, 180, 10, "" }, + /* 66*/ { BARCODE_DBAR_OMN, 1, "1234567890123", "", 0, 14, 1, 96, 192, 28, "" }, + /* 67*/ { BARCODE_DBAR_OMN, 4, "1234567890123", "", 0, 14, 1, 96, 192, 28, "" }, + /* 68*/ { BARCODE_DBAR_OMN, 12, "1234567890123", "", 0, 14, 1, 96, 192, 28, "" }, + /* 69*/ { BARCODE_DBAR_OMN, 33, "1234567890123", "", 0, 33, 1, 96, 192, 66, "" }, + /* 70*/ { BARCODE_DBAR_LTD, 1, "1234567890123", "", 0, 10, 1, 79, 158, 20, "" }, + /* 71*/ { BARCODE_DBAR_LTD, 4, "1234567890123", "", 0, 10, 1, 79, 158, 20, "" }, + /* 72*/ { BARCODE_DBAR_LTD, 9, "1234567890123", "", 0, 10, 1, 79, 158, 20, "" }, + /* 73*/ { BARCODE_DBAR_LTD, 10, "1234567890123", "", 0, 10, 1, 79, 158, 20, "" }, + /* 74*/ { BARCODE_DBAR_EXP, 1, "[01]12345678901231", "", 0, 34, 1, 134, 268, 68, "" }, + /* 75*/ { BARCODE_DBAR_EXP, 33, "[01]12345678901231", "", 0, 34, 1, 134, 268, 68, "" }, + /* 76*/ { BARCODE_DBAR_EXP, 34, "[01]12345678901231", "", 0, 34, 1, 134, 268, 68, "" }, + /* 77*/ { BARCODE_TELEPEN, 1, "1234567890", "", 0, 5, 1, 208, 416, 10, "" }, + /* 78*/ { BARCODE_TELEPEN, 4, "1234567890", "", 0, 5, 1, 208, 416, 10, "" }, + /* 79*/ { BARCODE_UPCA, 1, "12345678901", "", 0, 5, 1, 95, 226, 20, "" }, + /* 80*/ { BARCODE_UPCA, 4, "12345678901", "", 0, 5, 1, 95, 226, 20, "" }, + /* 81*/ { BARCODE_UPCA, 69, "12345678901", "", 0, 69, 1, 95, 226, 148, "" }, + /* 82*/ { BARCODE_UPCA_CHK, 1, "123456789012", "", 0, 5, 1, 95, 226, 20, "" }, + /* 83*/ { BARCODE_UPCE, 1, "1234567", "", 0, 5, 1, 51, 134, 20, "" }, + /* 84*/ { BARCODE_UPCE, 4, "1234567", "", 0, 5, 1, 51, 134, 20, "" }, + /* 85*/ { BARCODE_UPCE, 69, "1234567", "", 0, 69, 1, 51, 134, 148, "" }, + /* 86*/ { BARCODE_UPCE_CHK, 1, "12345670", "", 0, 5, 1, 51, 134, 20, "" }, + /* 87*/ { BARCODE_POSTNET, -1, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 88*/ { BARCODE_POSTNET, 1, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 89*/ { BARCODE_POSTNET, 4, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 90*/ { BARCODE_POSTNET, 9, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 91*/ { BARCODE_POSTNET, 20, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /* 92*/ { BARCODE_MSI_PLESSEY, 1, "1234567890", "", 0, 5, 1, 127, 254, 10, "" }, + /* 93*/ { BARCODE_MSI_PLESSEY, 4, "1234567890", "", 0, 5, 1, 127, 254, 10, "" }, + /* 94*/ { BARCODE_FIM, 1, "A", "", 0, 5, 1, 17, 34, 10, "" }, + /* 95*/ { BARCODE_FIM, 4, "A", "", 0, 5, 1, 17, 34, 10, "" }, + /* 96*/ { BARCODE_FIM, 12, "A", "", 0, 12, 1, 17, 34, 24, "" }, + /* 97*/ { BARCODE_LOGMARS, 1, "1234567890", "", 0, 5, 1, 191, 382, 10, "" }, + /* 98*/ { BARCODE_LOGMARS, 4, "1234567890", "", 0, 5, 1, 191, 382, 10, "" }, + /* 99*/ { BARCODE_LOGMARS, 6, "1234567890", "", 0, 6, 1, 191, 382, 12, "" }, + /*100*/ { BARCODE_LOGMARS, 45, "1234567890", "", 0, 45, 1, 191, 382, 90, "" }, + /*101*/ { BARCODE_PHARMA, 1, "123456", "", 0, 5, 1, 58, 116, 10, "" }, + /*102*/ { BARCODE_PHARMA, 4, "123456", "", 0, 5, 1, 58, 116, 10, "" }, + /*103*/ { BARCODE_PHARMA, 15, "123456", "", 0, 15, 1, 58, 116, 30, "" }, + /*104*/ { BARCODE_PHARMA, 16, "123456", "", 0, 16, 1, 58, 116, 32, "" }, + /*105*/ { BARCODE_PZN, 1, "123456", "", 0, 5, 1, 142, 284, 10, "" }, + /*106*/ { BARCODE_PZN, 4, "123456", "", 0, 5, 1, 142, 284, 10, "" }, + /*107*/ { BARCODE_PZN, 17, "123456", "", 0, 17, 1, 142, 284, 34, "" }, + /*108*/ { BARCODE_PZN, 106, "123456", "", 0, 106, 1, 142, 284, 212, "" }, + /*109*/ { BARCODE_PHARMA_TWO, -1, "12345678", "", 0, 10, 2, 29, 58, 20, "" }, + /*110*/ { BARCODE_PHARMA_TWO, 1, "12345678", "", 0, 10, 2, 29, 58, 20, "" }, + /*111*/ { BARCODE_PHARMA_TWO, 4, "12345678", "", 0, 10, 2, 29, 58, 20, "" }, + /*112*/ { BARCODE_PHARMA_TWO, 15, "12345678", "", 0, 15, 2, 29, 58, 30, "" }, + /*113*/ { BARCODE_PHARMA_TWO, 20, "12345678", "", 0, 20, 2, 29, 58, 40, "" }, + /*114*/ { BARCODE_PHARMA_TWO, 30, "12345678", "", 0, 30, 2, 29, 58, 60, "" }, + /*115*/ { BARCODE_PDF417, 1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 24, 8, 120, 240, 48, "8 rows" }, + /*116*/ { BARCODE_PDF417, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 24, 8, 120, 240, 48, "" }, + /*117*/ { BARCODE_PDF417, 23, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 24, 8, 120, 240, 48, "" }, + /*118*/ { BARCODE_PDF417, 24, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 24, 8, 120, 240, 48, "" }, + /*119*/ { BARCODE_PDF417, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 36, 12, 120, 240, 72, "12 rows" }, + /*120*/ { BARCODE_PDF417, 12, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 36, 12, 120, 240, 72, "" }, + /*121*/ { BARCODE_PDF417COMP, 1, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ", "", 0, 27, 9, 86, 172, 54, "9 rows" }, + /*122*/ { BARCODE_PDF417COMP, 24, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ", "", 0, 27, 9, 86, 172, 54, "" }, + /*123*/ { BARCODE_MAXICODE, 1, "1234567890", "", 0, 165, 33, 30, 60, 57.733398, "Fixed size, symbol->height ignored" }, + /*124*/ { BARCODE_QRCODE, 1, "ABCD", "", 0, 21, 21, 21, 42, 42, "Fixed width-to-height ratio, symbol->height ignored" }, + /*125*/ { BARCODE_CODE128B, 1, "1234567890", "", 0, 5, 1, 145, 290, 10, "" }, + /*126*/ { BARCODE_CODE128B, 4, "1234567890", "", 0, 5, 1, 145, 290, 10, "" }, + /*127*/ { BARCODE_AUSPOST, -1, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*128*/ { BARCODE_AUSPOST, 1, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*129*/ { BARCODE_AUSPOST, 4, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*130*/ { BARCODE_AUSPOST, 7, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*131*/ { BARCODE_AUSPOST, 14, "12345678901234567890123", "", 0, 8, 3, 133, 266, 16, "" }, + /*132*/ { BARCODE_AUSREPLY, 14, "12345678", "", 0, 8, 3, 73, 146, 16, "" }, + /*133*/ { BARCODE_AUSROUTE, 7, "12345678", "", 0, 8, 3, 73, 146, 16, "" }, + /*134*/ { BARCODE_AUSREDIRECT, 14, "12345678", "", 0, 8, 3, 73, 146, 16, "" }, + /*135*/ { BARCODE_ISBNX, 1, "123456789", "", 0, 5, 1, 95, 226, 20, "" }, + /*136*/ { BARCODE_ISBNX, 4, "123456789", "", 0, 5, 1, 95, 226, 20, "" }, + /*137*/ { BARCODE_ISBNX, 69, "123456789", "", 0, 69, 1, 95, 226, 148, "" }, + /*138*/ { BARCODE_RM4SCC, -1, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*139*/ { BARCODE_RM4SCC, 1, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*140*/ { BARCODE_RM4SCC, 4, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*141*/ { BARCODE_RM4SCC, 6, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*142*/ { BARCODE_RM4SCC, 11, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*143*/ { BARCODE_RM4SCC, 16, "1234567890", "", 0, 8, 3, 91, 182, 16, "" }, + /*144*/ { BARCODE_DATAMATRIX, 1, "ABCD", "", 0, 12, 12, 12, 24, 24, "Fixed width-to-height ratio, symbol->height ignored" }, + /*145*/ { BARCODE_EAN14, 1, "1234567890123", "", 0, 5, 1, 134, 268, 10, "" }, + /*146*/ { BARCODE_EAN14, 4, "1234567890123", "", 0, 5, 1, 134, 268, 10, "" }, + /*147*/ { BARCODE_EAN14, 5, "1234567890123", "", 0, 5, 1, 134, 268, 10, "" }, + /*148*/ { BARCODE_VIN, 1, "12345678701234567", "", 0, 5, 1, 246, 492, 10, "" }, + /*149*/ { BARCODE_VIN, 4, "12345678701234567", "", 0, 5, 1, 246, 492, 10, "" }, + /*150*/ { BARCODE_CODABLOCKF, -1, "1234567890", "", 0, 20, 2, 101, 242, 44, "2 rows" }, + /*151*/ { BARCODE_CODABLOCKF, 1, "1234567890", "", 0, 20, 2, 101, 242, 44, "" }, + /*152*/ { BARCODE_CODABLOCKF, 4, "1234567890", "", 0, 20, 2, 101, 242, 44, "" }, + /*153*/ { BARCODE_CODABLOCKF, 30, "1234567890", "", 0, 20, 2, 101, 242, 44, "" }, + /*154*/ { BARCODE_CODABLOCKF, -1, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs", "", 0, 110, 11, 156, 352, 224, "11 rows, 14 cols" }, + /*155*/ { BARCODE_CODABLOCKF, 88, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs", "", 0, 110, 11, 156, 352, 224, "" }, + /*156*/ { BARCODE_CODABLOCKF, 220, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs", "", 0, 110, 11, 156, 352, 224, "" }, + /*157*/ { BARCODE_CODABLOCKF, -1, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv", "", 0, 110, 11, 167, 374, 224, "11 rows, 15 cols" }, + /*158*/ { BARCODE_CODABLOCKF, 88, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv", "", 0, 110, 11, 167, 374, 224, "" }, + /*159*/ { BARCODE_NVE18, 1, "12345678901234567", "", 0, 5, 1, 156, 312, 10, "" }, + /*160*/ { BARCODE_NVE18, 4, "12345678901234567", "", 0, 5, 1, 156, 312, 10, "" }, + /*161*/ { BARCODE_NVE18, 6, "12345678901234567", "", 0, 6, 1, 156, 312, 12, "" }, + /*162*/ { BARCODE_JAPANPOST, -1, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*163*/ { BARCODE_JAPANPOST, 1, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*164*/ { BARCODE_JAPANPOST, 4, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*165*/ { BARCODE_JAPANPOST, 7, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*166*/ { BARCODE_JAPANPOST, 16, "1234567890", "", 0, 8, 3, 133, 266, 16, "" }, + /*167*/ { BARCODE_KOREAPOST, 1, "123456", "", 0, 5, 1, 167, 334, 10, "" }, + /*168*/ { BARCODE_KOREAPOST, 4, "123456", "", 0, 5, 1, 167, 334, 10, "" }, + /*169*/ { BARCODE_DBAR_STK, -1, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*170*/ { BARCODE_DBAR_STK, 1, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*171*/ { BARCODE_DBAR_STK, 4, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*172*/ { BARCODE_DBAR_STK, 12, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*173*/ { BARCODE_DBAR_STK, 13, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*174*/ { BARCODE_DBAR_STK, 24, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*175*/ { BARCODE_DBAR_STK, 26, "1234567890123", "", 0, 13, 3, 50, 100, 26, "" }, + /*176*/ { BARCODE_DBAR_OMNSTK, -1, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*177*/ { BARCODE_DBAR_OMNSTK, 1, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*178*/ { BARCODE_DBAR_OMNSTK, 4, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*179*/ { BARCODE_DBAR_OMNSTK, 68, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*180*/ { BARCODE_DBAR_OMNSTK, 69, "1234567890123", "", 0, 69, 5, 50, 100, 138, "" }, + /*181*/ { BARCODE_DBAR_OMNSTK, 150, "1234567890123", "", 0, 150, 5, 50, 100, 300, "" }, + /*182*/ { BARCODE_DBAR_EXPSTK, -1, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "2 rows" }, + /*183*/ { BARCODE_DBAR_EXPSTK, 1, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "" }, + /*184*/ { BARCODE_DBAR_EXPSTK, 4, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "" }, + /*185*/ { BARCODE_DBAR_EXPSTK, 71, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "" }, + /*186*/ { BARCODE_DBAR_EXPSTK, 76, "[01]12345678901231", "", 0, 71, 5, 102, 204, 142, "" }, + /*187*/ { BARCODE_DBAR_EXPSTK, -1, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "3 rows" }, + /*188*/ { BARCODE_DBAR_EXPSTK, 1, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "" }, + /*189*/ { BARCODE_DBAR_EXPSTK, 54, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "" }, + /*190*/ { BARCODE_DBAR_EXPSTK, 90, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "" }, + /*191*/ { BARCODE_DBAR_EXPSTK, 160, "[01]09501101530003[3920]123456789012345", "", 0, 108, 9, 102, 204, 216, "" }, + /*192*/ { BARCODE_PLANET, -1, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*193*/ { BARCODE_PLANET, 1, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*194*/ { BARCODE_PLANET, 4, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*195*/ { BARCODE_PLANET, 9, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*196*/ { BARCODE_PLANET, 24, "12345678901", "", 0, 12, 2, 123, 246, 24, "" }, + /*197*/ { BARCODE_MICROPDF417, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 20, 10, 82, 164, 40, "10 rows" }, + /*198*/ { BARCODE_MICROPDF417, 1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 20, 10, 82, 164, 40, "" }, + /*199*/ { BARCODE_MICROPDF417, 4, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 20, 10, 82, 164, 40, "" }, + /*200*/ { BARCODE_MICROPDF417, 19, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 20, 10, 82, 164, 40, "" }, + /*201*/ { BARCODE_MICROPDF417, 30, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 30, 10, 82, 164, 60, "" }, + /*202*/ { BARCODE_MICROPDF417, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 40, 20, 55, 110, 80, "20 rows" }, + /*203*/ { BARCODE_MICROPDF417, 20, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, 40, 20, 55, 110, 80, "" }, + /*204*/ { BARCODE_USPS_IMAIL, -1, "12345678901234567890", "", 0, 8, 3, 129, 258, 16, "" }, + /*205*/ { BARCODE_USPS_IMAIL, 1, "12345678901234567890", "", 0, 8, 3, 129, 258, 16, "" }, + /*206*/ { BARCODE_USPS_IMAIL, 4, "12345678901234567890", "", 0, 8, 3, 129, 258, 16, "" }, + /*207*/ { BARCODE_USPS_IMAIL, 7, "12345678901234567890", "", 0, 8, 3, 129, 258, 16, "" }, + /*208*/ { BARCODE_PLESSEY, 1, "1234567890", "", 0, 5, 1, 227, 454, 10, "" }, + /*209*/ { BARCODE_PLESSEY, 4, "1234567890", "", 0, 5, 1, 227, 454, 10, "" }, + /*210*/ { BARCODE_TELEPEN_NUM, 1, "1234567890", "", 0, 5, 1, 128, 256, 10, "" }, + /*211*/ { BARCODE_TELEPEN_NUM, 4, "1234567890", "", 0, 5, 1, 128, 256, 10, "" }, + /*212*/ { BARCODE_ITF14, 1, "1234567890", "", 0, 5, 1, 135, 330, 30, "" }, + /*213*/ { BARCODE_ITF14, 4, "1234567890", "", 0, 5, 1, 135, 330, 30, "" }, + /*214*/ { BARCODE_ITF14, 64, "1234567890", "", 0, 64, 1, 135, 330, 148, "" }, + /*215*/ { BARCODE_KIX, -1, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*216*/ { BARCODE_KIX, 1, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*217*/ { BARCODE_KIX, 4, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*218*/ { BARCODE_KIX, 6, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*219*/ { BARCODE_KIX, 10, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*220*/ { BARCODE_KIX, 16, "1234567890", "", 0, 8, 3, 79, 158, 16, "" }, + /*221*/ { BARCODE_AZTEC, 1, "1234567890AB", "", 0, 15, 15, 15, 30, 30, "Fixed width-to-height ratio, symbol->height ignored" }, + /*222*/ { BARCODE_DAFT, -1, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*223*/ { BARCODE_DAFT, 1, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*224*/ { BARCODE_DAFT, 4, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*225*/ { BARCODE_DAFT, 6, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*226*/ { BARCODE_DAFT, 12, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*227*/ { BARCODE_DAFT, 16, "DAFTDAFTDAFTDAFT", "", 0, 8, 3, 31, 62, 16, "" }, + /*228*/ { BARCODE_DPD, 1, "0123456789012345678901234567", "", 0, 5, 1, 189, 378, 10, "" }, + /*229*/ { BARCODE_DPD, 4, "0123456789012345678901234567", "", 0, 5, 1, 189, 378, 10, "" }, + /*230*/ { BARCODE_DPD, 62, "0123456789012345678901234567", "", 0, 62, 1, 189, 378, 124, "" }, + /*231*/ { BARCODE_MICROQR, 1, "12345", "", 0, 11, 11, 11, 22, 22, "Fixed width-to-height ratio, symbol->height ignored" }, + /*232*/ { BARCODE_HIBC_128, 1, "1234567890", "", 0, 5, 1, 123, 246, 10, "" }, + /*233*/ { BARCODE_HIBC_128, 4, "1234567890", "", 0, 5, 1, 123, 246, 10, "" }, + /*234*/ { BARCODE_HIBC_39, 1, "1234567890", "", 0, 5, 1, 223, 446, 10, "" }, + /*235*/ { BARCODE_HIBC_39, 4, "1234567890", "", 0, 5, 1, 223, 446, 10, "" }, + /*236*/ { BARCODE_HIBC_DM, 1, "ABC", "", 0, 12, 12, 12, 24, 24, "Fixed width-to-height ratio, symbol->height ignored" }, + /*237*/ { BARCODE_HIBC_QR, 1, "1234567890AB", "", 0, 21, 21, 21, 42, 42, "Fixed width-to-height ratio, symbol->height ignored" }, + /*238*/ { BARCODE_HIBC_PDF, -1, "ABCDEF", "", 0, 21, 7, 103, 206, 42, "7 rows" }, + /*239*/ { BARCODE_HIBC_PDF, 1, "ABCDEF", "", 0, 21, 7, 103, 206, 42, "" }, + /*240*/ { BARCODE_HIBC_PDF, 4, "ABCDEF", "", 0, 21, 7, 103, 206, 42, "" }, + /*241*/ { BARCODE_HIBC_PDF, 36, "ABCDEF", "", 0, 35, 7, 103, 206, 70, "" }, + /*242*/ { BARCODE_HIBC_MICPDF, -1, "ABCDEF", "", 0, 12, 6, 82, 164, 24, "6 rows" }, + /*243*/ { BARCODE_HIBC_MICPDF, 1, "ABCDEF", "", 0, 12, 6, 82, 164, 24, "" }, + /*244*/ { BARCODE_HIBC_MICPDF, 4, "ABCDEF", "", 0, 12, 6, 82, 164, 24, "" }, + /*245*/ { BARCODE_HIBC_MICPDF, 47, "ABCDEF", "", 0, 42, 6, 82, 164, 84, "" }, + /*246*/ { BARCODE_HIBC_BLOCKF, -1, "1234567890", "", 0, 30, 3, 101, 242, 64, "3 rows" }, + /*247*/ { BARCODE_HIBC_BLOCKF, 1, "1234567890", "", 0, 30, 3, 101, 242, 64, "" }, + /*248*/ { BARCODE_HIBC_BLOCKF, 4, "1234567890", "", 0, 30, 3, 101, 242, 64, "" }, + /*249*/ { BARCODE_HIBC_BLOCKF, 23, "1234567890", "", 0, 30, 3, 101, 242, 64, "" }, + /*250*/ { BARCODE_HIBC_BLOCKF, 60, "1234567890", "", 0, 30, 3, 101, 242, 64, "" }, + /*251*/ { BARCODE_HIBC_AZTEC, 1, "1234567890AB", "", 0, 19, 19, 19, 38, 38, "Fixed width-to-height ratio, symbol->height ignored" }, + /*252*/ { BARCODE_DOTCODE, 1, "ABC", "", 0, 11, 11, 16, 32, 22, "Fixed width-to-height ratio, symbol->height ignored" }, + /*253*/ { BARCODE_HANXIN, 1, "1234567890AB", "", 0, 23, 23, 23, 46, 46, "Fixed width-to-height ratio, symbol->height ignored" }, + /*254*/ { BARCODE_MAILMARK, -1, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*255*/ { BARCODE_MAILMARK, 1, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*256*/ { BARCODE_MAILMARK, 4, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*257*/ { BARCODE_MAILMARK, 6, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*258*/ { BARCODE_MAILMARK, 10, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*259*/ { BARCODE_MAILMARK, 15, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*260*/ { BARCODE_MAILMARK, 20, "01000000000000000AA00AA0A", "", 0, 10, 3, 155, 310, 20, "" }, + /*261*/ { BARCODE_AZRUNE, 1, "1", "", 0, 11, 11, 11, 22, 22, "Fixed width-to-height ratio, symbol->height ignored" }, + /*262*/ { BARCODE_CODE32, 1, "12345678", "", 0, 5, 1, 103, 206, 10, "" }, + /*263*/ { BARCODE_CODE32, 4, "12345678", "", 0, 5, 1, 103, 206, 10, "" }, + /*264*/ { BARCODE_CODE32, 19, "12345678", "", 0, 19, 1, 103, 206, 38, "" }, + /*265*/ { BARCODE_EANX_CC, -1, "123456789012", "[20]01", 0, 17, 7, 99, 234, 44, "EAN-13, CC-A 3 rows" }, + /*266*/ { BARCODE_EANX_CC, 1, "123456789012", "[20]01", 0, 17, 7, 99, 234, 44, "" }, + /*267*/ { BARCODE_EANX_CC, 4, "123456789012", "[20]01", 0, 17, 7, 99, 234, 44, "" }, + /*268*/ { BARCODE_EANX_CC, 81, "123456789012", "[20]01", 0, 81, 7, 99, 234, 172, "" }, + /*269*/ { BARCODE_EANX_CC, -1, "123456789012", "[20]01[90]123456789012345678901234567890", 0, 21, 9, 99, 234, 52, "EAN-13, CC-A 5 rows" }, + /*270*/ { BARCODE_EANX_CC, 1, "123456789012", "[20]01[90]123456789012345678901234567890", 0, 21, 9, 99, 234, 52, "" }, + /*271*/ { BARCODE_EANX_CC, 4, "123456789012", "[20]01[90]123456789012345678901234567890", 0, 21, 9, 99, 234, 52, "" }, + /*272*/ { BARCODE_EANX_CC, 20, "123456789012", "[20]01[90]123456789012345678901234567890", 0, 21, 9, 99, 234, 52, "" }, + /*273*/ { BARCODE_EANX_CC, -1, "123456789012", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 25, 11, 99, 234, 60, "EAN-13, CC-A 7 rows" }, + /*274*/ { BARCODE_EANX_CC, 1, "123456789012", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 25, 11, 99, 234, 60, "" }, + /*275*/ { BARCODE_EANX_CC, 4, "123456789012", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 25, 11, 99, 234, 60, "" }, + /*276*/ { BARCODE_EANX_CC, 40, "123456789012", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 40, 11, 99, 234, 90, "" }, + /*277*/ { BARCODE_EANX_CC, -1, "123456789012", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 31, 14, 99, 234, 72, "EAN-13, CC-B 10 rows" }, + /*278*/ { BARCODE_EANX_CC, 1, "123456789012", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 31, 14, 99, 234, 72, "" }, + /*279*/ { BARCODE_EANX_CC, 30, "123456789012", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 31, 14, 99, 234, 72, "" }, + /*280*/ { BARCODE_EANX_CC, -1, "1234567", "[20]01[90]123456789012345678901234", 0, 23, 10, 72, 172, 56, "EAN-8, CC-A 4 rows" }, + /*281*/ { BARCODE_EANX_CC, 1, "1234567", "[20]01[90]123456789012345678901234", 0, 23, 10, 72, 172, 56, "" }, + /*282*/ { BARCODE_EANX_CC, 4, "1234567", "[20]01[90]123456789012345678901234", 0, 23, 10, 72, 172, 56, "" }, + /*283*/ { BARCODE_EANX_CC, 69, "1234567", "[20]01[90]123456789012345678901234", 0, 69, 10, 72, 172, 148, "" }, + /*284*/ { BARCODE_EANX_CC, -1, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 24, 82, 192, 112, "EAN-8, CC-B 15 rows" }, + /*285*/ { BARCODE_EANX_CC, 1, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 24, 82, 192, 112, "" }, + /*286*/ { BARCODE_EANX_CC, 32, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 24, 82, 192, 112, "" }, + /*287*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]01", 0, 12, 5, 145, 290, 24, "CC-A 3 rows" }, + /*288*/ { BARCODE_GS1_128_CC, 1, "[01]12345678901231", "[20]01", 0, 12, 5, 145, 290, 24, "" }, + /*289*/ { BARCODE_GS1_128_CC, 4, "[01]12345678901231", "[20]01", 0, 12, 5, 145, 290, 24, "" }, + /*290*/ { BARCODE_GS1_128_CC, 12, "[01]12345678901231", "[20]01", 0, 12, 5, 145, 290, 24, "" }, + /*291*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 20, 9, 145, 290, 40, "CC-A 7 rows" }, + /*292*/ { BARCODE_GS1_128_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 20, 9, 145, 290, 40, "" }, + /*293*/ { BARCODE_GS1_128_CC, 52, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 52, 9, 145, 290, 104, "" }, + /*294*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 26, 12, 145, 290, 52, "CC-B 10 rows" }, + /*295*/ { BARCODE_GS1_128_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 26, 12, 145, 290, 52, "" }, + /*296*/ { BARCODE_GS1_128_CC, 40, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 40, 12, 145, 290, 80, "" }, + /*297*/ { BARCODE_GS1_128_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890", 0, 96, 32, 154, 308, 192, "CC-C 30 rows" }, + /*298*/ { BARCODE_GS1_128_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890", 0, 96, 32, 154, 308, 192, "" }, + /*299*/ { BARCODE_GS1_128_CC, 100, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890[94]123456789012345678901234567890", 0, 100, 32, 154, 308, 200, "" }, + /*300*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123", "[20]01[90]1234567890", 0, 21, 5, 100, 200, 42, "CC-A 3 rows" }, + /*301*/ { BARCODE_DBAR_OMN_CC, 1, "1234567890123", "[20]01[90]1234567890", 0, 21, 5, 100, 200, 42, "" }, + /*302*/ { BARCODE_DBAR_OMN_CC, 4, "1234567890123", "[20]01[90]1234567890", 0, 21, 5, 100, 200, 42, "" }, + /*303*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123", "[20]01[90]12345678901234567890", 0, 23, 6, 100, 200, 46, "CC-A 4 rows" }, + /*304*/ { BARCODE_DBAR_OMN_CC, 1, "1234567890123", "[20]01[90]12345678901234567890", 0, 23, 6, 100, 200, 46, "" }, + /*305*/ { BARCODE_DBAR_OMN_CC, 4, "1234567890123", "[20]01[90]12345678901234567890", 0, 23, 6, 100, 200, 46, "" }, + /*306*/ { BARCODE_DBAR_OMN_CC, 20, "1234567890123", "[20]01[90]12345678901234567890", 0, 23, 6, 100, 200, 46, "" }, + /*307*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 35, 12, 100, 200, 70, "CC-B 10 rows" }, + /*308*/ { BARCODE_DBAR_OMN_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 35, 12, 100, 200, 70, "" }, + /*309*/ { BARCODE_DBAR_OMN_CC, 40, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 35, 12, 100, 200, 70, "" }, + /*310*/ { BARCODE_DBAR_OMN_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890", 0, 39, 14, 100, 200, 78, "CC-B 12 rows" }, + /*311*/ { BARCODE_DBAR_OMN_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890", 0, 39, 14, 100, 200, 78, "" }, + /*312*/ { BARCODE_DBAR_OMN_CC, 36, "1234567890123", "[20]01[90]123456789012345678901234567890[91]123456789012345678901234567890", 0, 39, 14, 100, 200, 78, "" }, + /*313*/ { BARCODE_DBAR_LTD_CC, -1, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "CC-A 4 rows" }, + /*314*/ { BARCODE_DBAR_LTD_CC, 1, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "" }, + /*315*/ { BARCODE_DBAR_LTD_CC, 4, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "" }, + /*316*/ { BARCODE_DBAR_LTD_CC, 18, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "" }, + /*317*/ { BARCODE_DBAR_LTD_CC, 19, "1234567890123", "[20]01", 0, 19, 6, 79, 158, 38, "" }, + /*318*/ { BARCODE_DBAR_LTD_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890", 0, 25, 9, 79, 158, 50, "CC-A 7 rows" }, + /*319*/ { BARCODE_DBAR_LTD_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890", 0, 25, 9, 79, 158, 50, "" }, + /*320*/ { BARCODE_DBAR_LTD_CC, 26, "1234567890123", "[20]01[90]123456789012345678901234567890", 0, 25, 9, 79, 158, 50, "" }, + /*321*/ { BARCODE_DBAR_LTD_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 22, 88, 176, 102, "CC-B 20 rows" }, + /*322*/ { BARCODE_DBAR_LTD_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 22, 88, 176, 102, "" }, + /*323*/ { BARCODE_DBAR_LTD_CC, 50, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567890", 0, 51, 22, 88, 176, 102, "" }, + /*324*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "CC-A 3 rows" }, + /*325*/ { BARCODE_DBAR_EXP_CC, 1, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "" }, + /*326*/ { BARCODE_DBAR_EXP_CC, 4, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "" }, + /*327*/ { BARCODE_DBAR_EXP_CC, 40, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "" }, + /*328*/ { BARCODE_DBAR_EXP_CC, 41, "[01]12345678901231", "[20]01", 0, 41, 5, 134, 268, 82, "" }, + /*329*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890", 0, 45, 7, 134, 268, 90, "CC-A 5 rows" }, + /*330*/ { BARCODE_DBAR_EXP_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890", 0, 45, 7, 134, 268, 90, "" }, + /*331*/ { BARCODE_DBAR_EXP_CC, 50, "[01]12345678901231", "[20]01[90]123456789012345678901234567890", 0, 45, 7, 134, 268, 90, "" }, + /*332*/ { BARCODE_DBAR_EXP_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 55, 12, 134, 268, 110, "CC-B 10 rows" }, + /*333*/ { BARCODE_DBAR_EXP_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 55, 12, 134, 268, 110, "" }, + /*334*/ { BARCODE_DBAR_EXP_CC, 46, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 55, 12, 134, 268, 110, "" }, + /*335*/ { BARCODE_UPCA_CC, -1, "12345678901", "[20]01", 0, 17, 7, 99, 234, 44, "CC-A 3 rows" }, + /*336*/ { BARCODE_UPCA_CC, 1, "12345678901", "[20]01", 0, 17, 7, 99, 234, 44, "" }, + /*337*/ { BARCODE_UPCA_CC, 4, "12345678901", "[20]01", 0, 17, 7, 99, 234, 44, "" }, + /*338*/ { BARCODE_UPCA_CC, 81, "12345678901", "[20]01", 0, 81, 7, 99, 234, 172, "" }, + /*339*/ { BARCODE_UPCA_CC, -1, "12345678901", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 23, 10, 99, 234, 56, "CC-A 6 rows" }, + /*340*/ { BARCODE_UPCA_CC, 1, "12345678901", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 23, 10, 99, 234, 56, "" }, + /*341*/ { BARCODE_UPCA_CC, 4, "12345678901", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 23, 10, 99, 234, 56, "" }, + /*342*/ { BARCODE_UPCA_CC, -1, "12345678901", "[20]01[90]123456789012345678901234567890[91]123456789012345678912345678901234567", 0, 35, 16, 99, 234, 80, "CC-B 12 rows" }, + /*343*/ { BARCODE_UPCA_CC, 1, "12345678901", "[20]01[90]123456789012345678901234567890[91]123456789012345678912345678901234567", 0, 35, 16, 99, 234, 80, "" }, + /*344*/ { BARCODE_UPCA_CC, 51, "12345678901", "[20]01[90]123456789012345678901234567890[91]123456789012345678912345678901234567", 0, 51, 16, 99, 234, 112, "" }, + /*345*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]01[90]123456789012345678", 0, 25, 11, 55, 142, 60, "CC-A 7 rows" }, + /*346*/ { BARCODE_UPCE_CC, 1, "1234567", "[20]01[90]123456789012345678", 0, 25, 11, 55, 142, 60, "" }, + /*347*/ { BARCODE_UPCE_CC, 4, "1234567", "[20]01[90]123456789012345678", 0, 25, 11, 55, 142, 60, "" }, + /*348*/ { BARCODE_UPCE_CC, 85, "1234567", "[20]01[90]123456789012345678", 0, 85, 11, 55, 142, 180, "" }, + /*349*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 35, 16, 55, 142, 80, "CC-A 12 rows" }, + /*350*/ { BARCODE_UPCE_CC, 1, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 35, 16, 55, 142, 80, "" }, + /*351*/ { BARCODE_UPCE_CC, 49, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 49, 16, 55, 142, 108, "" }, + /*352*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 45, 21, 55, 142, 100, "CC-B 17 rows" }, + /*353*/ { BARCODE_UPCE_CC, 1, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 45, 21, 55, 142, 100, "" }, + /*354*/ { BARCODE_UPCE_CC, 4, "1234567", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 45, 21, 55, 142, 100, "" }, + /*355*/ { BARCODE_UPCE_CC, -1, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567", 0, 57, 27, 55, 142, 124, "CC-B 23 rows" }, + /*356*/ { BARCODE_UPCE_CC, 1, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567", 0, 57, 27, 55, 142, 124, "" }, + /*357*/ { BARCODE_UPCE_CC, 52, "1234567", "[20]01[90]123456789012345678901234567890[91]1234567890123456789012345678901234567", 0, 57, 27, 55, 142, 124, "" }, + /*358*/ { BARCODE_DBAR_STK_CC, -1, "1234567890123", "[20]01", 0, 24, 9, 56, 112, 48, "CC-A 5 rows" }, + /*359*/ { BARCODE_DBAR_STK_CC, 1, "1234567890123", "[20]01", 0, 24, 9, 56, 112, 48, "" }, + /*360*/ { BARCODE_DBAR_STK_CC, 4, "1234567890123", "[20]01", 0, 24, 9, 56, 112, 48, "" }, + /*361*/ { BARCODE_DBAR_STK_CC, 24, "1234567890123", "[20]01", 0, 24, 9, 56, 112, 48, "" }, + /*362*/ { BARCODE_DBAR_STK_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 38, 16, 56, 112, 76, "CC-A 12 rows" }, + /*363*/ { BARCODE_DBAR_STK_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 38, 16, 56, 112, 76, "" }, + /*364*/ { BARCODE_DBAR_STK_CC, 25, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678", 0, 38, 16, 56, 112, 76, "" }, + /*365*/ { BARCODE_DBAR_STK_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 48, 21, 56, 112, 96, "CC-B 17 rows" }, + /*366*/ { BARCODE_DBAR_STK_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 48, 21, 56, 112, 96, "" }, + /*367*/ { BARCODE_DBAR_STK_CC, 59, "1234567890123", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 48, 21, 56, 112, 96, "" }, + /*368*/ { BARCODE_DBAR_OMNSTK_CC, -1, "1234567890123", "[20]01[90]1234567890123456", 0, 82, 12, 56, 112, 164, "CC-A 6 rows" }, + /*369*/ { BARCODE_DBAR_OMNSTK_CC, 1, "1234567890123", "[20]01[90]1234567890123456", 0, 82, 12, 56, 112, 164, "" }, + /*370*/ { BARCODE_DBAR_OMNSTK_CC, 4, "1234567890123", "[20]01[90]1234567890123456", 0, 82, 12, 56, 112, 164, "" }, + /*371*/ { BARCODE_DBAR_OMNSTK_CC, 80, "1234567890123", "[20]01[90]1234567890123456", 0, 82, 12, 56, 112, 164, "" }, + /*372*/ { BARCODE_DBAR_OMNSTK_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567", 0, 94, 18, 56, 112, 188, "CC-A 12 rows" }, + /*373*/ { BARCODE_DBAR_OMNSTK_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567", 0, 94, 18, 56, 112, 188, "" }, + /*374*/ { BARCODE_DBAR_OMNSTK_CC, -1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 104, 23, 56, 112, 208, "CC-B 17 rows" }, + /*375*/ { BARCODE_DBAR_OMNSTK_CC, 1, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 104, 23, 56, 112, 208, "" }, + /*376*/ { BARCODE_DBAR_OMNSTK_CC, 4, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 104, 23, 56, 112, 208, "" }, + /*377*/ { BARCODE_DBAR_OMNSTK_CC, 52, "1234567890123", "[20]01[90]123456789012345678901234567890[91]1234567890", 0, 104, 23, 56, 112, 208, "" }, + /*378*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "3 rows, CC-A 3 rows" }, + /*379*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "" }, + /*380*/ { BARCODE_DBAR_EXPSTK_CC, 4, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "" }, + /*381*/ { BARCODE_DBAR_EXPSTK_CC, 77, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "" }, + /*382*/ { BARCODE_DBAR_EXPSTK_CC, 78, "[01]12345678901231", "[20]01", 0, 78, 9, 102, 204, 156, "" }, + /*383*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01", 0, 189, 21, 102, 204, 378, "5 rows, CC-A 3 rows" }, + /*384*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01", 0, 189, 21, 102, 204, 378, "" }, + /*385*/ { BARCODE_DBAR_EXPSTK_CC, 190, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01", 0, 189, 21, 102, 204, 378, "" }, + /*386*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231", "[20]01[90]12345678901234567890", 0, 80, 10, 102, 204, 160, "3 rows, CC-A 4 rows" }, + /*387*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[01]12345678901231", "[20]01[90]12345678901234567890", 0, 80, 10, 102, 204, 160, "" }, + /*388*/ { BARCODE_DBAR_EXPSTK_CC, 38, "[01]12345678901231", "[20]01[90]12345678901234567890", 0, 80, 10, 102, 204, 160, "" }, + /*389*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 92, 16, 102, 204, 184, "3 rows, CC-B 10 rows" }, + /*390*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 92, 16, 102, 204, 184, "" }, + /*391*/ { BARCODE_DBAR_EXPSTK_CC, 4, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 92, 16, 102, 204, 184, "" }, + /*392*/ { BARCODE_DBAR_EXPSTK_CC, 47, "[01]12345678901231", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 92, 16, 102, 204, 184, "" }, + /*393*/ { BARCODE_DBAR_EXPSTK_CC, -1, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 203, 28, 102, 204, 406, "5 rows, CC-B 10 rows" }, + /*394*/ { BARCODE_DBAR_EXPSTK_CC, 1, "[91]ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFG", "[20]01[90]123456789012345678901234567890[91]12345678901234567890", 0, 203, 28, 102, 204, 406, "" }, + /*395*/ { BARCODE_CHANNEL, 1, "1", "", 0, 5, 1, 19, 38, 10, "" }, + /*396*/ { BARCODE_CHANNEL, 4, "123", "", 0, 5, 1, 23, 46, 10, "" }, + /*397*/ { BARCODE_CODEONE, 1, "12345678901234567890", "", 0, 16, 16, 18, 36, 32, "Fixed height, symbol->height ignored" }, + /*398*/ { BARCODE_GRIDMATRIX, 1, "ABC", "", 0, 18, 18, 18, 36, 36, "Fixed width-to-height ratio, symbol->height ignored" }, + /*399*/ { BARCODE_UPNQR, 1, "1234567890AB", "", 0, 77, 77, 77, 154, 154, "Fixed width-to-height ratio, symbol->height ignored" }, + /*400*/ { BARCODE_ULTRA, 1, "1234567890", "", 0, 13, 13, 18, 36, 26, "Fixed width-to-height ratio, symbol->height ignored" }, + /*401*/ { BARCODE_RMQR, 1, "12345", "", 0, 11, 11, 27, 54, 22, "Fixed width-to-height ratio, symbol->height ignored" }, + }; + int data_size = ARRAY_SIZE(data); + + char *text; + + for (int i = 0; i < data_size; i++) { + + if (index != -1 && i != index) continue; + if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i); + + struct zint_symbol *symbol = ZBarcode_Create(); + assert_nonnull(symbol, "Symbol not created\n"); + + symbol->symbology = data[i].symbology; + symbol->height = data[i].height; + symbol->input_mode = UNICODE_MODE; + symbol->show_hrt = 0; // Note: disabling HRT + symbol->debug |= debug; + + if (strlen(data[i].composite)) { + text = data[i].composite; + strcpy(symbol->primary, data[i].data); + } else { + text = data[i].data; + } + int length = strlen(text); + + ret = ZBarcode_Encode(symbol, (unsigned char *) text, length); + assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode(%s) ret %d != %d (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, data[i].ret, symbol->errtxt); + + ret = ZBarcode_Buffer_Vector(symbol, 0); + assert_zero(ret, "i:%d ZBarcode_Buffer_Vector(%s) ret %d != 0 (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, symbol->errtxt); + assert_nonnull(symbol->vector, "i:%d ZBarcode_Buffer_Vector(%s) vector NULL\n", i, testUtilBarcodeName(data[i].symbology)); + + if (generate) { + printf(" /*%3d*/ { %s, %d, \"%s\", \"%s\", %s, %d, %d, %d, %.8g, %.8g, \"%s\" },\n", + i, testUtilBarcodeName(data[i].symbology), data[i].height, data[i].data, data[i].composite, testUtilErrorName(data[i].ret), + symbol->height, symbol->rows, symbol->width, symbol->vector->width, symbol->vector->height, data[i].comment); + } else { + assert_equal(symbol->height, data[i].expected_height, "i:%d (%s) symbol->height %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->height, data[i].expected_height); + assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%s) symbol->rows %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->rows, data[i].expected_rows); + assert_equal(symbol->width, data[i].expected_width, "i:%d (%s) symbol->width %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->width, data[i].expected_width); + assert_equal(symbol->vector->width, data[i].expected_vector_width, "i:%d (%s) symbol->vector->width %.8g != %.8g\n", + i, testUtilBarcodeName(data[i].symbology), symbol->vector->width, data[i].expected_vector_width); + assert_equal(symbol->vector->height, data[i].expected_vector_height, "i:%d (%s) symbol->vector->height %.8g != %.8g\n", + i, testUtilBarcodeName(data[i].symbology), symbol->vector->height, data[i].expected_vector_height); + } + + ZBarcode_Delete(symbol); + } + + testFinish(); +} + int main(int argc, char *argv[]) { testFunction funcs[] = { /* name, func, has_index, has_generate, has_debug */ @@ -849,6 +1326,7 @@ int main(int argc, char *argv[]) { { "test_output_options", test_output_options, 1, 0, 1 }, { "test_noncomposite_string_x", test_noncomposite_string_x, 1, 0, 1 }, { "test_upcean_whitespace_width", test_upcean_whitespace_width, 1, 0, 1 }, + { "test_height", test_height, 1, 1, 1 }, }; testRun(argc, argv, funcs, ARRAY_SIZE(funcs));