- Add text_gap option to allow adjustment of vertical gap between

barcode and text
- EMF/EPS/SVG/GUI: ignore BOLD_TEXT for EAN/UPC
- DAFT: up max to 250 chars
- EMF/EPS/SVG: fix addon bars placement/length when text hidden
- Qt backend: use `QFontMetrics::horizontalAdvance()` rather than
  `boundingRect()` to calc text width (seems to be more accurate)
- library: make printf/sprintf() format arg always literal string
- output: fix errtxt nos clash;
  use array for `out_upcean_split_text()` text parts
- raster/vector: smallify addon text printing logic
- frontend: warn if output file and direct options both given;
  add TODO note about `CommandLineToArgvW()` loading shell32.dll
- manual: put HRT options in own section
This commit is contained in:
gitlost 2023-02-10 14:44:10 +00:00
parent ab2abccdb6
commit 90293ebcda
167 changed files with 2706 additions and 1734 deletions

View file

@ -7,6 +7,9 @@ Version 2.12.0.9 (dev) not released yet
for "C,M,Y,K" comma-separated decimal percentage strings
- CMYK values for EPS (slightly) and TIF (significantly) have changed - now use
the same RGB -> CMYK formula
- Text (HRT) placement for vector (EMF/EPS/SVG) output changed - for EAN/UPC
slightly further away from barcode, for all others slightly nearer. Some
horizontal alignments of EAN/UPC vector text also tweaked
Changes
-------
@ -25,6 +28,9 @@ Changes
- GUI: Rearrange some Appearance tab inputs (Border Type <-> Width, Show Text
<-> Font, Text/Font <-> Printing Scale/Size) to flow more naturally;
save button "Save As..." -> "Save..." and add icon
- Add `text_gap` option to allow adjustment of vertical gap between barcode and
text (HRT)
- DAFT: up max to 250 chars
Bugs
----
@ -35,6 +41,8 @@ Bugs
- GUI: fg/bgcolor text edit: fix right-click context menu not working properly
by checking for it on FocusOut
- GUI: fix fg/gbcolor icon background not being reset on zap
- EMF/EPS/SVG/GUI: ignore BOLD_TEXT for EAN/UPC
- EMF/EPS/SVG: fix addon bars placement/length when text hidden
Version 2.12.0 (2022-12-12)

View file

@ -553,8 +553,7 @@ INTERNAL int emf_plot(struct zint_symbol *symbol, int rotate_angle) {
/* Create font records, alignment records and text color */
if (symbol->vector->strings) {
bold = (symbol->output_options & BOLD_TEXT) &&
(!is_extendable(symbol->symbology) || (symbol->output_options & SMALL_TEXT));
bold = (symbol->output_options & BOLD_TEXT) && !is_extendable(symbol->symbology);
memset(&emr_extcreatefontindirectw, 0, sizeof(emr_extcreatefontindirectw));
emr_extcreatefontindirectw.type = 0x00000052; /* EMR_EXTCREATEFONTINDIRECTW */
emr_extcreatefontindirectw.size = 104;

View file

@ -1,7 +1,7 @@
/* gs1.c - Verifies GS1 data */
/*
libzint - the open source barcode library
Copyright (C) 2009-2022 Robin Stuart <rstuart114@gmail.com>
Copyright (C) 2009-2023 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@ -846,7 +846,11 @@ static const unsigned char *coupon_vli(const unsigned char *data, const int data
if ((vli < vli_min || vli > vli_max) && (vli != 9 || !vli_nine)) {
*p_err_no = 3;
*p_err_posn = d - data + 1;
sprintf(err_msg, vli < 0 ? "Non-numeric %s VLI '%c'" : "Invalid %s VLI '%c'", name, *d);
if (vli < 0) {
sprintf(err_msg, "Non-numeric %s VLI '%c'", name, *d);
} else {
sprintf(err_msg, "Invalid %s VLI '%c'", name, *d);
}
return NULL;
}
d++;
@ -1101,8 +1105,11 @@ static int couponcode(const unsigned char *data, int data_len, int offset, int m
*p_err_no = 3;
*p_err_posn = d - 1 - data + 1;
sprintf(err_msg, data_field < 0 ? "Non-numeric Data Field '%c'" : "Invalid Data Field '%c'",
*(d - 1));
if (data_field < 0) {
sprintf(err_msg, "Non-numeric Data Field '%c'", *(d - 1));
} else {
sprintf(err_msg, "Invalid Data Field '%c'", *(d - 1));
}
return 0;
}
}

View file

@ -216,9 +216,7 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
static int error_tag(struct zint_symbol *symbol, int error_number, const char *error_string) {
if (error_number != 0) {
static const char error_fmt[] = "Error %.93s"; /* Truncate if too long */
static const char warn_fmt[] = "Warning %.91s"; /* Truncate if too long */
const char *fmt = error_number >= ZINT_ERROR ? error_fmt : warn_fmt;
const char *const error_arg = error_string ? error_string : symbol->errtxt;
char error_buffer[100];
if (error_number < ZINT_ERROR && symbol->warn_level == WARN_FAIL_ALL) {
@ -230,9 +228,12 @@ static int error_tag(struct zint_symbol *symbol, int error_number, const char *e
} else { /* ZINT_WARN_INVALID_OPTION */
error_number = ZINT_ERROR_INVALID_OPTION;
}
fmt = error_fmt;
}
sprintf(error_buffer, fmt, error_string ? error_string : symbol->errtxt);
if (error_number >= ZINT_ERROR) {
sprintf(error_buffer, "Error %.93s", error_arg); /* Truncate if too long */
} else {
sprintf(error_buffer, "Warning %.91s", error_arg); /* Truncate if too long */
}
strcpy(symbol->errtxt, error_buffer);
}
@ -1096,6 +1097,9 @@ int ZBarcode_Encode_Segs(struct zint_symbol *symbol, const struct zint_seg segs[
if ((symbol->guard_descent < 0.0f) || (symbol->guard_descent > 50.0f)) {
return error_tag(symbol, ZINT_ERROR_INVALID_OPTION, "769: Guard bar descent out of range (0 to 50)");
}
if ((symbol->text_gap < 0.0f) || (symbol->text_gap > 5.0f)) {
return error_tag(symbol, ZINT_ERROR_INVALID_OPTION, "219: Text gap out of range (0 to 5)");
}
if ((symbol->whitespace_width < 0) || (symbol->whitespace_width > 100)) {
return error_tag(symbol, ZINT_ERROR_INVALID_OPTION, "766: Whitespace width out of range (0 to 100)");
}
@ -1185,7 +1189,7 @@ int ZBarcode_Encode_Segs(struct zint_symbol *symbol, const struct zint_seg segs[
local_segs[0].length = (int) ustrlen(reduced);
}
} else {
return error_tag(symbol, ZINT_ERROR_INVALID_OPTION, "220: Selected symbology does not support GS1 mode");
return error_tag(symbol, ZINT_ERROR_INVALID_OPTION, "210: Selected symbology does not support GS1 mode");
}
}
@ -1445,7 +1449,7 @@ int ZBarcode_Encode_File(struct zint_symbol *symbol, const char *filename) {
return error_tag(symbol, ZINT_ERROR_INVALID_DATA, "239: Filename NULL");
}
if (!strcmp(filename, "-")) {
if (strcmp(filename, "-") == 0) {
file = stdin;
fileLen = ZINT_MAX_DATA_LEN;
} else {

View file

@ -41,7 +41,6 @@
#endif
#include "common.h"
#include "output.h"
#include "font.h"
#define OUT_SSET_F (IS_NUM_F | IS_UHX_F | IS_LHX_F) /* SSET "0123456789ABCDEFabcdef" */
@ -53,11 +52,11 @@ static int out_check_colour(struct zint_symbol *symbol, const char *colour, cons
if ((comma1 = strchr(colour, ',')) == NULL) {
const int len = (int) strlen(colour);
if ((len != 6) && (len != 8)) {
sprintf(symbol->errtxt, "690: Malformed %s RGB colour (6 or 8 characters only)", name);
sprintf(symbol->errtxt, "880: Malformed %s RGB colour (6 or 8 characters only)", name);
return ZINT_ERROR_INVALID_OPTION;
}
if (!is_sane(OUT_SSET_F, (unsigned char *) colour, len)) {
sprintf(symbol->errtxt, "691: Malformed %s RGB colour '%s' (hexadecimal only)", name, colour);
sprintf(symbol->errtxt, "881: Malformed %s RGB colour '%s' (hexadecimal only)", name, colour);
return ZINT_ERROR_INVALID_OPTION;
}
@ -67,28 +66,28 @@ static int out_check_colour(struct zint_symbol *symbol, const char *colour, cons
/* CMYK comma-separated percentages */
if ((comma2 = strchr(comma1 + 1, ',')) == NULL || (comma3 = strchr(comma2 + 1, ',')) == NULL
|| strchr(comma3 + 1, ',') != NULL) {
sprintf(symbol->errtxt, "692: Malformed %s CMYK colour (4 decimal numbers, comma-separated)", name);
sprintf(symbol->errtxt, "882: Malformed %s CMYK colour (4 decimal numbers, comma-separated)", name);
return ZINT_ERROR_INVALID_OPTION;
}
if (comma1 - colour > 3 || comma2 - (comma1 + 1) > 3 || comma3 - (comma2 + 1) > 3 || strlen(comma3 + 1) > 3) {
sprintf(symbol->errtxt, "693: Malformed %s CMYK colour (3 digit maximum per number)", name);
sprintf(symbol->errtxt, "883: Malformed %s CMYK colour (3 digit maximum per number)", name);
return ZINT_ERROR_INVALID_OPTION;
}
if ((val = to_int((const unsigned char *) colour, (int) (comma1 - colour))) == -1 || val > 100) {
sprintf(symbol->errtxt, "694: Malformed %s CMYK colour C (decimal 0-100 only)", name);
sprintf(symbol->errtxt, "884: Malformed %s CMYK colour C (decimal 0-100 only)", name);
return ZINT_ERROR_INVALID_OPTION;
}
if ((val = to_int((const unsigned char *) (comma1 + 1), (int) (comma2 - (comma1 + 1)))) == -1 || val > 100) {
sprintf(symbol->errtxt, "695: Malformed %s CMYK colour M (decimal 0-100 only)", name);
sprintf(symbol->errtxt, "885: Malformed %s CMYK colour M (decimal 0-100 only)", name);
return ZINT_ERROR_INVALID_OPTION;
}
if ((val = to_int((const unsigned char *) (comma2 + 1), (int) (comma3 - (comma2 + 1)))) == -1 || val > 100) {
sprintf(symbol->errtxt, "696: Malformed %s CMYK colour Y (decimal 0-100 only)", name);
sprintf(symbol->errtxt, "886: Malformed %s CMYK colour Y (decimal 0-100 only)", name);
return ZINT_ERROR_INVALID_OPTION;
}
if ((val = to_int((const unsigned char *) (comma3 + 1), (int) strlen(comma3 + 1))) == -1 || val > 100) {
sprintf(symbol->errtxt, "697: Malformed %s CMYK colour K (decimal 0-100 only)", name);
sprintf(symbol->errtxt, "887: Malformed %s CMYK colour K (decimal 0-100 only)", name);
return ZINT_ERROR_INVALID_OPTION;
}
@ -741,7 +740,8 @@ INTERNAL int out_process_upcean(const struct zint_symbol *symbol, int *p_main_wi
/* Calculate large bar height i.e. linear bars with zero row height that respond to the symbol height.
If scaler `si` non-zero (raster), then large_bar_height if non-zero or else row heights will be rounded
to nearest pixel and symbol height adjusted */
INTERNAL float out_large_bar_height(struct zint_symbol *symbol, int si, int *row_heights_si, int *symbol_height_si) {
INTERNAL float out_large_bar_height(struct zint_symbol *symbol, const int si, int *row_heights_si,
int *symbol_height_si) {
float fixed_height = 0.0f;
int zero_count = 0;
int round_rows = 0;
@ -812,64 +812,62 @@ INTERNAL float out_large_bar_height(struct zint_symbol *symbol, int si, int *row
}
/* Split UPC/EAN add-on text into various constituents */
INTERNAL void out_upcean_split_text(int upceanflag, unsigned char text[],
unsigned char textpart1[5], unsigned char textpart2[7], unsigned char textpart3[7],
unsigned char textpart4[2]) {
INTERNAL void out_upcean_split_text(const int upceanflag, const unsigned char text[], unsigned char textparts[4][7]) {
int i;
if (upceanflag == 6) { /* UPC-E */
textpart1[0] = text[0];
textpart1[1] = '\0';
textparts[0][0] = text[0];
textparts[0][1] = '\0';
for (i = 0; i < 6; i++) {
textpart2[i] = text[i + 1];
textparts[1][i] = text[i + 1];
}
textpart2[6] = '\0';
textparts[1][6] = '\0';
textpart3[0] = text[7];
textpart3[1] = '\0';
textparts[2][0] = text[7];
textparts[2][1] = '\0';
} else if (upceanflag == 8) { /* EAN-8 */
for (i = 0; i < 4; i++) {
textpart1[i] = text[i];
textparts[0][i] = text[i];
}
textpart1[4] = '\0';
textparts[0][4] = '\0';
for (i = 0; i < 4; i++) {
textpart2[i] = text[i + 4];
textparts[1][i] = text[i + 4];
}
textpart2[4] = '\0';
textparts[1][4] = '\0';
} else if (upceanflag == 12) { /* UPC-A */
textpart1[0] = text[0];
textpart1[1] = '\0';
textparts[0][0] = text[0];
textparts[0][1] = '\0';
for (i = 0; i < 5; i++) {
textpart2[i] = text[i + 1];
textparts[1][i] = text[i + 1];
}
textpart2[5] = '\0';
textparts[1][5] = '\0';
for (i = 0; i < 5; i++) {
textpart3[i] = text[i + 6];
textparts[2][i] = text[i + 6];
}
textpart3[5] = '\0';
textparts[2][5] = '\0';
textpart4[0] = text[11];
textpart4[1] = '\0';
textparts[3][0] = text[11];
textparts[3][1] = '\0';
} else if (upceanflag == 13) { /* EAN-13 */
textpart1[0] = text[0];
textpart1[1] = '\0';
textparts[0][0] = text[0];
textparts[0][1] = '\0';
for (i = 0; i < 6; i++) {
textpart2[i] = text[i + 1];
textparts[1][i] = text[i + 1];
}
textpart2[6] = '\0';
textparts[1][6] = '\0';
for (i = 0; i < 6; i++) {
textpart3[i] = text[i + 7];
textparts[2][i] = text[i + 7];
}
textpart3[6] = '\0';
textparts[2][6] = '\0';
}
}

View file

@ -62,12 +62,11 @@ INTERNAL int out_process_upcean(const struct zint_symbol *symbol, int *p_main_wi
/* Calculate large bar height i.e. linear bars with zero row height that respond to the symbol height.
If scaler `si` non-zero (raster), then large_bar_height if non-zero or else row heights will be rounded
to nearest pixel and symbol height adjusted */
INTERNAL float out_large_bar_height(struct zint_symbol *symbol, int si, int *row_heights_si, int *symbol_height_si);
INTERNAL float out_large_bar_height(struct zint_symbol *symbol, const int si, int *row_heights_si,
int *symbol_height_si);
/* Split UPC/EAN add-on text into various constituents */
INTERNAL void out_upcean_split_text(int upceanflag, unsigned char text[],
unsigned char textpart1[5], unsigned char textpart2[7], unsigned char textpart3[7],
unsigned char textpart4[2]);
INTERNAL void out_upcean_split_text(const int upceanflag, const unsigned char text[], unsigned char textparts[4][7]);
/* Create output file, creating sub-directories if necessary. Returns `fopen()` FILE pointer */
INTERNAL FILE *out_fopen(const char filename[256], const char *mode);

View file

@ -1,7 +1,7 @@
/* postal.c - Handles POSTNET, PLANET, CEPNet, FIM. RM4SCC and Flattermarken */
/*
libzint - the open source barcode library
Copyright (C) 2008-2022 Robin Stuart <rstuart114@gmail.com>
Copyright (C) 2008-2023 Robin Stuart <rstuart114@gmail.com>
Including bug fixes by Bryan Hatton
Redistribution and use in source and binary forms, with or without
@ -559,12 +559,12 @@ INTERNAL int kix(struct zint_symbol *symbol, unsigned char source[], int length)
/* Handles DAFT Code symbols */
INTERNAL int daft(struct zint_symbol *symbol, unsigned char source[], int length) {
int posns[100];
int posns[250];
int loopey;
int writer;
if (length > 100) {
strcpy(symbol->errtxt, "492: Input too long (100 character maximum)");
if (length > 250) {
strcpy(symbol->errtxt, "492: Input too long (250 character maximum)");
return ZINT_ERROR_TOO_LONG;
}
to_upper(source, length);

View file

@ -427,8 +427,7 @@ INTERNAL int ps_plot(struct zint_symbol *symbol) {
string = symbol->vector->strings;
if (string) {
if ((symbol->output_options & BOLD_TEXT)
&& (!is_extendable(symbol->symbology) || (symbol->output_options & SMALL_TEXT))) {
if ((symbol->output_options & BOLD_TEXT) && !is_extendable(symbol->symbology)) {
font = "Helvetica-Bold";
} else {
font = "Helvetica";

View file

@ -44,10 +44,10 @@
#include "font.h" /* Font for human readable text */
#define DEFAULT_INK '1'
#define DEFAULT_PAPER '0'
#define DEFAULT_INK '1' /* Black */
#define DEFAULT_PAPER '0' /* White */
#define UPCEAN_TEXT 1
#define UPCEAN_TEXT 1 /* Helper flag for `draw_string()`/`draw_letter()` to indicate dealing with UPC/EAN */
#ifndef ZINT_NO_PNG
INTERNAL int png_pixel_plot(struct zint_symbol *symbol, const unsigned char *pixelbuf);
@ -61,7 +61,7 @@ static const char ultra_colour[] = "0CBMRYGKW";
static int buffer_plot(struct zint_symbol *symbol, const unsigned char *pixelbuf) {
/* Place pixelbuffer into symbol */
unsigned char fgalpha, bgalpha;
unsigned char alpha[2];
unsigned char map[91][3] = {
{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, /* 0x00-0F */
{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, /* 0x10-1F */
@ -78,11 +78,11 @@ static int buffer_plot(struct zint_symbol *symbol, const unsigned char *pixelbuf
const size_t bm_bitmap_width = (size_t) symbol->bitmap_width * 3;
if (out_colour_get_rgb(symbol->fgcolour, &map[DEFAULT_INK][0], &map[DEFAULT_INK][1], &map[DEFAULT_INK][2],
&fgalpha)) {
&alpha[0])) {
plot_alpha = 1;
}
if (out_colour_get_rgb(symbol->bgcolour, &map[DEFAULT_PAPER][0], &map[DEFAULT_PAPER][1], &map[DEFAULT_PAPER][2],
&bgalpha)) {
&alpha[1])) {
plot_alpha = 1;
}
@ -119,7 +119,7 @@ static int buffer_plot(struct zint_symbol *symbol, const unsigned char *pixelbuf
const int pe = p + symbol->bitmap_width;
for (; p < pe; p++, bitmap += 3) {
memcpy(bitmap, map[pixelbuf[p]], 3);
symbol->alphamap[p] = pixelbuf[p] == DEFAULT_PAPER ? bgalpha : fgalpha;
symbol->alphamap[p] = alpha[pixelbuf[p] == DEFAULT_PAPER];
}
}
}
@ -318,7 +318,7 @@ static void draw_letter(unsigned char *pixelbuf, const unsigned char letter, int
}
/* Following should never happen (ISBN check digit "X" not printed) */
if ((textflags & UPCEAN_TEXT) && (letter < '0' || letter > '9')) {
if ((textflags & UPCEAN_TEXT) && !z_isdigit(letter)) {
return; /* Not reached */
}
@ -743,6 +743,7 @@ static int plot_raster_maxicode(struct zint_symbol *symbol, const int rotate_ang
image_width = (int) ceilf(hex_image_width + xoffset_si + roffset_si);
image_height = (int) ceilf(hex_image_height + yoffset_si + boffset_si);
assert(image_width && image_height);
if (!(pixelbuf = (unsigned char *) malloc((size_t) image_width * image_height))) {
strcpy(symbol->errtxt, "655: Insufficient memory for pixel buffer");
@ -865,7 +866,7 @@ static int plot_raster_dotty(struct zint_symbol *symbol, const int rotate_angle,
return error_number;
}
/* Convert UTF-8 to ISO 8859-1 for draw_string() human readable text */
/* Convert UTF-8 to ISO/IEC 8859-1 for `draw_string()` human readable text */
static void to_iso8859_1(const unsigned char source[], unsigned char preprocessed[]) {
int j, i, input_length;
@ -915,7 +916,7 @@ static int plot_raster_default(struct zint_symbol *symbol, const int rotate_angl
float textoffset;
int upceanflag = 0;
int addon_latch = 0;
unsigned char textpart1[5], textpart2[7], textpart3[7], textpart4[2];
unsigned char textparts[4][7];
int hide_text;
int i, r;
int block_width = 0;
@ -967,13 +968,13 @@ static int plot_raster_default(struct zint_symbol *symbol, const int rotate_angl
if (upceanflag) {
textflags = UPCEAN_TEXT | (symbol->output_options & SMALL_TEXT); /* Bold not available for UPC/EAN */
text_height = (UPCEAN_FONT_HEIGHT + 1) / 2;
text_gap = 1.0f;
text_gap = symbol->text_gap ? symbol->text_gap : 1.0f;
/* Height of guard bar descent (none for EAN-2 and EAN-5) */
guard_descent = upceanflag != 2 && upceanflag != 5 ? symbol->guard_descent : 0.0f;
} else {
textflags = symbol->output_options & (SMALL_TEXT | BOLD_TEXT);
text_height = textflags & SMALL_TEXT ? (SMALL_FONT_HEIGHT + 1) / 2 : (NORMAL_FONT_HEIGHT + 1) / 2;
text_gap = 1.0f;
text_gap = symbol->text_gap ? symbol->text_gap : 1.0f;
guard_descent = 0.0f;
}
@ -989,6 +990,7 @@ static int plot_raster_default(struct zint_symbol *symbol, const int rotate_angl
image_width = symbol->width * si + xoffset_si + roffset_si;
image_height = symbol_height_si + textoffset * si + yoffset_si + boffset_si;
assert(image_width && image_height);
if (!(pixelbuf = (unsigned char *) malloc((size_t) image_width * image_height))) {
strcpy(symbol->errtxt, "658: Insufficient memory for pixel buffer");
@ -1145,99 +1147,72 @@ static int plot_raster_default(struct zint_symbol *symbol, const int rotate_angl
}
if (upceanflag >= 6) { /* UPC-E, EAN-8, UPC-A, EAN-13 */
const int addon_len = (int) ustrlen(addon);
/* Note font sizes halved as in pixels */
/* Halved again to get middle position that draw_string() expects */
const int upcea_width_adj = (UPCEAN_SMALL_FONT_WIDTH + 3) / 4;
const int upcea_height_adj = (UPCEAN_FONT_HEIGHT - UPCEAN_SMALL_FONT_HEIGHT) * si / 2;
const int upcea_height_adj = ((UPCEAN_FONT_HEIGHT - UPCEAN_SMALL_FONT_HEIGHT) * si + 1) / 2;
/* Halved again to get middle position that draw_string() expects */
const int ean_width_adj = (UPCEAN_FONT_WIDTH + 3) / 4;
out_upcean_split_text(upceanflag, symbol->text, textpart1, textpart2, textpart3, textpart4);
out_upcean_split_text(upceanflag, symbol->text, textparts);
if (upceanflag == 6) { /* UPC-E */
int text_xposn = -(5 + upcea_width_adj) * si + comp_xoffset_si;
draw_string(pixelbuf, textpart1, text_xposn, text_yposn + upcea_height_adj, textflags | SMALL_TEXT,
draw_string(pixelbuf, textparts[0], text_xposn, text_yposn + upcea_height_adj, textflags | SMALL_TEXT,
image_width, image_height, si);
text_xposn = 24 * si + comp_xoffset_si;
draw_string(pixelbuf, textpart2, text_xposn, text_yposn, textflags, image_width, image_height, si);
draw_string(pixelbuf, textparts[1], text_xposn, text_yposn, textflags, image_width, image_height, si);
text_xposn = (51 + 3 + upcea_width_adj) * si + comp_xoffset_si;
draw_string(pixelbuf, textpart3, text_xposn, text_yposn + upcea_height_adj, textflags | SMALL_TEXT,
draw_string(pixelbuf, textparts[2], text_xposn, text_yposn + upcea_height_adj, textflags | SMALL_TEXT,
image_width, image_height, si);
switch (ustrlen(addon)) {
case 2:
text_xposn = (61 + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
break;
case 5:
text_xposn = (75 + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
break;
if (addon_len) {
text_xposn = ((addon_len == 2 ? 61 : 75) + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
}
} else if (upceanflag == 8) { /* EAN-8 */
int text_xposn = 17 * si + comp_xoffset_si;
draw_string(pixelbuf, textpart1, text_xposn, text_yposn, textflags, image_width, image_height, si);
draw_string(pixelbuf, textparts[0], text_xposn, text_yposn, textflags, image_width, image_height, si);
text_xposn = 50 * si + comp_xoffset_si;
draw_string(pixelbuf, textpart2, text_xposn, text_yposn, textflags, image_width, image_height, si);
switch (ustrlen(addon)) {
case 2:
text_xposn = (77 + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
break;
case 5:
text_xposn = (91 + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
break;
draw_string(pixelbuf, textparts[1], text_xposn, text_yposn, textflags, image_width, image_height, si);
if (addon_len) {
text_xposn = ((addon_len == 2 ? 77 : 91) + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
}
} else if (upceanflag == 12) { /* UPC-A */
int text_xposn = (-(5 + upcea_width_adj)) * si + comp_xoffset_si;
draw_string(pixelbuf, textpart1, text_xposn, text_yposn + upcea_height_adj, textflags | SMALL_TEXT,
draw_string(pixelbuf, textparts[0], text_xposn, text_yposn + upcea_height_adj, textflags | SMALL_TEXT,
image_width, image_height, si);
text_xposn = 27 * si + comp_xoffset_si;
draw_string(pixelbuf, textpart2, text_xposn, text_yposn, textflags, image_width, image_height, si);
draw_string(pixelbuf, textparts[1], text_xposn, text_yposn, textflags, image_width, image_height, si);
text_xposn = 67 * si + comp_xoffset_si;
draw_string(pixelbuf, textpart3, text_xposn, text_yposn, textflags, image_width, image_height, si);
draw_string(pixelbuf, textparts[2], text_xposn, text_yposn, textflags, image_width, image_height, si);
text_xposn = (95 + 5 + upcea_width_adj) * si + comp_xoffset_si;
draw_string(pixelbuf, textpart4, text_xposn, text_yposn + upcea_height_adj, textflags | SMALL_TEXT,
draw_string(pixelbuf, textparts[3], text_xposn, text_yposn + upcea_height_adj, textflags | SMALL_TEXT,
image_width, image_height, si);
switch (ustrlen(addon)) {
case 2:
text_xposn = (105 + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
break;
case 5:
text_xposn = (119 + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
break;
if (addon_len) {
text_xposn = ((addon_len == 2 ? 105 : 119) + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
}
} else { /* EAN-13 */
int text_xposn = (-(5 + ean_width_adj)) * si + comp_xoffset_si;
draw_string(pixelbuf, textpart1, text_xposn, text_yposn, textflags, image_width, image_height, si);
draw_string(pixelbuf, textparts[0], text_xposn, text_yposn, textflags, image_width, image_height, si);
text_xposn = 24 * si + comp_xoffset_si;
draw_string(pixelbuf, textpart2, text_xposn, text_yposn, textflags, image_width, image_height, si);
draw_string(pixelbuf, textparts[1], text_xposn, text_yposn, textflags, image_width, image_height, si);
text_xposn = 71 * si + comp_xoffset_si;
draw_string(pixelbuf, textpart3, text_xposn, text_yposn, textflags, image_width, image_height, si);
switch (ustrlen(addon)) {
case 2:
text_xposn = (105 + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
break;
case 5:
text_xposn = (119 + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
break;
draw_string(pixelbuf, textparts[2], text_xposn, text_yposn, textflags, image_width, image_height, si);
if (addon_len) {
text_xposn = ((addon_len == 2 ? 105 : 119) + addon_gap) * si + comp_xoffset_si;
draw_string(pixelbuf, addon, text_xposn, addon_text_yposn, textflags,
image_width, image_height, si);
}
}
} else {

View file

@ -296,8 +296,7 @@ INTERNAL int svg_plot(struct zint_symbol *symbol) {
circle = circle->next;
}
bold = (symbol->output_options & BOLD_TEXT)
&& (!is_extendable(symbol->symbology) || (symbol->output_options & SMALL_TEXT));
bold = (symbol->output_options & BOLD_TEXT) && !is_extendable(symbol->symbology);
string = symbol->vector->strings;
while (string) {
const char *const halign = string->halign == 2 ? "end" : string->halign == 1 ? "start" : "middle";

View file

@ -1,5 +1,5 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.10.0.9
%%Creator: Zint 2.12.0.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 224 119
@ -84,7 +84,7 @@ end
matrix currentmatrix
/Helvetica-ISOLatin1 findfont
14.00 scalefont setfont
0 0 moveto 112.00 3.50 translate 0.00 rotate 0 0 moveto
0 0 moveto 112.00 4.90 translate 0.00 rotate 0 0 moveto
(Égjpqy) stringwidth
pop
-2 div 0 rmoveto

View file

@ -1,5 +1,5 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.10.0.9
%%Creator: Zint 2.12.0.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 119 224
@ -84,7 +84,7 @@ end
matrix currentmatrix
/Helvetica-ISOLatin1 findfont
14.00 scalefont setfont
0 0 moveto 3.50 112.00 translate 0.00 rotate 0 0 moveto
0 0 moveto 4.90 112.00 translate 0.00 rotate 0 0 moveto
(Égjpqy) stringwidth
gsave
270 rotate

View file

@ -1,5 +1,5 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.10.0.9
%%Creator: Zint 2.12.0.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 246 119
@ -90,7 +90,7 @@ end
matrix currentmatrix
/Helvetica-ISOLatin1 findfont
14.00 scalefont setfont
0 0 moveto 123.00 3.50 translate 0.00 rotate 0 0 moveto
0 0 moveto 123.00 4.90 translate 0.00 rotate 0 0 moveto
(A\\B\)ç\(D) stringwidth
pop
-2 div 0 rmoveto

View file

@ -65,7 +65,7 @@ TE
matrix currentmatrix
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 64.00 3.50 translate 0.00 rotate 0 0 moveto
0 0 moveto 64.00 4.90 translate 0.00 rotate 0 0 moveto
(*123*) stringwidth
pop
-2 div 0 rmoveto

View file

@ -65,7 +65,7 @@ TE
matrix currentmatrix
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 64.00 3.50 translate 0.00 rotate 0 0 moveto
0 0 moveto 64.00 4.90 translate 0.00 rotate 0 0 moveto
(*123*) stringwidth
pop
-2 div 0 rmoveto

View file

@ -62,7 +62,7 @@ TE
matrix currentmatrix
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 64.00 3.50 translate 0.00 rotate 0 0 moveto
0 0 moveto 64.00 4.90 translate 0.00 rotate 0 0 moveto
(*123*) stringwidth
pop
-2 div 0 rmoveto

View file

@ -1,5 +1,5 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.10.0.9
%%Creator: Zint 2.12.0.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 158 119
@ -61,7 +61,7 @@ TE
matrix currentmatrix
/Helvetica-Bold findfont
14.00 scalefont setfont
0 0 moveto 79.00 3.50 translate 0.00 rotate 0 0 moveto
0 0 moveto 79.00 4.90 translate 0.00 rotate 0 0 moveto
(\(01\)15012345678907) stringwidth
pop
-2 div 0 rmoveto

View file

@ -1,5 +1,5 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.10.0.9
%%Creator: Zint 2.12.0.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 276 117
@ -9,87 +9,87 @@
/TE { pop pop } bind def
newpath
1.00 1.00 1.00 setrgbcolor
116.40 0.00 TB 0.00 276.00 TR
116.90 0.00 TB 0.00 276.00 TR
TE
0.00 0.00 0.00 setrgbcolor
110.00 6.40 TB 22.00 2.00 TR
110.00 6.90 TB 22.00 2.00 TR
TE
110.00 6.40 TB 26.00 2.00 TR
110.00 6.90 TB 26.00 2.00 TR
TE
100.00 16.40 TB 30.00 6.00 TR
100.00 16.90 TB 30.00 6.00 TR
TE
100.00 16.40 TB 38.00 4.00 TR
100.00 16.90 TB 38.00 4.00 TR
TE
100.00 16.40 TB 46.00 2.00 TR
100.00 16.90 TB 46.00 2.00 TR
TE
100.00 16.40 TB 54.00 2.00 TR
100.00 16.90 TB 54.00 2.00 TR
TE
100.00 16.40 TB 58.00 4.00 TR
100.00 16.90 TB 58.00 4.00 TR
TE
100.00 16.40 TB 66.00 4.00 TR
100.00 16.90 TB 66.00 4.00 TR
TE
100.00 16.40 TB 72.00 8.00 TR
100.00 16.90 TB 72.00 8.00 TR
TE
100.00 16.40 TB 82.00 2.00 TR
100.00 16.90 TB 82.00 2.00 TR
TE
100.00 16.40 TB 90.00 2.00 TR
100.00 16.90 TB 90.00 2.00 TR
TE
100.00 16.40 TB 96.00 2.00 TR
100.00 16.90 TB 96.00 2.00 TR
TE
100.00 16.40 TB 100.00 2.00 TR
100.00 16.90 TB 100.00 2.00 TR
TE
100.00 16.40 TB 108.00 4.00 TR
100.00 16.90 TB 108.00 4.00 TR
TE
110.00 6.40 TB 114.00 2.00 TR
110.00 6.90 TB 114.00 2.00 TR
TE
110.00 6.40 TB 118.00 2.00 TR
110.00 6.90 TB 118.00 2.00 TR
TE
100.00 16.40 TB 122.00 2.00 TR
100.00 16.90 TB 122.00 2.00 TR
TE
100.00 16.40 TB 128.00 6.00 TR
100.00 16.90 TB 128.00 6.00 TR
TE
100.00 16.40 TB 136.00 4.00 TR
100.00 16.90 TB 136.00 4.00 TR
TE
100.00 16.40 TB 142.00 4.00 TR
100.00 16.90 TB 142.00 4.00 TR
TE
100.00 16.40 TB 150.00 2.00 TR
100.00 16.90 TB 150.00 2.00 TR
TE
100.00 16.40 TB 154.00 6.00 TR
100.00 16.90 TB 154.00 6.00 TR
TE
100.00 16.40 TB 164.00 6.00 TR
100.00 16.90 TB 164.00 6.00 TR
TE
100.00 16.40 TB 174.00 2.00 TR
100.00 16.90 TB 174.00 2.00 TR
TE
100.00 16.40 TB 178.00 4.00 TR
100.00 16.90 TB 178.00 4.00 TR
TE
100.00 16.40 TB 186.00 4.00 TR
100.00 16.90 TB 186.00 4.00 TR
TE
100.00 16.40 TB 192.00 2.00 TR
100.00 16.90 TB 192.00 2.00 TR
TE
100.00 16.40 TB 200.00 2.00 TR
100.00 16.90 TB 200.00 2.00 TR
TE
110.00 6.40 TB 206.00 2.00 TR
110.00 6.90 TB 206.00 2.00 TR
TE
110.00 6.40 TB 210.00 2.00 TR
110.00 6.90 TB 210.00 2.00 TR
TE
91.00 6.40 TB 226.00 2.00 TR
93.10 6.90 TB 226.00 2.00 TR
TE
91.00 6.40 TB 230.00 4.00 TR
93.10 6.90 TB 230.00 4.00 TR
TE
91.00 6.40 TB 238.00 4.00 TR
93.10 6.90 TB 238.00 4.00 TR
TE
91.00 6.40 TB 246.00 2.00 TR
93.10 6.90 TB 246.00 2.00 TR
TE
91.00 6.40 TB 250.00 2.00 TR
93.10 6.90 TB 250.00 2.00 TR
TE
91.00 6.40 TB 256.00 2.00 TR
93.10 6.90 TB 256.00 2.00 TR
TE
91.00 6.40 TB 262.00 4.00 TR
93.10 6.90 TB 262.00 4.00 TR
TE
matrix currentmatrix
/Helvetica findfont
20.00 scalefont setfont
0 0 moveto 12.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 12.20 0.80 translate 0.00 rotate 0 0 moveto
(9) stringwidth
pop
neg 0 rmoveto
@ -98,7 +98,7 @@ setmatrix
matrix currentmatrix
/Helvetica findfont
20.00 scalefont setfont
0 0 moveto 70.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 71.00 0.80 translate 0.00 rotate 0 0 moveto
(771384) stringwidth
pop
-2 div 0 rmoveto
@ -107,7 +107,7 @@ setmatrix
matrix currentmatrix
/Helvetica findfont
20.00 scalefont setfont
0 0 moveto 164.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 163.00 0.80 translate 0.00 rotate 0 0 moveto
(524017) stringwidth
pop
-2 div 0 rmoveto
@ -116,7 +116,7 @@ setmatrix
matrix currentmatrix
/Helvetica findfont
20.00 scalefont setfont
0 0 moveto 246.00 101.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 246.00 101.90 translate 0.00 rotate 0 0 moveto
(12) stringwidth
pop
-2 div 0 rmoveto

View file

@ -1,5 +1,5 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.10.0.9
%%Creator: Zint 2.12.0.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 276 117
@ -9,87 +9,87 @@
/TE { pop pop } bind def
newpath
1.00 1.00 1.00 setrgbcolor
116.40 0.00 TB 0.00 276.00 TR
116.90 0.00 TB 0.00 276.00 TR
TE
0.00 0.00 0.00 setrgbcolor
110.00 6.40 TB 18.00 2.00 TR
110.00 6.90 TB 18.00 2.00 TR
TE
110.00 6.40 TB 22.00 2.00 TR
110.00 6.90 TB 22.00 2.00 TR
TE
110.00 6.40 TB 30.00 4.00 TR
110.00 6.90 TB 30.00 4.00 TR
TE
110.00 6.40 TB 36.00 2.00 TR
110.00 6.90 TB 36.00 2.00 TR
TE
100.00 16.40 TB 42.00 4.00 TR
100.00 16.90 TB 42.00 4.00 TR
TE
100.00 16.40 TB 50.00 2.00 TR
100.00 16.90 TB 50.00 2.00 TR
TE
100.00 16.40 TB 56.00 2.00 TR
100.00 16.90 TB 56.00 2.00 TR
TE
100.00 16.40 TB 62.00 4.00 TR
100.00 16.90 TB 62.00 4.00 TR
TE
100.00 16.40 TB 68.00 8.00 TR
100.00 16.90 TB 68.00 8.00 TR
TE
100.00 16.40 TB 78.00 2.00 TR
100.00 16.90 TB 78.00 2.00 TR
TE
100.00 16.40 TB 82.00 2.00 TR
100.00 16.90 TB 82.00 2.00 TR
TE
100.00 16.40 TB 90.00 4.00 TR
100.00 16.90 TB 90.00 4.00 TR
TE
100.00 16.40 TB 96.00 4.00 TR
100.00 16.90 TB 96.00 4.00 TR
TE
100.00 16.40 TB 106.00 2.00 TR
100.00 16.90 TB 106.00 2.00 TR
TE
110.00 6.40 TB 110.00 2.00 TR
110.00 6.90 TB 110.00 2.00 TR
TE
110.00 6.40 TB 114.00 2.00 TR
110.00 6.90 TB 114.00 2.00 TR
TE
100.00 16.40 TB 118.00 2.00 TR
100.00 16.90 TB 118.00 2.00 TR
TE
100.00 16.40 TB 122.00 2.00 TR
100.00 16.90 TB 122.00 2.00 TR
TE
100.00 16.40 TB 132.00 2.00 TR
100.00 16.90 TB 132.00 2.00 TR
TE
100.00 16.40 TB 140.00 2.00 TR
100.00 16.90 TB 140.00 2.00 TR
TE
100.00 16.40 TB 146.00 2.00 TR
100.00 16.90 TB 146.00 2.00 TR
TE
100.00 16.40 TB 152.00 2.00 TR
100.00 16.90 TB 152.00 2.00 TR
TE
100.00 16.40 TB 160.00 6.00 TR
100.00 16.90 TB 160.00 6.00 TR
TE
100.00 16.40 TB 168.00 2.00 TR
100.00 16.90 TB 168.00 2.00 TR
TE
100.00 16.40 TB 174.00 6.00 TR
100.00 16.90 TB 174.00 6.00 TR
TE
100.00 16.40 TB 184.00 2.00 TR
100.00 16.90 TB 184.00 2.00 TR
TE
110.00 6.40 TB 188.00 2.00 TR
110.00 6.90 TB 188.00 2.00 TR
TE
110.00 6.40 TB 194.00 6.00 TR
110.00 6.90 TB 194.00 6.00 TR
TE
110.00 6.40 TB 202.00 2.00 TR
110.00 6.90 TB 202.00 2.00 TR
TE
110.00 6.40 TB 206.00 2.00 TR
110.00 6.90 TB 206.00 2.00 TR
TE
81.00 16.40 TB 226.00 2.00 TR
83.10 16.90 TB 226.00 2.00 TR
TE
81.00 16.40 TB 230.00 4.00 TR
83.10 16.90 TB 230.00 4.00 TR
TE
81.00 16.40 TB 238.00 2.00 TR
83.10 16.90 TB 238.00 2.00 TR
TE
81.00 16.40 TB 244.00 4.00 TR
83.10 16.90 TB 244.00 4.00 TR
TE
81.00 16.40 TB 250.00 2.00 TR
83.10 16.90 TB 250.00 2.00 TR
TE
81.00 16.40 TB 254.00 2.00 TR
83.10 16.90 TB 254.00 2.00 TR
TE
81.00 16.40 TB 262.00 4.00 TR
83.10 16.90 TB 262.00 4.00 TR
TE
matrix currentmatrix
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 8.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 8.70 0.80 translate 0.00 rotate 0 0 moveto
(0) stringwidth
pop
neg 0 rmoveto
@ -98,7 +98,7 @@ setmatrix
matrix currentmatrix
/Helvetica findfont
20.00 scalefont setfont
0 0 moveto 72.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 74.00 0.80 translate 0.00 rotate 0 0 moveto
(12345) stringwidth
pop
-2 div 0 rmoveto
@ -107,7 +107,7 @@ setmatrix
matrix currentmatrix
/Helvetica findfont
20.00 scalefont setfont
0 0 moveto 152.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 152.00 0.80 translate 0.00 rotate 0 0 moveto
(67890) stringwidth
pop
-2 div 0 rmoveto
@ -116,13 +116,13 @@ setmatrix
matrix currentmatrix
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 218.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 217.30 0.80 translate 0.00 rotate 0 0 moveto
(5) show
setmatrix
matrix currentmatrix
/Helvetica findfont
20.00 scalefont setfont
0 0 moveto 246.00 101.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 246.00 101.90 translate 0.00 rotate 0 0 moveto
(24) stringwidth
pop
-2 div 0 rmoveto

View file

@ -1,5 +1,5 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.10.0.9
%%Creator: Zint 2.12.0.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 238 117
@ -9,79 +9,79 @@
/TE { pop pop } bind def
newpath
1.00 1.00 1.00 setrgbcolor
116.40 0.00 TB 0.00 238.00 TR
116.90 0.00 TB 0.00 238.00 TR
TE
0.00 0.00 0.00 setrgbcolor
110.00 6.40 TB 18.00 2.00 TR
110.00 6.90 TB 18.00 2.00 TR
TE
110.00 6.40 TB 22.00 2.00 TR
110.00 6.90 TB 22.00 2.00 TR
TE
100.00 16.40 TB 26.00 4.00 TR
100.00 16.90 TB 26.00 4.00 TR
TE
100.00 16.40 TB 34.00 4.00 TR
100.00 16.90 TB 34.00 4.00 TR
TE
100.00 16.40 TB 42.00 2.00 TR
100.00 16.90 TB 42.00 2.00 TR
TE
100.00 16.40 TB 48.00 4.00 TR
100.00 16.90 TB 48.00 4.00 TR
TE
100.00 16.40 TB 54.00 8.00 TR
100.00 16.90 TB 54.00 8.00 TR
TE
100.00 16.40 TB 64.00 2.00 TR
100.00 16.90 TB 64.00 2.00 TR
TE
100.00 16.40 TB 70.00 6.00 TR
100.00 16.90 TB 70.00 6.00 TR
TE
100.00 16.40 TB 78.00 2.00 TR
100.00 16.90 TB 78.00 2.00 TR
TE
100.00 16.40 TB 82.00 6.00 TR
100.00 16.90 TB 82.00 6.00 TR
TE
100.00 16.40 TB 92.00 2.00 TR
100.00 16.90 TB 92.00 2.00 TR
TE
100.00 16.40 TB 96.00 2.00 TR
100.00 16.90 TB 96.00 2.00 TR
TE
100.00 16.40 TB 100.00 8.00 TR
100.00 16.90 TB 100.00 8.00 TR
TE
110.00 6.40 TB 110.00 2.00 TR
110.00 6.90 TB 110.00 2.00 TR
TE
110.00 6.40 TB 114.00 2.00 TR
110.00 6.90 TB 114.00 2.00 TR
TE
110.00 6.40 TB 118.00 2.00 TR
110.00 6.90 TB 118.00 2.00 TR
TE
81.00 16.40 TB 134.00 2.00 TR
83.10 16.90 TB 134.00 2.00 TR
TE
81.00 16.40 TB 138.00 4.00 TR
83.10 16.90 TB 138.00 4.00 TR
TE
81.00 16.40 TB 144.00 4.00 TR
83.10 16.90 TB 144.00 4.00 TR
TE
81.00 16.40 TB 152.00 4.00 TR
83.10 16.90 TB 152.00 4.00 TR
TE
81.00 16.40 TB 158.00 2.00 TR
83.10 16.90 TB 158.00 2.00 TR
TE
81.00 16.40 TB 164.00 2.00 TR
83.10 16.90 TB 164.00 2.00 TR
TE
81.00 16.40 TB 170.00 4.00 TR
83.10 16.90 TB 170.00 4.00 TR
TE
81.00 16.40 TB 176.00 2.00 TR
83.10 16.90 TB 176.00 2.00 TR
TE
81.00 16.40 TB 180.00 2.00 TR
83.10 16.90 TB 180.00 2.00 TR
TE
81.00 16.40 TB 190.00 2.00 TR
83.10 16.90 TB 190.00 2.00 TR
TE
81.00 16.40 TB 194.00 2.00 TR
83.10 16.90 TB 194.00 2.00 TR
TE
81.00 16.40 TB 198.00 2.00 TR
83.10 16.90 TB 198.00 2.00 TR
TE
81.00 16.40 TB 206.00 4.00 TR
83.10 16.90 TB 206.00 4.00 TR
TE
81.00 16.40 TB 212.00 2.00 TR
83.10 16.90 TB 212.00 2.00 TR
TE
81.00 16.40 TB 216.00 4.00 TR
83.10 16.90 TB 216.00 4.00 TR
TE
81.00 16.40 TB 226.00 2.00 TR
83.10 16.90 TB 226.00 2.00 TR
TE
matrix currentmatrix
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 8.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 8.70 0.80 translate 0.00 rotate 0 0 moveto
(0) stringwidth
pop
neg 0 rmoveto
@ -90,7 +90,7 @@ setmatrix
matrix currentmatrix
/Helvetica findfont
20.00 scalefont setfont
0 0 moveto 66.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 67.00 0.80 translate 0.00 rotate 0 0 moveto
(123456) stringwidth
pop
-2 div 0 rmoveto
@ -99,13 +99,13 @@ setmatrix
matrix currentmatrix
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 126.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 125.30 0.80 translate 0.00 rotate 0 0 moveto
(5) show
setmatrix
matrix currentmatrix
/Helvetica findfont
20.00 scalefont setfont
0 0 moveto 182.00 101.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 182.00 101.90 translate 0.00 rotate 0 0 moveto
(12345) stringwidth
pop
-2 div 0 rmoveto

View file

@ -1,111 +1,111 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.10.0.9
%%Creator: Zint 2.12.0.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 238 112
%%BoundingBox: 0 0 238 113
%%EndComments
/TB { 2 copy } bind def
/TR { newpath 4 1 roll exch moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath fill } bind def
/TE { pop pop } bind def
newpath
1.00 1.00 1.00 setrgbcolor
111.90 0.00 TB 0.00 238.00 TR
112.28 0.00 TB 0.00 238.00 TR
TE
0.00 0.00 0.00 setrgbcolor
110.00 1.90 TB 18.00 2.00 TR
110.00 2.28 TB 18.00 2.00 TR
TE
110.00 1.90 TB 22.00 2.00 TR
110.00 2.28 TB 22.00 2.00 TR
TE
100.00 11.90 TB 26.00 4.00 TR
100.00 12.28 TB 26.00 4.00 TR
TE
100.00 11.90 TB 34.00 4.00 TR
100.00 12.28 TB 34.00 4.00 TR
TE
100.00 11.90 TB 42.00 2.00 TR
100.00 12.28 TB 42.00 2.00 TR
TE
100.00 11.90 TB 48.00 4.00 TR
100.00 12.28 TB 48.00 4.00 TR
TE
100.00 11.90 TB 54.00 8.00 TR
100.00 12.28 TB 54.00 8.00 TR
TE
100.00 11.90 TB 64.00 2.00 TR
100.00 12.28 TB 64.00 2.00 TR
TE
100.00 11.90 TB 70.00 6.00 TR
100.00 12.28 TB 70.00 6.00 TR
TE
100.00 11.90 TB 78.00 2.00 TR
100.00 12.28 TB 78.00 2.00 TR
TE
100.00 11.90 TB 82.00 6.00 TR
100.00 12.28 TB 82.00 6.00 TR
TE
100.00 11.90 TB 92.00 2.00 TR
100.00 12.28 TB 92.00 2.00 TR
TE
100.00 11.90 TB 96.00 2.00 TR
100.00 12.28 TB 96.00 2.00 TR
TE
100.00 11.90 TB 100.00 8.00 TR
100.00 12.28 TB 100.00 8.00 TR
TE
110.00 1.90 TB 110.00 2.00 TR
110.00 2.28 TB 110.00 2.00 TR
TE
110.00 1.90 TB 114.00 2.00 TR
110.00 2.28 TB 114.00 2.00 TR
TE
110.00 1.90 TB 118.00 2.00 TR
110.00 2.28 TB 118.00 2.00 TR
TE
87.00 11.90 TB 134.00 2.00 TR
87.72 12.28 TB 134.00 2.00 TR
TE
87.00 11.90 TB 138.00 4.00 TR
87.72 12.28 TB 138.00 4.00 TR
TE
87.00 11.90 TB 144.00 4.00 TR
87.72 12.28 TB 144.00 4.00 TR
TE
87.00 11.90 TB 152.00 4.00 TR
87.72 12.28 TB 152.00 4.00 TR
TE
87.00 11.90 TB 158.00 2.00 TR
87.72 12.28 TB 158.00 2.00 TR
TE
87.00 11.90 TB 164.00 2.00 TR
87.72 12.28 TB 164.00 2.00 TR
TE
87.00 11.90 TB 170.00 4.00 TR
87.72 12.28 TB 170.00 4.00 TR
TE
87.00 11.90 TB 176.00 2.00 TR
87.72 12.28 TB 176.00 2.00 TR
TE
87.00 11.90 TB 180.00 2.00 TR
87.72 12.28 TB 180.00 2.00 TR
TE
87.00 11.90 TB 190.00 2.00 TR
87.72 12.28 TB 190.00 2.00 TR
TE
87.00 11.90 TB 194.00 2.00 TR
87.72 12.28 TB 194.00 2.00 TR
TE
87.00 11.90 TB 198.00 2.00 TR
87.72 12.28 TB 198.00 2.00 TR
TE
87.00 11.90 TB 206.00 4.00 TR
87.72 12.28 TB 206.00 4.00 TR
TE
87.00 11.90 TB 212.00 2.00 TR
87.72 12.28 TB 212.00 2.00 TR
TE
87.00 11.90 TB 216.00 4.00 TR
87.72 12.28 TB 216.00 4.00 TR
TE
87.00 11.90 TB 226.00 2.00 TR
87.72 12.28 TB 226.00 2.00 TR
TE
matrix currentmatrix
/Helvetica-Bold findfont
/Helvetica findfont
12.00 scalefont setfont
0 0 moveto 8.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 8.70 0.56 translate 0.00 rotate 0 0 moveto
(0) stringwidth
pop
neg 0 rmoveto
(0) show
setmatrix
matrix currentmatrix
/Helvetica-Bold findfont
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 66.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 67.00 0.56 translate 0.00 rotate 0 0 moveto
(123456) stringwidth
pop
-2 div 0 rmoveto
(123456) show
setmatrix
matrix currentmatrix
/Helvetica-Bold findfont
/Helvetica findfont
12.00 scalefont setfont
0 0 moveto 126.00 0.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 125.30 0.56 translate 0.00 rotate 0 0 moveto
(5) show
setmatrix
matrix currentmatrix
/Helvetica-Bold findfont
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 182.00 101.40 translate 0.00 rotate 0 0 moveto
0 0 moveto 182.00 101.78 translate 0.00 rotate 0 0 moveto
(12345) stringwidth
pop
-2 div 0 rmoveto

View file

@ -1,5 +1,5 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: Zint 2.10.0.9
%%Creator: Zint 2.12.0.9
%%Title: Zint Generated Symbol
%%Pages: 0
%%BoundingBox: 0 0 136 119
@ -53,7 +53,7 @@ TE
matrix currentmatrix
/Helvetica findfont
14.00 scalefont setfont
0 0 moveto 68.00 3.50 translate 0.00 rotate 0 0 moveto
0 0 moveto 68.00 4.90 translate 0.00 rotate 0 0 moveto
(AIM) stringwidth
pop
-2 div 0 rmoveto

View file

@ -27,7 +27,7 @@
<rect x="120.00" y="0.00" width="6.00" height="100.00" />
<rect x="128.00" y="0.00" width="2.00" height="100.00" />
<rect x="132.00" y="0.00" width="4.00" height="100.00" />
<text x="68.00" y="115.40" text-anchor="middle"
<text x="68.00" y="114.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" >
AIM
</text>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -16,7 +16,7 @@
<rect x="26.00" y="0.00" width="6.00" height="40.00" />
<rect x="38.00" y="0.00" width="2.00" height="40.00" />
<rect x="42.00" y="0.00" width="4.00" height="40.00" />
<text x="23.00" y="55.40" text-anchor="middle"
<text x="23.00" y="54.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" >
123
</text>

Before

Width:  |  Height:  |  Size: 1,013 B

After

Width:  |  Height:  |  Size: 1,013 B

View file

@ -33,7 +33,7 @@
<rect x="164.00" y="0.00" width="6.00" height="100.00" />
<rect x="172.00" y="0.00" width="2.00" height="100.00" />
<rect x="176.00" y="0.00" width="4.00" height="100.00" />
<text x="90.00" y="115.40" text-anchor="middle"
<text x="90.00" y="114.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" >
&lt;&gt;&quot;&amp;&apos;
</text>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -39,7 +39,7 @@
<rect x="208.00" y="0.00" width="6.00" height="100.00" />
<rect x="216.00" y="0.00" width="2.00" height="100.00" />
<rect x="220.00" y="0.00" width="4.00" height="100.00" />
<text x="112.00" y="115.40" text-anchor="middle"
<text x="112.00" y="114.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
Égjpqy
</text>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -43,7 +43,7 @@
<rect x="0.00" y="106.00" width="236.00" height="6.00" />
<rect x="0.00" y="6.00" width="6.00" height="100.00" />
<rect x="230.00" y="6.00" width="6.00" height="100.00" />
<text x="118.00" y="127.40" text-anchor="middle"
<text x="118.00" y="126.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
Égjpqy
</text>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -43,7 +43,7 @@
<rect x="0.00" y="108.00" width="240.00" height="4.00" />
<rect x="0.00" y="8.00" width="4.00" height="100.00" />
<rect x="236.00" y="8.00" width="4.00" height="100.00" />
<text x="120.00" y="127.40" text-anchor="middle"
<text x="120.00" y="126.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
Égjpqy
</text>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -39,7 +39,7 @@
<rect x="214.00" y="6.00" width="6.00" height="100.00" />
<rect x="222.00" y="6.00" width="2.00" height="100.00" />
<rect x="226.00" y="6.00" width="4.00" height="100.00" />
<text x="118.00" y="121.40" text-anchor="middle"
<text x="118.00" y="120.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
Égjpqy
</text>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -33,7 +33,7 @@
<rect x="114.00" y="0.00" width="4.00" height="100.00" />
<rect x="120.00" y="0.00" width="4.00" height="100.00" />
<rect x="126.00" y="0.00" width="2.00" height="100.00" />
<text x="64.00" y="113.20" text-anchor="middle"
<text x="64.00" y="112.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="12.0" >
*123*
</text>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -31,7 +31,7 @@
<rect x="132.00" y="0.00" width="4.00" height="100.00" />
<rect x="138.00" y="0.00" width="6.00" height="100.00" />
<rect x="146.00" y="0.00" width="2.00" height="100.00" />
<text x="79.00" y="115.40" text-anchor="middle"
<text x="79.00" y="114.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" >
(01)00123456789098
</text>

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -67,7 +67,7 @@
<rect x="439.00" y="6.00" width="2.00" height="133.33" />
<rect x="443.00" y="6.00" width="4.00" height="133.33" />
<rect x="25.00" y="0.00" width="422.00" height="6.00" />
<text x="236.00" y="154.73" text-anchor="middle"
<text x="236.00" y="153.33" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" >
0081 827 0998 0000 0200 28 101 276 B
</text>

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -38,22 +38,22 @@
<rect x="200.00" y="0.00" width="2.00" height="100.00" />
<rect x="206.00" y="0.00" width="2.00" height="110.00" />
<rect x="210.00" y="0.00" width="2.00" height="110.00" />
<rect x="226.00" y="19.00" width="2.00" height="91.00" />
<rect x="230.00" y="19.00" width="4.00" height="91.00" />
<rect x="238.00" y="19.00" width="4.00" height="91.00" />
<rect x="246.00" y="19.00" width="2.00" height="91.00" />
<rect x="250.00" y="19.00" width="2.00" height="91.00" />
<rect x="256.00" y="19.00" width="2.00" height="91.00" />
<rect x="262.00" y="19.00" width="4.00" height="91.00" />
<text x="12.00" y="116.00" text-anchor="end"
<rect x="226.00" y="16.90" width="2.00" height="93.10" />
<rect x="230.00" y="16.90" width="4.00" height="93.10" />
<rect x="238.00" y="16.90" width="4.00" height="93.10" />
<rect x="246.00" y="16.90" width="2.00" height="93.10" />
<rect x="250.00" y="16.90" width="2.00" height="93.10" />
<rect x="256.00" y="16.90" width="2.00" height="93.10" />
<rect x="262.00" y="16.90" width="4.00" height="93.10" />
<text x="12.20" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="20.0" >
9
</text>
<text x="70.00" y="116.00" text-anchor="middle"
<text x="71.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
771384
</text>
<text x="164.00" y="116.00" text-anchor="middle"
<text x="163.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
524017
</text>

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -38,31 +38,31 @@
<rect x="196.00" y="0.00" width="2.00" height="100.00" />
<rect x="206.00" y="0.00" width="2.00" height="110.00" />
<rect x="210.00" y="0.00" width="2.00" height="110.00" />
<rect x="226.00" y="19.00" width="2.00" height="91.00" />
<rect x="230.00" y="19.00" width="4.00" height="91.00" />
<rect x="236.00" y="19.00" width="6.00" height="91.00" />
<rect x="246.00" y="19.00" width="2.00" height="91.00" />
<rect x="250.00" y="19.00" width="2.00" height="91.00" />
<rect x="254.00" y="19.00" width="2.00" height="91.00" />
<rect x="262.00" y="19.00" width="4.00" height="91.00" />
<rect x="268.00" y="19.00" width="2.00" height="91.00" />
<rect x="272.00" y="19.00" width="2.00" height="91.00" />
<rect x="282.00" y="19.00" width="2.00" height="91.00" />
<rect x="286.00" y="19.00" width="2.00" height="91.00" />
<rect x="292.00" y="19.00" width="2.00" height="91.00" />
<rect x="298.00" y="19.00" width="4.00" height="91.00" />
<rect x="304.00" y="19.00" width="2.00" height="91.00" />
<rect x="310.00" y="19.00" width="4.00" height="91.00" />
<rect x="318.00" y="19.00" width="2.00" height="91.00" />
<text x="12.00" y="116.00" text-anchor="end"
<rect x="226.00" y="16.90" width="2.00" height="93.10" />
<rect x="230.00" y="16.90" width="4.00" height="93.10" />
<rect x="236.00" y="16.90" width="6.00" height="93.10" />
<rect x="246.00" y="16.90" width="2.00" height="93.10" />
<rect x="250.00" y="16.90" width="2.00" height="93.10" />
<rect x="254.00" y="16.90" width="2.00" height="93.10" />
<rect x="262.00" y="16.90" width="4.00" height="93.10" />
<rect x="268.00" y="16.90" width="2.00" height="93.10" />
<rect x="272.00" y="16.90" width="2.00" height="93.10" />
<rect x="282.00" y="16.90" width="2.00" height="93.10" />
<rect x="286.00" y="16.90" width="2.00" height="93.10" />
<rect x="292.00" y="16.90" width="2.00" height="93.10" />
<rect x="298.00" y="16.90" width="4.00" height="93.10" />
<rect x="304.00" y="16.90" width="2.00" height="93.10" />
<rect x="310.00" y="16.90" width="4.00" height="93.10" />
<rect x="318.00" y="16.90" width="2.00" height="93.10" />
<text x="12.20" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="20.0" >
9
</text>
<text x="70.00" y="116.00" text-anchor="middle"
<text x="71.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
780877
</text>
<text x="164.00" y="116.00" text-anchor="middle"
<text x="163.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
799306
</text>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -120,22 +120,22 @@
<rect x="198.00" y="28.00" width="2.00" height="72.00" />
<rect x="204.00" y="28.00" width="2.00" height="72.00" />
<rect x="212.00" y="28.00" width="2.00" height="82.00" />
<rect x="232.00" y="47.00" width="2.00" height="63.00" />
<rect x="236.00" y="47.00" width="4.00" height="63.00" />
<rect x="244.00" y="47.00" width="4.00" height="63.00" />
<rect x="252.00" y="47.00" width="2.00" height="63.00" />
<rect x="256.00" y="47.00" width="2.00" height="63.00" />
<rect x="262.00" y="47.00" width="2.00" height="63.00" />
<rect x="268.00" y="47.00" width="4.00" height="63.00" />
<text x="18.00" y="116.00" text-anchor="end"
<rect x="232.00" y="44.90" width="2.00" height="65.10" />
<rect x="236.00" y="44.90" width="4.00" height="65.10" />
<rect x="244.00" y="44.90" width="4.00" height="65.10" />
<rect x="252.00" y="44.90" width="2.00" height="65.10" />
<rect x="256.00" y="44.90" width="2.00" height="65.10" />
<rect x="262.00" y="44.90" width="2.00" height="65.10" />
<rect x="268.00" y="44.90" width="4.00" height="65.10" />
<text x="18.20" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="20.0" >
1
</text>
<text x="76.00" y="116.00" text-anchor="middle"
<text x="77.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
234567
</text>
<text x="170.00" y="116.00" text-anchor="middle"
<text x="169.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
890128
</text>

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

View file

@ -118,31 +118,31 @@
<rect x="198.00" y="28.00" width="2.00" height="72.00" />
<rect x="204.00" y="28.00" width="2.00" height="72.00" />
<rect x="212.00" y="28.00" width="2.00" height="82.00" />
<rect x="232.00" y="47.00" width="2.00" height="63.00" />
<rect x="236.00" y="47.00" width="4.00" height="63.00" />
<rect x="242.00" y="47.00" width="6.00" height="63.00" />
<rect x="252.00" y="47.00" width="2.00" height="63.00" />
<rect x="256.00" y="47.00" width="2.00" height="63.00" />
<rect x="260.00" y="47.00" width="2.00" height="63.00" />
<rect x="268.00" y="47.00" width="4.00" height="63.00" />
<rect x="274.00" y="47.00" width="2.00" height="63.00" />
<rect x="278.00" y="47.00" width="2.00" height="63.00" />
<rect x="288.00" y="47.00" width="2.00" height="63.00" />
<rect x="292.00" y="47.00" width="2.00" height="63.00" />
<rect x="298.00" y="47.00" width="2.00" height="63.00" />
<rect x="304.00" y="47.00" width="4.00" height="63.00" />
<rect x="310.00" y="47.00" width="2.00" height="63.00" />
<rect x="316.00" y="47.00" width="4.00" height="63.00" />
<rect x="324.00" y="47.00" width="2.00" height="63.00" />
<text x="18.00" y="116.00" text-anchor="end"
<rect x="232.00" y="44.90" width="2.00" height="65.10" />
<rect x="236.00" y="44.90" width="4.00" height="65.10" />
<rect x="242.00" y="44.90" width="6.00" height="65.10" />
<rect x="252.00" y="44.90" width="2.00" height="65.10" />
<rect x="256.00" y="44.90" width="2.00" height="65.10" />
<rect x="260.00" y="44.90" width="2.00" height="65.10" />
<rect x="268.00" y="44.90" width="4.00" height="65.10" />
<rect x="274.00" y="44.90" width="2.00" height="65.10" />
<rect x="278.00" y="44.90" width="2.00" height="65.10" />
<rect x="288.00" y="44.90" width="2.00" height="65.10" />
<rect x="292.00" y="44.90" width="2.00" height="65.10" />
<rect x="298.00" y="44.90" width="2.00" height="65.10" />
<rect x="304.00" y="44.90" width="4.00" height="65.10" />
<rect x="310.00" y="44.90" width="2.00" height="65.10" />
<rect x="316.00" y="44.90" width="4.00" height="65.10" />
<rect x="324.00" y="44.90" width="2.00" height="65.10" />
<text x="18.20" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="20.0" >
1
</text>
<text x="76.00" y="116.00" text-anchor="middle"
<text x="77.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
234567
</text>
<text x="170.00" y="116.00" text-anchor="middle"
<text x="169.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
890128
</text>

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View file

@ -118,21 +118,21 @@
<rect x="198.00" y="28.00" width="2.00" height="72.00" />
<rect x="204.00" y="28.00" width="2.00" height="72.00" />
<rect x="212.00" y="28.00" width="2.00" height="82.00" />
<rect x="232.00" y="47.00" width="2.00" height="63.00" />
<rect x="236.00" y="47.00" width="4.00" height="63.00" />
<rect x="242.00" y="47.00" width="6.00" height="63.00" />
<rect x="252.00" y="47.00" width="2.00" height="63.00" />
<rect x="256.00" y="47.00" width="2.00" height="63.00" />
<rect x="260.00" y="47.00" width="2.00" height="63.00" />
<rect x="268.00" y="47.00" width="4.00" height="63.00" />
<rect x="274.00" y="47.00" width="2.00" height="63.00" />
<rect x="278.00" y="47.00" width="2.00" height="63.00" />
<rect x="288.00" y="47.00" width="2.00" height="63.00" />
<rect x="292.00" y="47.00" width="2.00" height="63.00" />
<rect x="298.00" y="47.00" width="2.00" height="63.00" />
<rect x="304.00" y="47.00" width="4.00" height="63.00" />
<rect x="310.00" y="47.00" width="2.00" height="63.00" />
<rect x="316.00" y="47.00" width="4.00" height="63.00" />
<rect x="324.00" y="47.00" width="2.00" height="63.00" />
<rect x="232.00" y="44.90" width="2.00" height="65.10" />
<rect x="236.00" y="44.90" width="4.00" height="65.10" />
<rect x="242.00" y="44.90" width="6.00" height="65.10" />
<rect x="252.00" y="44.90" width="2.00" height="65.10" />
<rect x="256.00" y="44.90" width="2.00" height="65.10" />
<rect x="260.00" y="44.90" width="2.00" height="65.10" />
<rect x="268.00" y="44.90" width="4.00" height="65.10" />
<rect x="274.00" y="44.90" width="2.00" height="65.10" />
<rect x="278.00" y="44.90" width="2.00" height="65.10" />
<rect x="288.00" y="44.90" width="2.00" height="65.10" />
<rect x="292.00" y="44.90" width="2.00" height="65.10" />
<rect x="298.00" y="44.90" width="2.00" height="65.10" />
<rect x="304.00" y="44.90" width="4.00" height="65.10" />
<rect x="310.00" y="44.90" width="2.00" height="65.10" />
<rect x="316.00" y="44.90" width="4.00" height="65.10" />
<rect x="324.00" y="44.90" width="2.00" height="65.10" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View file

@ -15,7 +15,7 @@
<rect x="38.00" y="0.00" width="2.00" height="100.00" />
<rect x="44.00" y="0.00" width="2.00" height="100.00" />
<rect x="50.00" y="0.00" width="4.00" height="100.00" />
<text x="34.00" y="116.00" text-anchor="middle"
<text x="34.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
12
</text>

Before

Width:  |  Height:  |  Size: 966 B

After

Width:  |  Height:  |  Size: 966 B

View file

@ -24,7 +24,7 @@
<rect x="92.00" y="0.00" width="2.00" height="100.00" />
<rect x="96.00" y="0.00" width="4.00" height="100.00" />
<rect x="106.00" y="0.00" width="2.00" height="100.00" />
<text x="61.00" y="116.00" text-anchor="middle"
<text x="61.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
12345
</text>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -30,18 +30,18 @@
<rect x="138.00" y="0.00" width="2.00" height="100.00" />
<rect x="142.00" y="0.00" width="2.00" height="110.00" />
<rect x="146.00" y="0.00" width="2.00" height="110.00" />
<rect x="162.00" y="19.00" width="2.00" height="91.00" />
<rect x="166.00" y="19.00" width="4.00" height="91.00" />
<rect x="174.00" y="19.00" width="4.00" height="91.00" />
<rect x="182.00" y="19.00" width="2.00" height="91.00" />
<rect x="186.00" y="19.00" width="2.00" height="91.00" />
<rect x="192.00" y="19.00" width="2.00" height="91.00" />
<rect x="198.00" y="19.00" width="4.00" height="91.00" />
<text x="48.00" y="116.00" text-anchor="middle"
<rect x="162.00" y="16.90" width="2.00" height="93.10" />
<rect x="166.00" y="16.90" width="4.00" height="93.10" />
<rect x="174.00" y="16.90" width="4.00" height="93.10" />
<rect x="182.00" y="16.90" width="2.00" height="93.10" />
<rect x="186.00" y="16.90" width="2.00" height="93.10" />
<rect x="192.00" y="16.90" width="2.00" height="93.10" />
<rect x="198.00" y="16.90" width="4.00" height="93.10" />
<text x="49.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
1234
</text>
<text x="114.00" y="116.00" text-anchor="middle"
<text x="113.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
5670
</text>

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -30,27 +30,27 @@
<rect x="138.00" y="0.00" width="2.00" height="100.00" />
<rect x="142.00" y="0.00" width="2.00" height="110.00" />
<rect x="146.00" y="0.00" width="2.00" height="110.00" />
<rect x="162.00" y="19.00" width="2.00" height="91.00" />
<rect x="166.00" y="19.00" width="4.00" height="91.00" />
<rect x="172.00" y="19.00" width="4.00" height="91.00" />
<rect x="180.00" y="19.00" width="4.00" height="91.00" />
<rect x="186.00" y="19.00" width="2.00" height="91.00" />
<rect x="192.00" y="19.00" width="2.00" height="91.00" />
<rect x="198.00" y="19.00" width="4.00" height="91.00" />
<rect x="204.00" y="19.00" width="2.00" height="91.00" />
<rect x="208.00" y="19.00" width="2.00" height="91.00" />
<rect x="218.00" y="19.00" width="2.00" height="91.00" />
<rect x="222.00" y="19.00" width="2.00" height="91.00" />
<rect x="226.00" y="19.00" width="2.00" height="91.00" />
<rect x="234.00" y="19.00" width="4.00" height="91.00" />
<rect x="240.00" y="19.00" width="2.00" height="91.00" />
<rect x="244.00" y="19.00" width="4.00" height="91.00" />
<rect x="254.00" y="19.00" width="2.00" height="91.00" />
<text x="48.00" y="116.00" text-anchor="middle"
<rect x="162.00" y="16.90" width="2.00" height="93.10" />
<rect x="166.00" y="16.90" width="4.00" height="93.10" />
<rect x="172.00" y="16.90" width="4.00" height="93.10" />
<rect x="180.00" y="16.90" width="4.00" height="93.10" />
<rect x="186.00" y="16.90" width="2.00" height="93.10" />
<rect x="192.00" y="16.90" width="2.00" height="93.10" />
<rect x="198.00" y="16.90" width="4.00" height="93.10" />
<rect x="204.00" y="16.90" width="2.00" height="93.10" />
<rect x="208.00" y="16.90" width="2.00" height="93.10" />
<rect x="218.00" y="16.90" width="2.00" height="93.10" />
<rect x="222.00" y="16.90" width="2.00" height="93.10" />
<rect x="226.00" y="16.90" width="2.00" height="93.10" />
<rect x="234.00" y="16.90" width="4.00" height="93.10" />
<rect x="240.00" y="16.90" width="2.00" height="93.10" />
<rect x="244.00" y="16.90" width="4.00" height="93.10" />
<rect x="254.00" y="16.90" width="2.00" height="93.10" />
<text x="49.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
1234
</text>
<text x="114.00" y="116.00" text-anchor="middle"
<text x="113.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
5670
</text>

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -93,18 +93,18 @@
<rect x="136.00" y="28.00" width="6.00" height="72.00" />
<rect x="146.00" y="28.00" width="2.00" height="72.00" />
<rect x="150.00" y="28.00" width="2.00" height="82.00" />
<rect x="170.00" y="47.00" width="2.00" height="63.00" />
<rect x="174.00" y="47.00" width="4.00" height="63.00" />
<rect x="180.00" y="47.00" width="2.00" height="63.00" />
<rect x="184.00" y="47.00" width="8.00" height="63.00" />
<rect x="194.00" y="47.00" width="2.00" height="63.00" />
<rect x="198.00" y="47.00" width="6.00" height="63.00" />
<rect x="208.00" y="47.00" width="2.00" height="63.00" />
<text x="56.00" y="116.00" text-anchor="middle"
<rect x="170.00" y="44.90" width="2.00" height="65.10" />
<rect x="174.00" y="44.90" width="4.00" height="65.10" />
<rect x="180.00" y="44.90" width="2.00" height="65.10" />
<rect x="184.00" y="44.90" width="8.00" height="65.10" />
<rect x="194.00" y="44.90" width="2.00" height="65.10" />
<rect x="198.00" y="44.90" width="6.00" height="65.10" />
<rect x="208.00" y="44.90" width="2.00" height="65.10" />
<text x="57.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
9876
</text>
<text x="122.00" y="116.00" text-anchor="middle"
<text x="121.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
5430
</text>

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -150,27 +150,27 @@
<rect x="156.00" y="44.00" width="6.00" height="56.00" />
<rect x="166.00" y="44.00" width="2.00" height="56.00" />
<rect x="170.00" y="44.00" width="2.00" height="66.00" />
<rect x="190.00" y="63.00" width="2.00" height="47.00" />
<rect x="194.00" y="63.00" width="4.00" height="47.00" />
<rect x="200.00" y="63.00" width="6.00" height="47.00" />
<rect x="208.00" y="63.00" width="4.00" height="47.00" />
<rect x="214.00" y="63.00" width="2.00" height="47.00" />
<rect x="220.00" y="63.00" width="6.00" height="47.00" />
<rect x="228.00" y="63.00" width="2.00" height="47.00" />
<rect x="232.00" y="63.00" width="2.00" height="47.00" />
<rect x="240.00" y="63.00" width="4.00" height="47.00" />
<rect x="246.00" y="63.00" width="2.00" height="47.00" />
<rect x="250.00" y="63.00" width="2.00" height="47.00" />
<rect x="254.00" y="63.00" width="4.00" height="47.00" />
<rect x="260.00" y="63.00" width="6.00" height="47.00" />
<rect x="268.00" y="63.00" width="2.00" height="47.00" />
<rect x="272.00" y="63.00" width="2.00" height="47.00" />
<rect x="282.00" y="63.00" width="2.00" height="47.00" />
<text x="76.00" y="116.00" text-anchor="middle"
<rect x="190.00" y="60.90" width="2.00" height="49.10" />
<rect x="194.00" y="60.90" width="4.00" height="49.10" />
<rect x="200.00" y="60.90" width="6.00" height="49.10" />
<rect x="208.00" y="60.90" width="4.00" height="49.10" />
<rect x="214.00" y="60.90" width="2.00" height="49.10" />
<rect x="220.00" y="60.90" width="6.00" height="49.10" />
<rect x="228.00" y="60.90" width="2.00" height="49.10" />
<rect x="232.00" y="60.90" width="2.00" height="49.10" />
<rect x="240.00" y="60.90" width="4.00" height="49.10" />
<rect x="246.00" y="60.90" width="2.00" height="49.10" />
<rect x="250.00" y="60.90" width="2.00" height="49.10" />
<rect x="254.00" y="60.90" width="4.00" height="49.10" />
<rect x="260.00" y="60.90" width="6.00" height="49.10" />
<rect x="268.00" y="60.90" width="2.00" height="49.10" />
<rect x="272.00" y="60.90" width="2.00" height="49.10" />
<rect x="282.00" y="60.90" width="2.00" height="49.10" />
<text x="77.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
9876
</text>
<text x="142.00" y="116.00" text-anchor="middle"
<text x="141.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
5430
</text>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -244,7 +244,7 @@
<rect x="332.00" y="32.00" width="6.00" height="68.00" />
<rect x="340.00" y="32.00" width="2.00" height="68.00" />
<rect x="344.00" y="32.00" width="4.00" height="68.00" />
<text x="174.00" y="115.40" text-anchor="middle"
<text x="174.00" y="114.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" >
(00)030123456789012340
</text>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -30,8 +30,8 @@
<rect x="10.00" y="18.90" width="2.00" height="1.00" />
<rect x="6.00" y="18.90" width="2.00" height="1.00" />
<rect x="2.00" y="18.90" width="2.00" height="1.00" />
<text x="64.00" y="3.50" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" transform="rotate(180,64.00,3.50)" >
<text x="64.00" y="4.90" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" transform="rotate(180,64.00,4.90)" >
A
</text>
</g>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -38,26 +38,26 @@
<rect x="194.00" y="0.00" width="6.00" height="110.00" />
<rect x="202.00" y="0.00" width="2.00" height="110.00" />
<rect x="206.00" y="0.00" width="2.00" height="110.00" />
<rect x="226.00" y="19.00" width="2.00" height="81.00" />
<rect x="230.00" y="19.00" width="4.00" height="81.00" />
<rect x="238.00" y="19.00" width="2.00" height="81.00" />
<rect x="244.00" y="19.00" width="4.00" height="81.00" />
<rect x="250.00" y="19.00" width="2.00" height="81.00" />
<rect x="254.00" y="19.00" width="2.00" height="81.00" />
<rect x="262.00" y="19.00" width="4.00" height="81.00" />
<text x="8.00" y="116.00" text-anchor="end"
<rect x="226.00" y="16.90" width="2.00" height="83.10" />
<rect x="230.00" y="16.90" width="4.00" height="83.10" />
<rect x="238.00" y="16.90" width="2.00" height="83.10" />
<rect x="244.00" y="16.90" width="4.00" height="83.10" />
<rect x="250.00" y="16.90" width="2.00" height="83.10" />
<rect x="254.00" y="16.90" width="2.00" height="83.10" />
<rect x="262.00" y="16.90" width="4.00" height="83.10" />
<text x="8.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
0
</text>
<text x="72.00" y="116.00" text-anchor="middle"
<text x="74.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
12345
</text>
<text x="152.00" y="116.00" text-anchor="middle"
<text x="152.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
67890
</text>
<text x="218.00" y="116.00" text-anchor="start"
<text x="217.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
5
</text>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -38,35 +38,35 @@
<rect x="196.00" y="0.00" width="2.00" height="110.00" />
<rect x="202.00" y="0.00" width="2.00" height="110.00" />
<rect x="206.00" y="0.00" width="2.00" height="110.00" />
<rect x="226.00" y="19.00" width="2.00" height="81.00" />
<rect x="230.00" y="19.00" width="4.00" height="81.00" />
<rect x="236.00" y="19.00" width="4.00" height="81.00" />
<rect x="244.00" y="19.00" width="4.00" height="81.00" />
<rect x="250.00" y="19.00" width="2.00" height="81.00" />
<rect x="256.00" y="19.00" width="2.00" height="81.00" />
<rect x="262.00" y="19.00" width="4.00" height="81.00" />
<rect x="268.00" y="19.00" width="2.00" height="81.00" />
<rect x="272.00" y="19.00" width="2.00" height="81.00" />
<rect x="282.00" y="19.00" width="2.00" height="81.00" />
<rect x="286.00" y="19.00" width="2.00" height="81.00" />
<rect x="290.00" y="19.00" width="2.00" height="81.00" />
<rect x="298.00" y="19.00" width="4.00" height="81.00" />
<rect x="304.00" y="19.00" width="2.00" height="81.00" />
<rect x="308.00" y="19.00" width="4.00" height="81.00" />
<rect x="318.00" y="19.00" width="2.00" height="81.00" />
<text x="8.00" y="116.00" text-anchor="end"
<rect x="226.00" y="16.90" width="2.00" height="83.10" />
<rect x="230.00" y="16.90" width="4.00" height="83.10" />
<rect x="236.00" y="16.90" width="4.00" height="83.10" />
<rect x="244.00" y="16.90" width="4.00" height="83.10" />
<rect x="250.00" y="16.90" width="2.00" height="83.10" />
<rect x="256.00" y="16.90" width="2.00" height="83.10" />
<rect x="262.00" y="16.90" width="4.00" height="83.10" />
<rect x="268.00" y="16.90" width="2.00" height="83.10" />
<rect x="272.00" y="16.90" width="2.00" height="83.10" />
<rect x="282.00" y="16.90" width="2.00" height="83.10" />
<rect x="286.00" y="16.90" width="2.00" height="83.10" />
<rect x="290.00" y="16.90" width="2.00" height="83.10" />
<rect x="298.00" y="16.90" width="4.00" height="83.10" />
<rect x="304.00" y="16.90" width="2.00" height="83.10" />
<rect x="308.00" y="16.90" width="4.00" height="83.10" />
<rect x="318.00" y="16.90" width="2.00" height="83.10" />
<text x="8.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
6
</text>
<text x="72.00" y="116.00" text-anchor="middle"
<text x="74.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
14141
</text>
<text x="152.00" y="116.00" text-anchor="middle"
<text x="152.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
23441
</text>
<text x="218.00" y="116.00" text-anchor="start"
<text x="217.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
7
</text>

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -38,37 +38,37 @@
<rect x="196.00" y="6.00" width="2.00" height="110.00" />
<rect x="202.00" y="6.00" width="2.00" height="110.00" />
<rect x="206.00" y="6.00" width="2.00" height="110.00" />
<rect x="226.00" y="25.00" width="2.00" height="81.00" />
<rect x="230.00" y="25.00" width="4.00" height="81.00" />
<rect x="236.00" y="25.00" width="4.00" height="81.00" />
<rect x="244.00" y="25.00" width="4.00" height="81.00" />
<rect x="250.00" y="25.00" width="2.00" height="81.00" />
<rect x="256.00" y="25.00" width="2.00" height="81.00" />
<rect x="262.00" y="25.00" width="4.00" height="81.00" />
<rect x="268.00" y="25.00" width="2.00" height="81.00" />
<rect x="272.00" y="25.00" width="2.00" height="81.00" />
<rect x="282.00" y="25.00" width="2.00" height="81.00" />
<rect x="286.00" y="25.00" width="2.00" height="81.00" />
<rect x="290.00" y="25.00" width="2.00" height="81.00" />
<rect x="298.00" y="25.00" width="4.00" height="81.00" />
<rect x="304.00" y="25.00" width="2.00" height="81.00" />
<rect x="308.00" y="25.00" width="4.00" height="81.00" />
<rect x="318.00" y="25.00" width="2.00" height="81.00" />
<rect x="226.00" y="22.90" width="2.00" height="83.10" />
<rect x="230.00" y="22.90" width="4.00" height="83.10" />
<rect x="236.00" y="22.90" width="4.00" height="83.10" />
<rect x="244.00" y="22.90" width="4.00" height="83.10" />
<rect x="250.00" y="22.90" width="2.00" height="83.10" />
<rect x="256.00" y="22.90" width="2.00" height="83.10" />
<rect x="262.00" y="22.90" width="4.00" height="83.10" />
<rect x="268.00" y="22.90" width="2.00" height="83.10" />
<rect x="272.00" y="22.90" width="2.00" height="83.10" />
<rect x="282.00" y="22.90" width="2.00" height="83.10" />
<rect x="286.00" y="22.90" width="2.00" height="83.10" />
<rect x="290.00" y="22.90" width="2.00" height="83.10" />
<rect x="298.00" y="22.90" width="4.00" height="83.10" />
<rect x="304.00" y="22.90" width="2.00" height="83.10" />
<rect x="308.00" y="22.90" width="4.00" height="83.10" />
<rect x="318.00" y="22.90" width="2.00" height="83.10" />
<rect x="0.00" y="0.00" width="330.00" height="6.00" />
<rect x="0.00" y="106.00" width="330.00" height="6.00" />
<text x="8.00" y="128.00" text-anchor="end"
<text x="8.70" y="128.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
6
</text>
<text x="72.00" y="128.00" text-anchor="middle"
<text x="74.00" y="128.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
14141
</text>
<text x="152.00" y="128.00" text-anchor="middle"
<text x="152.00" y="128.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
23441
</text>
<text x="218.00" y="128.00" text-anchor="start"
<text x="217.30" y="128.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
7
</text>

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

@ -1,13 +1,13 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="330" height="112" version="1.1"
<svg width="330" height="113" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<desc>Zint Generated Symbol
</desc>
<g id="barcode" fill="#000000">
<rect x="0" y="0" width="330" height="112" fill="#FFFFFF" />
<rect x="0" y="0" width="330" height="113" fill="#FFFFFF" />
<rect x="18.00" y="0.00" width="2.00" height="110.00" />
<rect x="22.00" y="0.00" width="2.00" height="110.00" />
<rect x="26.00" y="0.00" width="2.00" height="110.00" />
@ -38,40 +38,40 @@
<rect x="196.00" y="0.00" width="2.00" height="110.00" />
<rect x="202.00" y="0.00" width="2.00" height="110.00" />
<rect x="206.00" y="0.00" width="2.00" height="110.00" />
<rect x="226.00" y="13.00" width="2.00" height="87.00" />
<rect x="230.00" y="13.00" width="4.00" height="87.00" />
<rect x="236.00" y="13.00" width="4.00" height="87.00" />
<rect x="244.00" y="13.00" width="4.00" height="87.00" />
<rect x="250.00" y="13.00" width="2.00" height="87.00" />
<rect x="256.00" y="13.00" width="2.00" height="87.00" />
<rect x="262.00" y="13.00" width="4.00" height="87.00" />
<rect x="268.00" y="13.00" width="2.00" height="87.00" />
<rect x="272.00" y="13.00" width="2.00" height="87.00" />
<rect x="282.00" y="13.00" width="2.00" height="87.00" />
<rect x="286.00" y="13.00" width="2.00" height="87.00" />
<rect x="290.00" y="13.00" width="2.00" height="87.00" />
<rect x="298.00" y="13.00" width="4.00" height="87.00" />
<rect x="304.00" y="13.00" width="2.00" height="87.00" />
<rect x="308.00" y="13.00" width="4.00" height="87.00" />
<rect x="318.00" y="13.00" width="2.00" height="87.00" />
<text x="8.00" y="111.50" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="12.0" font-weight="bold" >
<rect x="226.00" y="12.28" width="2.00" height="87.72" />
<rect x="230.00" y="12.28" width="4.00" height="87.72" />
<rect x="236.00" y="12.28" width="4.00" height="87.72" />
<rect x="244.00" y="12.28" width="4.00" height="87.72" />
<rect x="250.00" y="12.28" width="2.00" height="87.72" />
<rect x="256.00" y="12.28" width="2.00" height="87.72" />
<rect x="262.00" y="12.28" width="4.00" height="87.72" />
<rect x="268.00" y="12.28" width="2.00" height="87.72" />
<rect x="272.00" y="12.28" width="2.00" height="87.72" />
<rect x="282.00" y="12.28" width="2.00" height="87.72" />
<rect x="286.00" y="12.28" width="2.00" height="87.72" />
<rect x="290.00" y="12.28" width="2.00" height="87.72" />
<rect x="298.00" y="12.28" width="4.00" height="87.72" />
<rect x="304.00" y="12.28" width="2.00" height="87.72" />
<rect x="308.00" y="12.28" width="4.00" height="87.72" />
<rect x="318.00" y="12.28" width="2.00" height="87.72" />
<text x="8.70" y="111.72" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="12.0" >
6
</text>
<text x="72.00" y="111.50" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
<text x="74.00" y="111.72" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" >
14141
</text>
<text x="152.00" y="111.50" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
<text x="152.00" y="111.72" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" >
23441
</text>
<text x="218.00" y="111.50" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="12.0" font-weight="bold" >
<text x="217.30" y="111.72" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="12.0" >
7
</text>
<text x="274.00" y="10.50" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
font-family="Helvetica, sans-serif" font-size="14.0" >
12345
</text>
</g>

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -103,26 +103,26 @@
<rect x="194.00" y="24.00" width="4.00" height="86.00" />
<rect x="200.00" y="24.00" width="4.00" height="86.00" />
<rect x="208.00" y="24.00" width="2.00" height="86.00" />
<rect x="232.00" y="43.00" width="2.00" height="57.00" />
<rect x="236.00" y="43.00" width="4.00" height="57.00" />
<rect x="244.00" y="43.00" width="4.00" height="57.00" />
<rect x="252.00" y="43.00" width="2.00" height="57.00" />
<rect x="256.00" y="43.00" width="2.00" height="57.00" />
<rect x="262.00" y="43.00" width="2.00" height="57.00" />
<rect x="268.00" y="43.00" width="4.00" height="57.00" />
<text x="14.00" y="116.00" text-anchor="end"
<rect x="232.00" y="40.90" width="2.00" height="59.10" />
<rect x="236.00" y="40.90" width="4.00" height="59.10" />
<rect x="244.00" y="40.90" width="4.00" height="59.10" />
<rect x="252.00" y="40.90" width="2.00" height="59.10" />
<rect x="256.00" y="40.90" width="2.00" height="59.10" />
<rect x="262.00" y="40.90" width="2.00" height="59.10" />
<rect x="268.00" y="40.90" width="4.00" height="59.10" />
<text x="14.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
1
</text>
<text x="78.00" y="116.00" text-anchor="middle"
<text x="80.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
23456
</text>
<text x="158.00" y="116.00" text-anchor="middle"
<text x="158.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
78901
</text>
<text x="224.00" y="116.00" text-anchor="start"
<text x="223.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
2
</text>

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View file

@ -118,35 +118,35 @@
<rect x="194.00" y="28.00" width="4.00" height="82.00" />
<rect x="200.00" y="28.00" width="4.00" height="82.00" />
<rect x="208.00" y="28.00" width="2.00" height="82.00" />
<rect x="232.00" y="47.00" width="2.00" height="53.00" />
<rect x="236.00" y="47.00" width="4.00" height="53.00" />
<rect x="244.00" y="47.00" width="4.00" height="53.00" />
<rect x="252.00" y="47.00" width="2.00" height="53.00" />
<rect x="256.00" y="47.00" width="2.00" height="53.00" />
<rect x="262.00" y="47.00" width="2.00" height="53.00" />
<rect x="268.00" y="47.00" width="4.00" height="53.00" />
<rect x="274.00" y="47.00" width="2.00" height="53.00" />
<rect x="278.00" y="47.00" width="4.00" height="53.00" />
<rect x="286.00" y="47.00" width="4.00" height="53.00" />
<rect x="292.00" y="47.00" width="2.00" height="53.00" />
<rect x="298.00" y="47.00" width="4.00" height="53.00" />
<rect x="304.00" y="47.00" width="4.00" height="53.00" />
<rect x="310.00" y="47.00" width="2.00" height="53.00" />
<rect x="316.00" y="47.00" width="4.00" height="53.00" />
<rect x="324.00" y="47.00" width="2.00" height="53.00" />
<text x="14.00" y="116.00" text-anchor="end"
<rect x="232.00" y="44.90" width="2.00" height="55.10" />
<rect x="236.00" y="44.90" width="4.00" height="55.10" />
<rect x="244.00" y="44.90" width="4.00" height="55.10" />
<rect x="252.00" y="44.90" width="2.00" height="55.10" />
<rect x="256.00" y="44.90" width="2.00" height="55.10" />
<rect x="262.00" y="44.90" width="2.00" height="55.10" />
<rect x="268.00" y="44.90" width="4.00" height="55.10" />
<rect x="274.00" y="44.90" width="2.00" height="55.10" />
<rect x="278.00" y="44.90" width="4.00" height="55.10" />
<rect x="286.00" y="44.90" width="4.00" height="55.10" />
<rect x="292.00" y="44.90" width="2.00" height="55.10" />
<rect x="298.00" y="44.90" width="4.00" height="55.10" />
<rect x="304.00" y="44.90" width="4.00" height="55.10" />
<rect x="310.00" y="44.90" width="2.00" height="55.10" />
<rect x="316.00" y="44.90" width="4.00" height="55.10" />
<rect x="324.00" y="44.90" width="2.00" height="55.10" />
<text x="14.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
1
</text>
<text x="78.00" y="116.00" text-anchor="middle"
<text x="80.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
23456
</text>
<text x="158.00" y="116.00" text-anchor="middle"
<text x="158.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
78901
</text>
<text x="224.00" y="116.00" text-anchor="start"
<text x="223.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
2
</text>

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View file

@ -118,37 +118,37 @@
<rect x="194.00" y="34.00" width="4.00" height="82.00" />
<rect x="200.00" y="34.00" width="4.00" height="82.00" />
<rect x="208.00" y="34.00" width="2.00" height="82.00" />
<rect x="232.00" y="53.00" width="2.00" height="53.00" />
<rect x="236.00" y="53.00" width="4.00" height="53.00" />
<rect x="244.00" y="53.00" width="4.00" height="53.00" />
<rect x="252.00" y="53.00" width="2.00" height="53.00" />
<rect x="256.00" y="53.00" width="2.00" height="53.00" />
<rect x="262.00" y="53.00" width="2.00" height="53.00" />
<rect x="268.00" y="53.00" width="4.00" height="53.00" />
<rect x="274.00" y="53.00" width="2.00" height="53.00" />
<rect x="278.00" y="53.00" width="4.00" height="53.00" />
<rect x="286.00" y="53.00" width="4.00" height="53.00" />
<rect x="292.00" y="53.00" width="2.00" height="53.00" />
<rect x="298.00" y="53.00" width="4.00" height="53.00" />
<rect x="304.00" y="53.00" width="4.00" height="53.00" />
<rect x="310.00" y="53.00" width="2.00" height="53.00" />
<rect x="316.00" y="53.00" width="4.00" height="53.00" />
<rect x="324.00" y="53.00" width="2.00" height="53.00" />
<rect x="232.00" y="50.90" width="2.00" height="55.10" />
<rect x="236.00" y="50.90" width="4.00" height="55.10" />
<rect x="244.00" y="50.90" width="4.00" height="55.10" />
<rect x="252.00" y="50.90" width="2.00" height="55.10" />
<rect x="256.00" y="50.90" width="2.00" height="55.10" />
<rect x="262.00" y="50.90" width="2.00" height="55.10" />
<rect x="268.00" y="50.90" width="4.00" height="55.10" />
<rect x="274.00" y="50.90" width="2.00" height="55.10" />
<rect x="278.00" y="50.90" width="4.00" height="55.10" />
<rect x="286.00" y="50.90" width="4.00" height="55.10" />
<rect x="292.00" y="50.90" width="2.00" height="55.10" />
<rect x="298.00" y="50.90" width="4.00" height="55.10" />
<rect x="304.00" y="50.90" width="4.00" height="55.10" />
<rect x="310.00" y="50.90" width="2.00" height="55.10" />
<rect x="316.00" y="50.90" width="4.00" height="55.10" />
<rect x="324.00" y="50.90" width="2.00" height="55.10" />
<rect x="0.00" y="0.00" width="338.00" height="6.00" />
<rect x="0.00" y="106.00" width="338.00" height="6.00" />
<text x="14.00" y="128.00" text-anchor="end"
<text x="14.70" y="128.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
1
</text>
<text x="78.00" y="128.00" text-anchor="middle"
<text x="80.00" y="128.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
23456
</text>
<text x="158.00" y="128.00" text-anchor="middle"
<text x="158.00" y="128.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
78901
</text>
<text x="224.00" y="128.00" text-anchor="start"
<text x="223.30" y="128.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
2
</text>

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

View file

@ -118,21 +118,21 @@
<rect x="194.00" y="28.00" width="4.00" height="82.00" />
<rect x="200.00" y="28.00" width="4.00" height="82.00" />
<rect x="208.00" y="28.00" width="2.00" height="82.00" />
<rect x="232.00" y="47.00" width="2.00" height="53.00" />
<rect x="236.00" y="47.00" width="4.00" height="53.00" />
<rect x="244.00" y="47.00" width="4.00" height="53.00" />
<rect x="252.00" y="47.00" width="2.00" height="53.00" />
<rect x="256.00" y="47.00" width="2.00" height="53.00" />
<rect x="262.00" y="47.00" width="2.00" height="53.00" />
<rect x="268.00" y="47.00" width="4.00" height="53.00" />
<rect x="274.00" y="47.00" width="2.00" height="53.00" />
<rect x="278.00" y="47.00" width="4.00" height="53.00" />
<rect x="286.00" y="47.00" width="4.00" height="53.00" />
<rect x="292.00" y="47.00" width="2.00" height="53.00" />
<rect x="298.00" y="47.00" width="4.00" height="53.00" />
<rect x="304.00" y="47.00" width="4.00" height="53.00" />
<rect x="310.00" y="47.00" width="2.00" height="53.00" />
<rect x="316.00" y="47.00" width="4.00" height="53.00" />
<rect x="324.00" y="47.00" width="2.00" height="53.00" />
<rect x="232.00" y="44.90" width="2.00" height="55.10" />
<rect x="236.00" y="44.90" width="4.00" height="55.10" />
<rect x="244.00" y="44.90" width="4.00" height="55.10" />
<rect x="252.00" y="44.90" width="2.00" height="55.10" />
<rect x="256.00" y="44.90" width="2.00" height="55.10" />
<rect x="262.00" y="44.90" width="2.00" height="55.10" />
<rect x="268.00" y="44.90" width="4.00" height="55.10" />
<rect x="274.00" y="44.90" width="2.00" height="55.10" />
<rect x="278.00" y="44.90" width="4.00" height="55.10" />
<rect x="286.00" y="44.90" width="4.00" height="55.10" />
<rect x="292.00" y="44.90" width="2.00" height="55.10" />
<rect x="298.00" y="44.90" width="4.00" height="55.10" />
<rect x="304.00" y="44.90" width="4.00" height="55.10" />
<rect x="310.00" y="44.90" width="2.00" height="55.10" />
<rect x="316.00" y="44.90" width="4.00" height="55.10" />
<rect x="324.00" y="44.90" width="2.00" height="55.10" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View file

@ -25,22 +25,22 @@
<rect x="110.00" y="0.00" width="2.00" height="110.00" />
<rect x="114.00" y="0.00" width="2.00" height="110.00" />
<rect x="118.00" y="0.00" width="2.00" height="110.00" />
<rect x="134.00" y="19.00" width="2.00" height="81.00" />
<rect x="138.00" y="19.00" width="4.00" height="81.00" />
<rect x="146.00" y="19.00" width="4.00" height="81.00" />
<rect x="154.00" y="19.00" width="2.00" height="81.00" />
<rect x="158.00" y="19.00" width="2.00" height="81.00" />
<rect x="164.00" y="19.00" width="2.00" height="81.00" />
<rect x="170.00" y="19.00" width="4.00" height="81.00" />
<text x="8.00" y="116.00" text-anchor="end"
<rect x="134.00" y="16.90" width="2.00" height="83.10" />
<rect x="138.00" y="16.90" width="4.00" height="83.10" />
<rect x="146.00" y="16.90" width="4.00" height="83.10" />
<rect x="154.00" y="16.90" width="2.00" height="83.10" />
<rect x="158.00" y="16.90" width="2.00" height="83.10" />
<rect x="164.00" y="16.90" width="2.00" height="83.10" />
<rect x="170.00" y="16.90" width="4.00" height="83.10" />
<text x="8.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
1
</text>
<text x="66.00" y="116.00" text-anchor="middle"
<text x="67.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
234567
</text>
<text x="126.00" y="116.00" text-anchor="start"
<text x="125.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
0
</text>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -25,31 +25,31 @@
<rect x="110.00" y="0.00" width="2.00" height="110.00" />
<rect x="114.00" y="0.00" width="2.00" height="110.00" />
<rect x="118.00" y="0.00" width="2.00" height="110.00" />
<rect x="134.00" y="19.00" width="2.00" height="81.00" />
<rect x="138.00" y="19.00" width="4.00" height="81.00" />
<rect x="144.00" y="19.00" width="4.00" height="81.00" />
<rect x="152.00" y="19.00" width="4.00" height="81.00" />
<rect x="158.00" y="19.00" width="2.00" height="81.00" />
<rect x="164.00" y="19.00" width="2.00" height="81.00" />
<rect x="170.00" y="19.00" width="4.00" height="81.00" />
<rect x="176.00" y="19.00" width="2.00" height="81.00" />
<rect x="180.00" y="19.00" width="2.00" height="81.00" />
<rect x="190.00" y="19.00" width="2.00" height="81.00" />
<rect x="194.00" y="19.00" width="2.00" height="81.00" />
<rect x="198.00" y="19.00" width="2.00" height="81.00" />
<rect x="206.00" y="19.00" width="4.00" height="81.00" />
<rect x="212.00" y="19.00" width="2.00" height="81.00" />
<rect x="216.00" y="19.00" width="4.00" height="81.00" />
<rect x="226.00" y="19.00" width="2.00" height="81.00" />
<text x="8.00" y="116.00" text-anchor="end"
<rect x="134.00" y="16.90" width="2.00" height="83.10" />
<rect x="138.00" y="16.90" width="4.00" height="83.10" />
<rect x="144.00" y="16.90" width="4.00" height="83.10" />
<rect x="152.00" y="16.90" width="4.00" height="83.10" />
<rect x="158.00" y="16.90" width="2.00" height="83.10" />
<rect x="164.00" y="16.90" width="2.00" height="83.10" />
<rect x="170.00" y="16.90" width="4.00" height="83.10" />
<rect x="176.00" y="16.90" width="2.00" height="83.10" />
<rect x="180.00" y="16.90" width="2.00" height="83.10" />
<rect x="190.00" y="16.90" width="2.00" height="83.10" />
<rect x="194.00" y="16.90" width="2.00" height="83.10" />
<rect x="198.00" y="16.90" width="2.00" height="83.10" />
<rect x="206.00" y="16.90" width="4.00" height="83.10" />
<rect x="212.00" y="16.90" width="2.00" height="83.10" />
<rect x="216.00" y="16.90" width="4.00" height="83.10" />
<rect x="226.00" y="16.90" width="2.00" height="83.10" />
<text x="8.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
1
</text>
<text x="66.00" y="116.00" text-anchor="middle"
<text x="67.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
234567
</text>
<text x="126.00" y="116.00" text-anchor="start"
<text x="125.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
0
</text>

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -25,21 +25,21 @@
<rect x="110.00" y="0.00" width="2.00" height="110.00" />
<rect x="114.00" y="0.00" width="2.00" height="110.00" />
<rect x="118.00" y="0.00" width="2.00" height="110.00" />
<rect x="134.00" y="19.00" width="2.00" height="81.00" />
<rect x="138.00" y="19.00" width="4.00" height="81.00" />
<rect x="144.00" y="19.00" width="4.00" height="81.00" />
<rect x="152.00" y="19.00" width="4.00" height="81.00" />
<rect x="158.00" y="19.00" width="2.00" height="81.00" />
<rect x="164.00" y="19.00" width="2.00" height="81.00" />
<rect x="170.00" y="19.00" width="4.00" height="81.00" />
<rect x="176.00" y="19.00" width="2.00" height="81.00" />
<rect x="180.00" y="19.00" width="2.00" height="81.00" />
<rect x="190.00" y="19.00" width="2.00" height="81.00" />
<rect x="194.00" y="19.00" width="2.00" height="81.00" />
<rect x="198.00" y="19.00" width="2.00" height="81.00" />
<rect x="206.00" y="19.00" width="4.00" height="81.00" />
<rect x="212.00" y="19.00" width="2.00" height="81.00" />
<rect x="216.00" y="19.00" width="4.00" height="81.00" />
<rect x="226.00" y="19.00" width="2.00" height="81.00" />
<rect x="134.00" y="16.90" width="2.00" height="83.10" />
<rect x="138.00" y="16.90" width="4.00" height="83.10" />
<rect x="144.00" y="16.90" width="4.00" height="83.10" />
<rect x="152.00" y="16.90" width="4.00" height="83.10" />
<rect x="158.00" y="16.90" width="2.00" height="83.10" />
<rect x="164.00" y="16.90" width="2.00" height="83.10" />
<rect x="170.00" y="16.90" width="4.00" height="83.10" />
<rect x="176.00" y="16.90" width="2.00" height="83.10" />
<rect x="180.00" y="16.90" width="2.00" height="83.10" />
<rect x="190.00" y="16.90" width="2.00" height="83.10" />
<rect x="194.00" y="16.90" width="2.00" height="83.10" />
<rect x="198.00" y="16.90" width="2.00" height="83.10" />
<rect x="206.00" y="16.90" width="4.00" height="83.10" />
<rect x="212.00" y="16.90" width="2.00" height="83.10" />
<rect x="216.00" y="16.90" width="4.00" height="83.10" />
<rect x="226.00" y="16.90" width="2.00" height="83.10" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1,13 +1,13 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="238" height="112" version="1.1"
<svg width="238" height="113" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<desc>Zint Generated Symbol
</desc>
<g id="barcode" fill="#000000">
<rect x="0" y="0" width="238" height="112" fill="#FFFFFF" />
<rect x="0" y="0" width="238" height="113" fill="#FFFFFF" />
<rect x="18.00" y="0.00" width="2.00" height="110.00" />
<rect x="22.00" y="0.00" width="2.00" height="110.00" />
<rect x="28.00" y="0.00" width="2.00" height="100.00" />
@ -25,31 +25,31 @@
<rect x="110.00" y="0.00" width="2.00" height="110.00" />
<rect x="114.00" y="0.00" width="2.00" height="110.00" />
<rect x="118.00" y="0.00" width="2.00" height="110.00" />
<rect x="134.00" y="13.00" width="2.00" height="87.00" />
<rect x="138.00" y="13.00" width="4.00" height="87.00" />
<rect x="144.00" y="13.00" width="4.00" height="87.00" />
<rect x="152.00" y="13.00" width="4.00" height="87.00" />
<rect x="158.00" y="13.00" width="2.00" height="87.00" />
<rect x="164.00" y="13.00" width="2.00" height="87.00" />
<rect x="170.00" y="13.00" width="4.00" height="87.00" />
<rect x="176.00" y="13.00" width="2.00" height="87.00" />
<rect x="180.00" y="13.00" width="2.00" height="87.00" />
<rect x="190.00" y="13.00" width="2.00" height="87.00" />
<rect x="194.00" y="13.00" width="2.00" height="87.00" />
<rect x="198.00" y="13.00" width="2.00" height="87.00" />
<rect x="206.00" y="13.00" width="4.00" height="87.00" />
<rect x="212.00" y="13.00" width="2.00" height="87.00" />
<rect x="216.00" y="13.00" width="4.00" height="87.00" />
<rect x="226.00" y="13.00" width="2.00" height="87.00" />
<text x="8.00" y="111.50" text-anchor="end"
<rect x="134.00" y="12.28" width="2.00" height="87.72" />
<rect x="138.00" y="12.28" width="4.00" height="87.72" />
<rect x="144.00" y="12.28" width="4.00" height="87.72" />
<rect x="152.00" y="12.28" width="4.00" height="87.72" />
<rect x="158.00" y="12.28" width="2.00" height="87.72" />
<rect x="164.00" y="12.28" width="2.00" height="87.72" />
<rect x="170.00" y="12.28" width="4.00" height="87.72" />
<rect x="176.00" y="12.28" width="2.00" height="87.72" />
<rect x="180.00" y="12.28" width="2.00" height="87.72" />
<rect x="190.00" y="12.28" width="2.00" height="87.72" />
<rect x="194.00" y="12.28" width="2.00" height="87.72" />
<rect x="198.00" y="12.28" width="2.00" height="87.72" />
<rect x="206.00" y="12.28" width="4.00" height="87.72" />
<rect x="212.00" y="12.28" width="2.00" height="87.72" />
<rect x="216.00" y="12.28" width="4.00" height="87.72" />
<rect x="226.00" y="12.28" width="2.00" height="87.72" />
<text x="8.70" y="111.72" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="12.0" >
1
</text>
<text x="66.00" y="111.50" text-anchor="middle"
<text x="67.00" y="111.72" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="14.0" >
234567
</text>
<text x="126.00" y="111.50" text-anchor="start"
<text x="125.30" y="111.72" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="12.0" >
0
</text>

Before

Width:  |  Height:  |  Size: 3 KiB

After

Width:  |  Height:  |  Size: 3 KiB

View file

@ -80,22 +80,22 @@
<rect x="112.00" y="32.00" width="2.00" height="68.00" />
<rect x="116.00" y="32.00" width="2.00" height="78.00" />
<rect x="120.00" y="32.00" width="2.00" height="78.00" />
<rect x="140.00" y="51.00" width="2.00" height="49.00" />
<rect x="144.00" y="51.00" width="4.00" height="49.00" />
<rect x="150.00" y="51.00" width="4.00" height="49.00" />
<rect x="156.00" y="51.00" width="6.00" height="49.00" />
<rect x="164.00" y="51.00" width="2.00" height="49.00" />
<rect x="170.00" y="51.00" width="2.00" height="49.00" />
<rect x="174.00" y="51.00" width="6.00" height="49.00" />
<text x="14.00" y="116.00" text-anchor="end"
<rect x="140.00" y="48.90" width="2.00" height="51.10" />
<rect x="144.00" y="48.90" width="4.00" height="51.10" />
<rect x="150.00" y="48.90" width="4.00" height="51.10" />
<rect x="156.00" y="48.90" width="6.00" height="51.10" />
<rect x="164.00" y="48.90" width="2.00" height="51.10" />
<rect x="170.00" y="48.90" width="2.00" height="51.10" />
<rect x="174.00" y="48.90" width="6.00" height="51.10" />
<text x="14.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
0
</text>
<text x="72.00" y="116.00" text-anchor="middle"
<text x="73.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
654321
</text>
<text x="132.00" y="116.00" text-anchor="start"
<text x="131.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
7
</text>

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -80,22 +80,22 @@
<rect x="112.00" y="32.00" width="2.00" height="68.00" opacity="0.933" />
<rect x="116.00" y="32.00" width="2.00" height="78.00" opacity="0.933" />
<rect x="120.00" y="32.00" width="2.00" height="78.00" opacity="0.933" />
<rect x="140.00" y="51.00" width="2.00" height="49.00" opacity="0.933" />
<rect x="144.00" y="51.00" width="4.00" height="49.00" opacity="0.933" />
<rect x="150.00" y="51.00" width="4.00" height="49.00" opacity="0.933" />
<rect x="156.00" y="51.00" width="6.00" height="49.00" opacity="0.933" />
<rect x="164.00" y="51.00" width="2.00" height="49.00" opacity="0.933" />
<rect x="170.00" y="51.00" width="2.00" height="49.00" opacity="0.933" />
<rect x="174.00" y="51.00" width="6.00" height="49.00" opacity="0.933" />
<text x="14.00" y="116.00" text-anchor="end"
<rect x="140.00" y="48.90" width="2.00" height="51.10" opacity="0.933" />
<rect x="144.00" y="48.90" width="4.00" height="51.10" opacity="0.933" />
<rect x="150.00" y="48.90" width="4.00" height="51.10" opacity="0.933" />
<rect x="156.00" y="48.90" width="6.00" height="51.10" opacity="0.933" />
<rect x="164.00" y="48.90" width="2.00" height="51.10" opacity="0.933" />
<rect x="170.00" y="48.90" width="2.00" height="51.10" opacity="0.933" />
<rect x="174.00" y="48.90" width="6.00" height="51.10" opacity="0.933" />
<text x="14.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" opacity="0.933" >
0
</text>
<text x="72.00" y="116.00" text-anchor="middle"
<text x="73.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" opacity="0.933" >
654321
</text>
<text x="132.00" y="116.00" text-anchor="start"
<text x="131.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" opacity="0.933" >
7
</text>

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 7 KiB

View file

@ -79,22 +79,22 @@
<rect x="112.00" y="32.00" width="2.00" height="68.00" />
<rect x="116.00" y="32.00" width="2.00" height="78.00" />
<rect x="120.00" y="32.00" width="2.00" height="78.00" />
<rect x="140.00" y="51.00" width="2.00" height="49.00" />
<rect x="144.00" y="51.00" width="4.00" height="49.00" />
<rect x="150.00" y="51.00" width="4.00" height="49.00" />
<rect x="156.00" y="51.00" width="6.00" height="49.00" />
<rect x="164.00" y="51.00" width="2.00" height="49.00" />
<rect x="170.00" y="51.00" width="2.00" height="49.00" />
<rect x="174.00" y="51.00" width="6.00" height="49.00" />
<text x="14.00" y="116.00" text-anchor="end"
<rect x="140.00" y="48.90" width="2.00" height="51.10" />
<rect x="144.00" y="48.90" width="4.00" height="51.10" />
<rect x="150.00" y="48.90" width="4.00" height="51.10" />
<rect x="156.00" y="48.90" width="6.00" height="51.10" />
<rect x="164.00" y="48.90" width="2.00" height="51.10" />
<rect x="170.00" y="48.90" width="2.00" height="51.10" />
<rect x="174.00" y="48.90" width="6.00" height="51.10" />
<text x="14.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
0
</text>
<text x="72.00" y="116.00" text-anchor="middle"
<text x="73.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
654321
</text>
<text x="132.00" y="116.00" text-anchor="start"
<text x="131.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
7
</text>

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View file

@ -80,23 +80,23 @@
<rect x="32.00" y="78.00" width="68.00" height="2.00" />
<rect x="32.00" y="74.00" width="78.00" height="2.00" />
<rect x="32.00" y="70.00" width="78.00" height="2.00" />
<rect x="51.00" y="50.00" width="49.00" height="2.00" />
<rect x="51.00" y="44.00" width="49.00" height="4.00" />
<rect x="51.00" y="38.00" width="49.00" height="4.00" />
<rect x="51.00" y="30.00" width="49.00" height="6.00" />
<rect x="51.00" y="26.00" width="49.00" height="2.00" />
<rect x="51.00" y="20.00" width="49.00" height="2.00" />
<rect x="51.00" y="12.00" width="49.00" height="6.00" />
<text x="116.00" y="178.00" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" transform="rotate(270,116.00,178.00)" >
<rect x="48.90" y="50.00" width="51.10" height="2.00" />
<rect x="48.90" y="44.00" width="51.10" height="4.00" />
<rect x="48.90" y="38.00" width="51.10" height="4.00" />
<rect x="48.90" y="30.00" width="51.10" height="6.00" />
<rect x="48.90" y="26.00" width="51.10" height="2.00" />
<rect x="48.90" y="20.00" width="51.10" height="2.00" />
<rect x="48.90" y="12.00" width="51.10" height="6.00" />
<text x="116.10" y="177.30" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" transform="rotate(270,116.10,177.30)" >
0
</text>
<text x="116.00" y="120.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" transform="rotate(270,116.00,120.00)" >
<text x="116.10" y="119.00" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" transform="rotate(270,116.10,119.00)" >
654321
</text>
<text x="116.00" y="60.00" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" transform="rotate(270,116.00,60.00)" >
<text x="116.10" y="60.70" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" transform="rotate(270,116.10,60.70)" >
7
</text>
<text x="47.00" y="32.00" text-anchor="middle"

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View file

@ -106,31 +106,31 @@
<rect x="112.00" y="44.00" width="2.00" height="56.00" />
<rect x="116.00" y="44.00" width="2.00" height="66.00" />
<rect x="120.00" y="44.00" width="2.00" height="66.00" />
<rect x="140.00" y="63.00" width="2.00" height="37.00" />
<rect x="144.00" y="63.00" width="4.00" height="37.00" />
<rect x="150.00" y="63.00" width="4.00" height="37.00" />
<rect x="160.00" y="63.00" width="2.00" height="37.00" />
<rect x="164.00" y="63.00" width="2.00" height="37.00" />
<rect x="168.00" y="63.00" width="2.00" height="37.00" />
<rect x="172.00" y="63.00" width="8.00" height="37.00" />
<rect x="182.00" y="63.00" width="2.00" height="37.00" />
<rect x="188.00" y="63.00" width="2.00" height="37.00" />
<rect x="196.00" y="63.00" width="2.00" height="37.00" />
<rect x="200.00" y="63.00" width="2.00" height="37.00" />
<rect x="204.00" y="63.00" width="4.00" height="37.00" />
<rect x="210.00" y="63.00" width="6.00" height="37.00" />
<rect x="218.00" y="63.00" width="2.00" height="37.00" />
<rect x="224.00" y="63.00" width="2.00" height="37.00" />
<rect x="228.00" y="63.00" width="6.00" height="37.00" />
<text x="14.00" y="116.00" text-anchor="end"
<rect x="140.00" y="60.90" width="2.00" height="39.10" />
<rect x="144.00" y="60.90" width="4.00" height="39.10" />
<rect x="150.00" y="60.90" width="4.00" height="39.10" />
<rect x="160.00" y="60.90" width="2.00" height="39.10" />
<rect x="164.00" y="60.90" width="2.00" height="39.10" />
<rect x="168.00" y="60.90" width="2.00" height="39.10" />
<rect x="172.00" y="60.90" width="8.00" height="39.10" />
<rect x="182.00" y="60.90" width="2.00" height="39.10" />
<rect x="188.00" y="60.90" width="2.00" height="39.10" />
<rect x="196.00" y="60.90" width="2.00" height="39.10" />
<rect x="200.00" y="60.90" width="2.00" height="39.10" />
<rect x="204.00" y="60.90" width="4.00" height="39.10" />
<rect x="210.00" y="60.90" width="6.00" height="39.10" />
<rect x="218.00" y="60.90" width="2.00" height="39.10" />
<rect x="224.00" y="60.90" width="2.00" height="39.10" />
<rect x="228.00" y="60.90" width="6.00" height="39.10" />
<text x="14.70" y="116.10" text-anchor="end"
font-family="Helvetica, sans-serif" font-size="14.0" >
1
</text>
<text x="72.00" y="116.00" text-anchor="middle"
<text x="73.00" y="116.10" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="20.0" >
876543
</text>
<text x="132.00" y="116.00" text-anchor="start"
<text x="131.30" y="116.10" text-anchor="start"
font-family="Helvetica, sans-serif" font-size="14.0" >
5
</text>

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View file

@ -106,21 +106,21 @@
<rect x="112.00" y="44.00" width="2.00" height="56.00" />
<rect x="116.00" y="44.00" width="2.00" height="66.00" />
<rect x="120.00" y="44.00" width="2.00" height="66.00" />
<rect x="140.00" y="63.00" width="2.00" height="37.00" />
<rect x="144.00" y="63.00" width="4.00" height="37.00" />
<rect x="150.00" y="63.00" width="4.00" height="37.00" />
<rect x="160.00" y="63.00" width="2.00" height="37.00" />
<rect x="164.00" y="63.00" width="2.00" height="37.00" />
<rect x="168.00" y="63.00" width="2.00" height="37.00" />
<rect x="172.00" y="63.00" width="8.00" height="37.00" />
<rect x="182.00" y="63.00" width="2.00" height="37.00" />
<rect x="188.00" y="63.00" width="2.00" height="37.00" />
<rect x="196.00" y="63.00" width="2.00" height="37.00" />
<rect x="200.00" y="63.00" width="2.00" height="37.00" />
<rect x="204.00" y="63.00" width="4.00" height="37.00" />
<rect x="210.00" y="63.00" width="6.00" height="37.00" />
<rect x="218.00" y="63.00" width="2.00" height="37.00" />
<rect x="224.00" y="63.00" width="2.00" height="37.00" />
<rect x="228.00" y="63.00" width="6.00" height="37.00" />
<rect x="140.00" y="60.90" width="2.00" height="39.10" />
<rect x="144.00" y="60.90" width="4.00" height="39.10" />
<rect x="150.00" y="60.90" width="4.00" height="39.10" />
<rect x="160.00" y="60.90" width="2.00" height="39.10" />
<rect x="164.00" y="60.90" width="2.00" height="39.10" />
<rect x="168.00" y="60.90" width="2.00" height="39.10" />
<rect x="172.00" y="60.90" width="8.00" height="39.10" />
<rect x="182.00" y="60.90" width="2.00" height="39.10" />
<rect x="188.00" y="60.90" width="2.00" height="39.10" />
<rect x="196.00" y="60.90" width="2.00" height="39.10" />
<rect x="200.00" y="60.90" width="2.00" height="39.10" />
<rect x="204.00" y="60.90" width="4.00" height="39.10" />
<rect x="210.00" y="60.90" width="6.00" height="39.10" />
<rect x="218.00" y="60.90" width="2.00" height="39.10" />
<rect x="224.00" y="60.90" width="2.00" height="39.10" />
<rect x="228.00" y="60.90" width="6.00" height="39.10" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View file

@ -158,7 +158,8 @@ static void test_print(const testCtx *const p_ctx) {
/* Note this will fail (on Ubuntu anyway) if LibreOffice Base/Calc/Impress/Writer running (i.e. anything but LibreOffice Draw)
Doesn't seem to be a way to force Draw invocation through the command line */
ret = testUtilVerifyLibreOffice(expected_file, debug);
assert_zero(ret, "i:%d %s libreoffice %s ret %d != 0\n", i, testUtilBarcodeName(data[i].symbology), expected_file, ret);
assert_zero(ret, "i:%d %s libreoffice %s ret %d != 0 - check that LibreOffice is not running!\n",
i, testUtilBarcodeName(data[i].symbology), expected_file, ret);
}
} else {
assert_nonzero(testUtilExists(symbol->outfile), "i:%d testUtilExists(%s) == 0\n", i, symbol->outfile);

View file

@ -52,6 +52,7 @@ static void test_checks(const testCtx *const p_ctx) {
int border_width;
float scale;
float dot_size;
float text_gap;
float guard_descent;
int warn_level;
int ret;
@ -61,155 +62,157 @@ static void test_checks(const testCtx *const p_ctx) {
};
/* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
struct item data[] = {
/* 0*/ { BARCODE_CODE128, -1, "1234", -1, -1, 3, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", -1 },
/* 1*/ { BARCODE_CODE128, -1, "1234", -1, -1, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", -1 },
/* 2*/ { BARCODE_QRCODE, -1, "1234", -1, -1, 3, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", -1 },
/* 3*/ { BARCODE_QRCODE, -1, "1234", -1, -1, 999999 + 1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 218: Invalid ECI code 1000000", -1 },
/* 4*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 0, 0.009, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 227: Scale out of range (0.01 to 200)", -1 },
/* 5*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 0, 200.01, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 227: Scale out of range (0.01 to 200)", -1 },
/* 6*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 0, -1, 20.1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 221: Dot size out of range (0.01 to 20)", -1 },
/* 7*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 0, 0.01, 0.009, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 221: Dot size out of range (0.01 to 20)", -1 },
/* 8*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, -0.1, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 765: Height out of range (0 to 2000)", -1 },
/* 9*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 2000.01, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 765: Height out of range (0 to 2000)", -1 },
/* 10*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, -1, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 766: Whitespace width out of range (0 to 100)", -1 },
/* 11*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 101, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 766: Whitespace width out of range (0 to 100)", -1 },
/* 12*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 767: Whitespace height out of range (0 to 100)", -1 },
/* 13*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 101, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 767: Whitespace height out of range (0 to 100)", -1 },
/* 14*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, -1, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 768: Border width out of range (0 to 100)", -1 },
/* 15*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 101, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 768: Border width out of range (0 to 100)", -1 },
/* 16*/ { BARCODE_CODE128, -1, "1234", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 220: Selected symbology does not support GS1 mode", -1 },
/* 17*/ { BARCODE_EANX, -1, "123456789012", -1, -1, -1, 0, 0, 0, 101, -1, -1, -0.5, -1, ZINT_ERROR_INVALID_OPTION, "Error 769: Guard bar descent out of range (0 to 50)", -1 },
/* 18*/ { BARCODE_EANX, -1, "123456789012", -1, -1, -1, 0, 0, 0, 101, -1, -1, 50.1, -1, ZINT_ERROR_INVALID_OPTION, "Error 769: Guard bar descent out of range (0 to 50)", -1 },
/* 19*/ { BARCODE_GS1_128, -1, "[21]12\0004", 8, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 262: NUL characters not permitted in GS1 mode", -1 },
/* 20*/ { BARCODE_GS1_128, -1, "[21]12é4", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1", -1 },
/* 21*/ { BARCODE_GS1_128, -1, "[21]12\0074", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 251: Control characters are not supported by GS1", -1 },
/* 22*/ { BARCODE_GS1_128, -1, "[21]1234", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", -1 },
/* 23*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 206: Symbology out of range", BARCODE_CODE128 },
/* 24*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 },
/* 25*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", BARCODE_CODE128 }, /* Not supporting beats invalid ECI */
/* 26*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 },
/* 27*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, 0.009, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 221: Dot size out of range (0.01 to 20)", BARCODE_CODE128 },
/* 28*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, 0.009, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 },
/* 29*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, 0.009, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", BARCODE_CODE128 }, /* Invalid dot size no longer beats invalid ECI */
/* 30*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, 0.009, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 },
/* 31*/ { 5, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_C25STANDARD },
/* 32*/ { 5, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_C25STANDARD },
/* 33*/ { 10, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_EANX },
/* 34*/ { 10, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_EANX },
/* 35*/ { 11, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_EANX },
/* 36*/ { 11, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_EANX },
/* 37*/ { 12, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_EANX },
/* 38*/ { 12, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_EANX },
/* 39*/ { 15, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_EANX },
/* 40*/ { 15, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_EANX },
/* 41*/ { 17, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_UPCA },
/* 42*/ { 17, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_UPCA },
/* 43*/ { 19, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_TOO_LONG, "Error 362: Input too short (3 character minimum)", BARCODE_CODABAR },
/* 44*/ { 19, -1, "A1B", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 207: Codabar 18 not supported", BARCODE_CODABAR },
/* 45*/ { 19, -1, "A1B", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 207: Codabar 18 not supported", -1 },
/* 46*/ { 26, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_UPCA },
/* 47*/ { 26, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_UPCA },
/* 48*/ { 27, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 208: UPCD1 not supported", 27 },
/* 49*/ { 33, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI", BARCODE_GS1_128 },
/* 50*/ { 33, -1, "[10]23", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_GS1_128 },
/* 51*/ { 33, -1, "[10]23", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_GS1_128 },
/* 52*/ { 36, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_UPCA },
/* 53*/ { 36, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_UPCA },
/* 54*/ { 39, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_UPCE },
/* 55*/ { 39, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_UPCE },
/* 56*/ { 41, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_NONCOMPLIANT, "Warning 479: Input length is not standard (5, 9 or 11 characters)", BARCODE_POSTNET },
/* 57*/ { 41, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_POSTNET },
/* 58*/ { 41, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 59*/ { 42, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_POSTNET },
/* 60*/ { 42, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 61*/ { 43, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_POSTNET },
/* 62*/ { 43, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 63*/ { 44, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_POSTNET },
/* 64*/ { 44, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 65*/ { 45, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_POSTNET },
/* 66*/ { 45, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 67*/ { 46, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_PLESSEY },
/* 68*/ { 46, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_PLESSEY },
/* 69*/ { 48, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_NVE18 },
/* 70*/ { 48, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_NVE18 },
/* 71*/ { 59, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_CODE128 },
/* 72*/ { 59, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_CODE128 },
/* 73*/ { 61, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_CODE128 },
/* 74*/ { 61, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_CODE128 },
/* 75*/ { 62, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_CODE93 },
/* 76*/ { 62, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_CODE93 },
/* 77*/ { 64, -1, "12345678", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_AUSPOST },
/* 78*/ { 64, -1, "12345678", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_AUSPOST },
/* 79*/ { 65, -1, "12345678", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_AUSPOST },
/* 80*/ { 65, -1, "12345678", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_AUSPOST },
/* 81*/ { 78, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_DBAR_OMN },
/* 82*/ { 78, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_DBAR_OMN },
/* 83*/ { 83, -1, "12345678901", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_PLANET },
/* 84*/ { 83, -1, "12345678901", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_PLANET },
/* 85*/ { 88, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI", BARCODE_GS1_128 },
/* 86*/ { 88, -1, "[10]12", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_GS1_128 },
/* 87*/ { 88, -1, "[10]12", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_GS1_128 },
/* 88*/ { 91, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 212: Symbology out of range", BARCODE_CODE128 },
/* 89*/ { 91, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 212: Symbology out of range", -1 },
/* 90*/ { 94, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 213: Symbology out of range", BARCODE_CODE128 },
/* 91*/ { 94, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 213: Symbology out of range", -1 },
/* 92*/ { 95, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 213: Symbology out of range", BARCODE_CODE128 },
/* 93*/ { 95, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 213: Symbology out of range", -1 },
/* 94*/ { 100, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_HIBC_128 },
/* 95*/ { 100, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_128 },
/* 96*/ { 101, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_HIBC_39 },
/* 97*/ { 101, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_39 },
/* 98*/ { 103, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_HIBC_DM },
/* 99*/ { 103, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_DM },
/*100*/ { 105, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_HIBC_QR },
/*101*/ { 105, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_QR },
/*102*/ { 107, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_HIBC_PDF },
/*103*/ { 107, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_PDF },
/*104*/ { 109, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_HIBC_MICPDF },
/*105*/ { 109, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_MICPDF },
/*106*/ { 111, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", BARCODE_HIBC_BLOCKF },
/*107*/ { 111, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_BLOCKF },
/*108*/ { 113, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 214: Symbology out of range", BARCODE_CODE128 },
/*109*/ { 113, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 214: Symbology out of range", -1 },
/*110*/ { 114, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 214: Symbology out of range", BARCODE_CODE128 },
/*111*/ { 114, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 214: Symbology out of range", -1 },
/*112*/ { 117, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*113*/ { 117, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*114*/ { 118, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*115*/ { 118, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*116*/ { 122, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*117*/ { 122, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*118*/ { 123, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*119*/ { 123, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*120*/ { 124, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*121*/ { 124, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*122*/ { 125, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*123*/ { 125, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*124*/ { 126, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*125*/ { 126, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*126*/ { 127, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*127*/ { 127, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*128*/ { 147, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 216: Symbology out of range", BARCODE_CODE128 },
/*129*/ { 147, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 216: Symbology out of range", -1 },
/*130*/ { BARCODE_LAST + 1, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 216: Symbology out of range", BARCODE_CODE128 },
/*131*/ { BARCODE_LAST + 1, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 216: Symbology out of range", -1 },
/*132*/ { BARCODE_CODE128, -1, "\200", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 245: Invalid UTF-8 in input data", -1 },
/*133*/ { BARCODE_GS1_128, -1, "[01]12345678901234", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (01) position 14: Bad checksum '4', expected '1'", -1 },
/*134*/ { BARCODE_GS1_128, -1, "[01]12345678901234", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_NONCOMPLIANT, "Error 261: AI (01) position 14: Bad checksum '4', expected '1'", -1 },
/*135*/ { BARCODE_QRCODE, -1, "", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", -1 },
/*136*/ { BARCODE_QRCODE, -1, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_USES_ECI, "Warning 222: Encoded data includes ECI 13", -1 },
/*137*/ { BARCODE_QRCODE, -1, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_USES_ECI, "Error 222: Encoded data includes ECI 13", -1 },
/*138*/ { BARCODE_CODEONE, -1, "[01]12345678901231", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 512: ECI ignored for GS1 mode", -1 },
/*139*/ { BARCODE_CODEONE, -1, "[01]12345678901231", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 512: ECI ignored for GS1 mode", -1 },
/*140*/ { BARCODE_CODEONE, -1, "[01]12345678901234", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 512: ECI ignored for GS1 mode", -1 }, /* Warning in encoder overrides library warnings */
/*141*/ { BARCODE_CODEONE, -1, "[01]12345678901234", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_NONCOMPLIANT, "Error 261: AI (01) position 14: Bad checksum '4', expected '1'", -1 }, /* But not errors */
/*142*/ { BARCODE_AZTEC, -1, "", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, -1, -1, 0, "", -1 },
/*143*/ { BARCODE_AZTEC, -1, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_USES_ECI, "Warning 222: Encoded data includes ECI 13", -1 },
/*144*/ { BARCODE_AZTEC, -1, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_USES_ECI, "Error 222: Encoded data includes ECI 13", -1 },
/*145*/ { BARCODE_AZTEC, 6, "", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 503: Invalid error correction level - using default instead", -1 },
/*146*/ { BARCODE_AZTEC, 6, "", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 503: Invalid error correction level - using default instead", -1 },
/*147*/ { BARCODE_AZTEC, 6, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, -1, ZINT_WARN_USES_ECI, "Warning 222: Encoded data includes ECI 13", -1 }, /* ECI warning trumps all other warnings */
/*148*/ { BARCODE_AZTEC, 6, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 503: Invalid error correction level - using default instead", -1 }, /* But not errors */
/* 0*/ { BARCODE_CODE128, -1, "1234", -1, -1, 3, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", -1 },
/* 1*/ { BARCODE_CODE128, -1, "1234", -1, -1, 0, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", -1 },
/* 2*/ { BARCODE_QRCODE, -1, "1234", -1, -1, 3, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", -1 },
/* 3*/ { BARCODE_QRCODE, -1, "1234", -1, -1, 999999 + 1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 218: Invalid ECI code 1000000", -1 },
/* 4*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 0, 0.009, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 227: Scale out of range (0.01 to 200)", -1 },
/* 5*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 0, 200.01, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 227: Scale out of range (0.01 to 200)", -1 },
/* 6*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 0, -1, 20.1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 221: Dot size out of range (0.01 to 20)", -1 },
/* 7*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 0, 0.01, 0.009, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 221: Dot size out of range (0.01 to 20)", -1 },
/* 8*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, -0.1, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 765: Height out of range (0 to 2000)", -1 },
/* 9*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 2000.01, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 765: Height out of range (0 to 2000)", -1 },
/* 10*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, -1, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 766: Whitespace width out of range (0 to 100)", -1 },
/* 11*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 101, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 766: Whitespace width out of range (0 to 100)", -1 },
/* 12*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 767: Whitespace height out of range (0 to 100)", -1 },
/* 13*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 101, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 767: Whitespace height out of range (0 to 100)", -1 },
/* 14*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, -1, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 768: Border width out of range (0 to 100)", -1 },
/* 15*/ { BARCODE_CODE128, -1, "1234", -1, -1, -1, 0, 0, 0, 101, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 768: Border width out of range (0 to 100)", -1 },
/* 16*/ { BARCODE_CODE128, -1, "1234", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 220: Selected symbology does not support GS1 mode", -1 },
/* 17*/ { BARCODE_EANX, -1, "123456789012", -1, -1, -1, 0, 0, 0, 101, -1, -1, -0.1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 219: Text gap out of range (0 to 5)", -1 },
/* 18*/ { BARCODE_EANX, -1, "123456789012", -1, -1, -1, 0, 0, 0, 101, -1, -1, 5.1, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 219: Text gap out of range (0 to 5)", -1 },
/* 19*/ { BARCODE_EANX, -1, "123456789012", -1, -1, -1, 0, 0, 0, 101, -1, -1, 0, -0.5, -1, ZINT_ERROR_INVALID_OPTION, "Error 769: Guard bar descent out of range (0 to 50)", -1 },
/* 20*/ { BARCODE_EANX, -1, "123456789012", -1, -1, -1, 0, 0, 0, 101, -1, -1, 0, 50.1, -1, ZINT_ERROR_INVALID_OPTION, "Error 769: Guard bar descent out of range (0 to 50)", -1 },
/* 21*/ { BARCODE_GS1_128, -1, "[21]12\0004", 8, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 262: NUL characters not permitted in GS1 mode", -1 },
/* 22*/ { BARCODE_GS1_128, -1, "[21]12é4", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 250: Extended ASCII characters are not supported by GS1", -1 },
/* 23*/ { BARCODE_GS1_128, -1, "[21]12\0074", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 251: Control characters are not supported by GS1", -1 },
/* 24*/ { BARCODE_GS1_128, -1, "[21]1234", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", -1 },
/* 25*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 206: Symbology out of range", BARCODE_CODE128 },
/* 26*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 },
/* 27*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", BARCODE_CODE128 }, /* Not supporting beats invalid ECI */
/* 28*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 },
/* 29*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, 0.009, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 221: Dot size out of range (0.01 to 20)", BARCODE_CODE128 },
/* 30*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, 0.009, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 },
/* 31*/ { 0, -1, "1", -1, -1, 1, 0, 0, 0, 0, -1, 0.009, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 217: Symbology does not support ECI switching", BARCODE_CODE128 }, /* Invalid dot size no longer beats invalid ECI */
/* 32*/ { 0, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, 0.009, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 206: Symbology out of range", -1 },
/* 33*/ { 5, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_C25STANDARD },
/* 34*/ { 5, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_C25STANDARD },
/* 35*/ { 10, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_EANX },
/* 36*/ { 10, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_EANX },
/* 37*/ { 11, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_EANX },
/* 38*/ { 11, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_EANX },
/* 39*/ { 12, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_EANX },
/* 40*/ { 12, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_EANX },
/* 41*/ { 15, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_EANX },
/* 42*/ { 15, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_EANX },
/* 43*/ { 17, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_UPCA },
/* 44*/ { 17, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_UPCA },
/* 45*/ { 19, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_TOO_LONG, "Error 362: Input too short (3 character minimum)", BARCODE_CODABAR },
/* 46*/ { 19, -1, "A1B", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 207: Codabar 18 not supported", BARCODE_CODABAR },
/* 47*/ { 19, -1, "A1B", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 207: Codabar 18 not supported", -1 },
/* 48*/ { 26, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_UPCA },
/* 49*/ { 26, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_UPCA },
/* 50*/ { 27, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_OPTION, "Error 208: UPCD1 not supported", 27 },
/* 51*/ { 33, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI", BARCODE_GS1_128 },
/* 52*/ { 33, -1, "[10]23", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_GS1_128 },
/* 53*/ { 33, -1, "[10]23", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_GS1_128 },
/* 54*/ { 36, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_UPCA },
/* 55*/ { 36, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_UPCA },
/* 56*/ { 39, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_UPCE },
/* 57*/ { 39, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_UPCE },
/* 58*/ { 41, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_NONCOMPLIANT, "Warning 479: Input length is not standard (5, 9 or 11 characters)", BARCODE_POSTNET },
/* 59*/ { 41, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_POSTNET },
/* 60*/ { 41, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 61*/ { 42, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_POSTNET },
/* 62*/ { 42, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 63*/ { 43, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_POSTNET },
/* 64*/ { 43, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 65*/ { 44, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_POSTNET },
/* 66*/ { 44, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 67*/ { 45, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_POSTNET },
/* 68*/ { 45, -1, "12345", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_POSTNET },
/* 69*/ { 46, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_PLESSEY },
/* 70*/ { 46, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_PLESSEY },
/* 71*/ { 48, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_NVE18 },
/* 72*/ { 48, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_NVE18 },
/* 73*/ { 59, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_CODE128 },
/* 74*/ { 59, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_CODE128 },
/* 75*/ { 61, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_CODE128 },
/* 76*/ { 61, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_CODE128 },
/* 77*/ { 62, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_CODE93 },
/* 78*/ { 62, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_CODE93 },
/* 79*/ { 64, -1, "12345678", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_AUSPOST },
/* 80*/ { 64, -1, "12345678", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_AUSPOST },
/* 81*/ { 65, -1, "12345678", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_AUSPOST },
/* 82*/ { 65, -1, "12345678", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_AUSPOST },
/* 83*/ { 78, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_DBAR_OMN },
/* 84*/ { 78, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_DBAR_OMN },
/* 85*/ { 83, -1, "12345678901", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_PLANET },
/* 86*/ { 83, -1, "12345678901", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_PLANET },
/* 87*/ { 88, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 252: Data does not start with an AI", BARCODE_GS1_128 },
/* 88*/ { 88, -1, "[10]12", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_GS1_128 },
/* 89*/ { 88, -1, "[10]12", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_GS1_128 },
/* 90*/ { 91, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 212: Symbology out of range", BARCODE_CODE128 },
/* 91*/ { 91, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 212: Symbology out of range", -1 },
/* 92*/ { 94, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 213: Symbology out of range", BARCODE_CODE128 },
/* 93*/ { 94, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 213: Symbology out of range", -1 },
/* 94*/ { 95, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 213: Symbology out of range", BARCODE_CODE128 },
/* 95*/ { 95, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 213: Symbology out of range", -1 },
/* 96*/ { 100, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_HIBC_128 },
/* 97*/ { 100, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_128 },
/* 98*/ { 101, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_HIBC_39 },
/* 99*/ { 101, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_39 },
/*100*/ { 103, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_HIBC_DM },
/*101*/ { 103, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_DM },
/*102*/ { 105, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_HIBC_QR },
/*103*/ { 105, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_QR },
/*104*/ { 107, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_HIBC_PDF },
/*105*/ { 107, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_PDF },
/*106*/ { 109, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_HIBC_MICPDF },
/*107*/ { 109, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_MICPDF },
/*108*/ { 111, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", BARCODE_HIBC_BLOCKF },
/*109*/ { 111, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, 0, "", BARCODE_HIBC_BLOCKF },
/*110*/ { 113, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 214: Symbology out of range", BARCODE_CODE128 },
/*111*/ { 113, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 214: Symbology out of range", -1 },
/*112*/ { 114, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 214: Symbology out of range", BARCODE_CODE128 },
/*113*/ { 114, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 214: Symbology out of range", -1 },
/*114*/ { 117, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*115*/ { 117, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*116*/ { 118, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*117*/ { 118, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*118*/ { 122, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*119*/ { 122, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*120*/ { 123, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*121*/ { 123, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*122*/ { 124, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*123*/ { 124, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*124*/ { 125, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*125*/ { 125, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*126*/ { 126, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*127*/ { 126, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*128*/ { 127, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 215: Symbology out of range", BARCODE_CODE128 },
/*129*/ { 127, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 215: Symbology out of range", -1 },
/*130*/ { 147, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 216: Symbology out of range", BARCODE_CODE128 },
/*131*/ { 147, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 216: Symbology out of range", -1 },
/*132*/ { BARCODE_LAST + 1, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 216: Symbology out of range", BARCODE_CODE128 },
/*133*/ { BARCODE_LAST + 1, -1, "1", -1, -1, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 216: Symbology out of range", -1 },
/*134*/ { BARCODE_CODE128, -1, "\200", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_ERROR_INVALID_DATA, "Error 245: Invalid UTF-8 in input data", -1 },
/*135*/ { BARCODE_GS1_128, -1, "[01]12345678901234", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_NONCOMPLIANT, "Warning 261: AI (01) position 14: Bad checksum '4', expected '1'", -1 },
/*136*/ { BARCODE_GS1_128, -1, "[01]12345678901234", -1, GS1_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_NONCOMPLIANT, "Error 261: AI (01) position 14: Bad checksum '4', expected '1'", -1 },
/*137*/ { BARCODE_QRCODE, -1, "", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", -1 },
/*138*/ { BARCODE_QRCODE, -1, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_USES_ECI, "Warning 222: Encoded data includes ECI 13", -1 },
/*139*/ { BARCODE_QRCODE, -1, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_USES_ECI, "Error 222: Encoded data includes ECI 13", -1 },
/*140*/ { BARCODE_CODEONE, -1, "[01]12345678901231", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 512: ECI ignored for GS1 mode", -1 },
/*141*/ { BARCODE_CODEONE, -1, "[01]12345678901231", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 512: ECI ignored for GS1 mode", -1 },
/*142*/ { BARCODE_CODEONE, -1, "[01]12345678901234", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 512: ECI ignored for GS1 mode", -1 }, /* Warning in encoder overrides library warnings */
/*143*/ { BARCODE_CODEONE, -1, "[01]12345678901234", -1, GS1_MODE, 3, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_NONCOMPLIANT, "Error 261: AI (01) position 14: Bad checksum '4', expected '1'", -1 }, /* But not errors */
/*144*/ { BARCODE_AZTEC, -1, "", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, 0, -1, -1, 0, "", -1 },
/*145*/ { BARCODE_AZTEC, -1, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_USES_ECI, "Warning 222: Encoded data includes ECI 13", -1 },
/*146*/ { BARCODE_AZTEC, -1, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_USES_ECI, "Error 222: Encoded data includes ECI 13", -1 },
/*147*/ { BARCODE_AZTEC, 6, "", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_INVALID_OPTION, "Warning 503: Invalid error correction level - using default instead", -1 },
/*148*/ { BARCODE_AZTEC, 6, "", -1, UNICODE_MODE, 13, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 503: Invalid error correction level - using default instead", -1 },
/*149*/ { BARCODE_AZTEC, 6, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, ZINT_WARN_USES_ECI, "Warning 222: Encoded data includes ECI 13", -1 }, /* ECI warning trumps all other warnings */
/*150*/ { BARCODE_AZTEC, 6, "", -1, UNICODE_MODE, -1, 0, 0, 0, 0, -1, -1, 0, -1, WARN_FAIL_ALL, ZINT_ERROR_INVALID_OPTION, "Error 503: Invalid error correction level - using default instead", -1 }, /* But not errors */
};
int data_size = ARRAY_SIZE(data);
int i, length, ret;
@ -243,6 +246,9 @@ static void test_checks(const testCtx *const p_ctx) {
if (data[i].dot_size != -1) {
symbol->dot_size = data[i].dot_size;
}
if (data[i].text_gap) {
symbol->text_gap = data[i].text_gap;
}
if (data[i].guard_descent != -1) {
symbol->guard_descent = data[i].guard_descent;
}

View file

@ -48,23 +48,23 @@ static void test_check_colour_options(const testCtx *const p_ctx) {
/* 0*/ { "FFFFFF", "000000", 0, "" },
/* 1*/ { "ffffff", "ffffff", 0, "" },
/* 2*/ { "77777777", "33333333", 0, "" },
/* 3*/ { "FFFFF", "000000", ZINT_ERROR_INVALID_OPTION, "690: Malformed foreground RGB colour (6 or 8 characters only)" },
/* 4*/ { "FFFFFFF", "000000", ZINT_ERROR_INVALID_OPTION, "690: Malformed foreground RGB colour (6 or 8 characters only)" },
/* 5*/ { "FFFFFG", "000000", ZINT_ERROR_INVALID_OPTION, "691: Malformed foreground RGB colour 'FFFFFG' (hexadecimal only)" },
/* 6*/ { "FFFFFF", "000000000", ZINT_ERROR_INVALID_OPTION, "690: Malformed background RGB colour (6 or 8 characters only)" },
/* 7*/ { "FFFFFF", "0000000Z", ZINT_ERROR_INVALID_OPTION, "691: Malformed background RGB colour '0000000Z' (hexadecimal only)" },
/* 3*/ { "FFFFF", "000000", ZINT_ERROR_INVALID_OPTION, "880: Malformed foreground RGB colour (6 or 8 characters only)" },
/* 4*/ { "FFFFFFF", "000000", ZINT_ERROR_INVALID_OPTION, "880: Malformed foreground RGB colour (6 or 8 characters only)" },
/* 5*/ { "FFFFFG", "000000", ZINT_ERROR_INVALID_OPTION, "881: Malformed foreground RGB colour 'FFFFFG' (hexadecimal only)" },
/* 6*/ { "FFFFFF", "000000000", ZINT_ERROR_INVALID_OPTION, "880: Malformed background RGB colour (6 or 8 characters only)" },
/* 7*/ { "FFFFFF", "0000000Z", ZINT_ERROR_INVALID_OPTION, "881: Malformed background RGB colour '0000000Z' (hexadecimal only)" },
/* 8*/ { "100,100,100,100", "0,1,2,3", 0, "" },
/* 9*/ { "100,,100,100", ",1,2,", 0, "" },
/* 10*/ { "100,100,100", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "692: Malformed foreground CMYK colour (4 decimal numbers, comma-separated)" },
/* 11*/ { "100,100,99,1001", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "693: Malformed foreground CMYK colour (3 digit maximum per number)" },
/* 12*/ { "101,100,100,100", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "694: Malformed foreground CMYK colour C (decimal 0-100 only)" },
/* 13*/ { "100,101,100,100", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "695: Malformed foreground CMYK colour M (decimal 0-100 only)" },
/* 14*/ { "100,100,101,100", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "696: Malformed foreground CMYK colour Y (decimal 0-100 only)" },
/* 15*/ { "100,100,100,101", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "697: Malformed foreground CMYK colour K (decimal 0-100 only)" },
/* 16*/ { "100,100,100,100", "0,1,", ZINT_ERROR_INVALID_OPTION, "692: Malformed background CMYK colour (4 decimal numbers, comma-separated)" },
/* 17*/ { "100,100,100,100", "0,0123,3,4", ZINT_ERROR_INVALID_OPTION, "693: Malformed background CMYK colour (3 digit maximum per number)" },
/* 18*/ { "100,100,100,100", "0,1,2,101", ZINT_ERROR_INVALID_OPTION, "697: Malformed background CMYK colour K (decimal 0-100 only)" },
/* 19*/ { "100,100,100,100", "0,1,2,3,", ZINT_ERROR_INVALID_OPTION, "692: Malformed background CMYK colour (4 decimal numbers, comma-separated)" },
/* 10*/ { "100,100,100", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "882: Malformed foreground CMYK colour (4 decimal numbers, comma-separated)" },
/* 11*/ { "100,100,99,1001", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "883: Malformed foreground CMYK colour (3 digit maximum per number)" },
/* 12*/ { "101,100,100,100", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "884: Malformed foreground CMYK colour C (decimal 0-100 only)" },
/* 13*/ { "100,101,100,100", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "885: Malformed foreground CMYK colour M (decimal 0-100 only)" },
/* 14*/ { "100,100,101,100", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "886: Malformed foreground CMYK colour Y (decimal 0-100 only)" },
/* 15*/ { "100,100,100,101", "0,1,2,3", ZINT_ERROR_INVALID_OPTION, "887: Malformed foreground CMYK colour K (decimal 0-100 only)" },
/* 16*/ { "100,100,100,100", "0,1,", ZINT_ERROR_INVALID_OPTION, "882: Malformed background CMYK colour (4 decimal numbers, comma-separated)" },
/* 17*/ { "100,100,100,100", "0,0123,3,4", ZINT_ERROR_INVALID_OPTION, "883: Malformed background CMYK colour (3 digit maximum per number)" },
/* 18*/ { "100,100,100,100", "0,1,2,101", ZINT_ERROR_INVALID_OPTION, "887: Malformed background CMYK colour K (decimal 0-100 only)" },
/* 19*/ { "100,100,100,100", "0,1,2,3,", ZINT_ERROR_INVALID_OPTION, "882: Malformed background CMYK colour (4 decimal numbers, comma-separated)" },
};
int data_size = ARRAY_SIZE(data);
int i, ret;

View file

@ -136,6 +136,7 @@ static void test_print(const testCtx *const p_ctx) {
struct zint_structapp structapp;
char *fgcolour;
char *bgcolour;
float text_gap;
char *data;
char *composite;
int ret;
@ -143,66 +144,66 @@ static void test_print(const testCtx *const p_ctx) {
char *comment;
};
struct item data[] = {
/* 0*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "Égjpqy", "", 0, "code128_egrave_bold.png", "" },
/* 1*/ { BARCODE_CODE128, UNICODE_MODE, 3, BOLD_TEXT | BARCODE_BOX, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "Égjpqy", "", 0, "code128_egrave_bold_box3.png", "" },
/* 2*/ { BARCODE_CODE128, UNICODE_MODE, 2, BOLD_TEXT | BARCODE_BOX, 2, 2, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "Égjpqy", "", 0, "code128_egrave_bold_hvwsp2_box2.png", "" },
/* 3*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, -1, -1, 3, -1, 0, 0, { 0, 0, "" }, "", "", "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", 0, "gs1_128_cc_fig12.png", "" },
/* 4*/ { BARCODE_CODABLOCKF, -1, 3, -1, -1, -1, -1, 3, -1, 0, 0, { 0, 0, "" }, "", "", "AAAAAAAAA", "", 0, "codablockf_3rows.png", "" },
/* 5*/ { BARCODE_CODABLOCKF, -1, -1, -1, 2, 2, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "AAAAAAAAA", "", 0, "codablockf_hvwsp2.png", "" },
/* 6*/ { BARCODE_CODABLOCKF, -1, 2, BARCODE_BOX, 2, 2, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "AAAAAAAAA", "", 0, "codablockf_hvwsp2_box2.png", "" },
/* 7*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "9771384524017+12", "", 0, "ean13_2addon_ggs_5.2.2.5.1-2.png", "" },
/* 8*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "9780877799306+54321", "", 0, "ean13_5addon_ggs_5.2.2.5.2-2.png", "" },
/* 9*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 1, -1, 0, 0, { 0, 0, "" }, "", "", "123456789012+12", "[91]123456789012345678901", 0, "ean13_cc_2addon_cca_4x4.png", "" },
/* 10*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 2, -1, 0, 0, { 0, 0, "" }, "", "", "123456789012+54321", "[91]1234567890", 0, "ean13_cc_5addon_ccb_3x4.png", "" },
/* 11*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, 0, 2, -1, 0, 0, { 0, 0, "" }, "", "", "123456789012+54321", "[91]1234567890", 0, "ean13_cc_5addon_ccb_3x4_notext.png", "" },
/* 12*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "012345678905+24", "", 0, "upca_2addon_ggs_5.2.6.6-5.png", "" },
/* 13*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "614141234417+12345", "", 0, "upca_5addon.png", "" },
/* 14*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, 0, -1, -1, 0, 0, { 0, 0, "" }, "", "", "614141234417+12345", "", 0, "upca_5addon_notext.png", "" },
/* 15*/ { BARCODE_UPCA, -1, 3, BARCODE_BIND, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "614141234417+12345", "", 0, "upca_5addon_bind3.png", "" },
/* 16*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 1, -1, 0, 0, { 0, 0, "" }, "", "", "12345678901+12", "[91]123456789", 0, "upca_cc_2addon_cca_3x4.png", "" },
/* 17*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 2, -1, 0, 0, { 0, 0, "" }, "", "", "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4.png", "" },
/* 18*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, 0, 2, -1, 0, 0, { 0, 0, "" }, "", "", "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4_notext.png", "" },
/* 19*/ { BARCODE_UPCA_CC, -1, 3, BARCODE_BIND, -1, -1, -1, 2, -1, 0, 0, { 0, 0, "" }, "", "", "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4_bind3.png", "" },
/* 20*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "1234567+12", "", 0, "upce_2addon.png", "" },
/* 21*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "1234567+12345", "", 0, "upce_5addon.png", "" },
/* 22*/ { BARCODE_UPCE, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "1234567+12345", "", 0, "upce_5addon_small.png", "" },
/* 23*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, 0, 0, { 0, 0, "" }, "", "", "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2.png", "" },
/* 24*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 2, -1, 0, 0, { 0, 0, "" }, "", "", "1876543+56789", "[91]12345", 0, "upce_cc_5addon_ccb_8x2.png", "" },
/* 25*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, 0, 2, -1, 0, 0, { 0, 0, "" }, "", "", "1876543+56789", "[91]12345", 0, "upce_cc_5addon_ccb_8x2_notext.png", "" },
/* 26*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "1234567+12", "", 0, "ean8_2addon.png", "" },
/* 27*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "1234567+12345", "", 0, "ean8_5addon.png", "" },
/* 28*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "9876543+65", "[91]1234567", 0, "ean8_cc_2addon_cca_4x3.png", "" },
/* 29*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "9876543+74083", "[91]123456789012345678", 0, "ean8_cc_5addon_ccb_8x3.png", "" },
/* 30*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "12345", "", 0, "ean5.png", "" },
/* 31*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "12", "", 0, "ean2.png", "" },
/* 32*/ { BARCODE_CODE39, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "123", "", 0, "code39_small.png", "" },
/* 33*/ { BARCODE_POSTNET, -1, -1, -1, -1, -1, -1, -1, -1, 0, 3.5, { 0, 0, "" }, "", "", "12345", "", 0, "postnet_zip.png", "300 dpi, using 1/43in X, 300 / 43 / 2 = ~3.5 scale" },
/* 34*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "CFCECDCC", "12345", "", 0, "pdf417_bgalpha.png", "" },
/* 35*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "30313233", "", "12345", "", 0, "pdf417_fgalpha.png", "" },
/* 36*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "20212244", "CFCECDCC", "12345", "", 0, "pdf417_bgfgalpha.png", "" },
/* 37*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "0000007F", "FF000033", "12345", "", 0, "ultra_bgfgalpha.png", "" },
/* 38*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "FF000033", "12345", "", 0, "ultra_bgalpha.png", "" },
/* 39*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "0000007F", "FF0000", "12345", "", 0, "ultra_fgalpha.png", "" },
/* 40*/ { BARCODE_ULTRA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "0000007F", "", "12345", "", 0, "ultra_fgalpha_nobg.png", "" },
/* 41*/ { BARCODE_ULTRA, -1, 1, BARCODE_BOX, 1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "12345", "", 0, "ultra_hvwsp1_box1.png", "" },
/* 42*/ { BARCODE_ULTRA, -1, 1, BARCODE_BOX, 1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "00FF007F", "BABDB6", "12345", "", 0, "ultra_fgalpha_hvwsp1_box1.png", "" },
/* 43*/ { BARCODE_ULTRA, -1, 1, BARCODE_BIND_TOP, 1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "00FF007F", "BABDB6", "12345", "", 0, "ultra_fgalpha_hvwsp1_bindtop1.png", "" },
/* 44*/ { BARCODE_ULTRA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0.5, { 0, 0, "" }, "", "", "1", "", 0, "ultra_odd.png", "" },
/* 45*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0.5, { 0, 0, "" }, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_0.5.png", "6 dpmm, 150 dpi" },
/* 46*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BOX, 3, -1, -1, -1, -1, 0, 0.7, { 0, 0, "" }, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_0.7_wsp3_box1.png", "8 dpmm, 200 dpi" },
/* 47*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1.4, { 0, 0, "" }, "1111117F", "EEEEEEEE", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_1.4_bgfgalpha.png", "16 dpmm, 400 dpi" },
/* 48*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 2.1, { 0, 0, "" }, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_2.1.png", "24 dpmm, 600 dpi" },
/* 49*/ { BARCODE_MAXICODE, -1, 2, BARCODE_BOX, 1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_hvwsp1_box2.png", "" },
/* 50*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BIND, -1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_vwsp1_bind1.png", "" },
/* 51*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, -1, -1, -1, -1, -1, 0, 2.0f, { 0, 0, "" }, "", "", "1234", "", 0, "datamatrix_2.0_bind1_dotty.png", "" },
/* 52*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, 1, 1, -1, -1, -1, 0, 2.0f, { 0, 0, "" }, "", "", "1234", "", 0, "datamatrix_2.0_hvwsp1_bind1_dotty.png", "" },
/* 53*/ { BARCODE_DBAR_LTD, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "12345678909", "", 0, "dbar_ltd.png", "" },
/* 54*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 5.0, 0, { 0, 0, "" }, "", "", "Your Data Here!", "", ZINT_WARN_NONCOMPLIANT, "pdf417_height5.png", "" },
/* 55*/ { BARCODE_USPS_IMAIL, -1, -1, -1, -1, -1, -1, -1, -1, 7.75, 0, { 0, 0, "" }, "", "", "12345678901234567890", "", 0, "imail_height7.75.png", "" },
/* 56*/ { BARCODE_AZTEC, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 4, 7, "Z1.txt" }, "", "", "3456", "", 0, "aztec_z1_seq4of7.png", "" },
/* 57*/ { BARCODE_PDF417, -1, -1, BARCODE_NO_QUIET_ZONES, -1, -1, -1, 5, 8, 16, 1.5, { 0, 0, "" }, "", "", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", "", ZINT_WARN_NONCOMPLIANT, "pdf417_#204.png", "Ticket #204 Blank line in PDF417" },
/* 58*/ { BARCODE_DPD, -1, -1, BARCODE_QUIET_ZONES | COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", "008182709980000020028101276", "", 0, "dpd_compliant.png", "Now with bind top 3X default" },
/* 59*/ { BARCODE_CHANNEL, -1, -1, CMYK_COLOUR | COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "100,85,0,20", "FFFFFF00", "123", "", 0, "channel_cmyk_nobg.png", "" },
/* 0*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold.png", "" },
/* 1*/ { BARCODE_CODE128, UNICODE_MODE, 3, BOLD_TEXT | BARCODE_BOX, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold_box3.png", "" },
/* 2*/ { BARCODE_CODE128, UNICODE_MODE, 2, BOLD_TEXT | BARCODE_BOX, 2, 2, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold_hvwsp2_box2.png", "" },
/* 3*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, -1, -1, 3, -1, 0, 0, { 0, 0, "" }, "", "", 0, "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", 0, "gs1_128_cc_fig12.png", "" },
/* 4*/ { BARCODE_CODABLOCKF, -1, 3, -1, -1, -1, -1, 3, -1, 0, 0, { 0, 0, "" }, "", "", 0, "AAAAAAAAA", "", 0, "codablockf_3rows.png", "" },
/* 5*/ { BARCODE_CODABLOCKF, -1, -1, -1, 2, 2, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "AAAAAAAAA", "", 0, "codablockf_hvwsp2.png", "" },
/* 6*/ { BARCODE_CODABLOCKF, -1, 2, BARCODE_BOX, 2, 2, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "AAAAAAAAA", "", 0, "codablockf_hvwsp2_box2.png", "" },
/* 7*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "9771384524017+12", "", 0, "ean13_2addon_ggs_5.2.2.5.1-2.png", "" },
/* 8*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "9780877799306+54321", "", 0, "ean13_5addon_ggs_5.2.2.5.2-2.png", "" },
/* 9*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "123456789012+12", "[91]123456789012345678901", 0, "ean13_cc_2addon_cca_4x4.png", "" },
/* 10*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 2, -1, 0, 0, { 0, 0, "" }, "", "", 0, "123456789012+54321", "[91]1234567890", 0, "ean13_cc_5addon_ccb_3x4.png", "" },
/* 11*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, 0, 2, -1, 0, 0, { 0, 0, "" }, "", "", 0, "123456789012+54321", "[91]1234567890", 0, "ean13_cc_5addon_ccb_3x4_notext.png", "" },
/* 12*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "012345678905+24", "", 0, "upca_2addon_ggs_5.2.6.6-5.png", "" },
/* 13*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "614141234417+12345", "", 0, "upca_5addon.png", "" },
/* 14*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, 0, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "614141234417+12345", "", 0, "upca_5addon_notext.png", "" },
/* 15*/ { BARCODE_UPCA, -1, 3, BARCODE_BIND, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "614141234417+12345", "", 0, "upca_5addon_bind3.png", "" },
/* 16*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "12345678901+12", "[91]123456789", 0, "upca_cc_2addon_cca_3x4.png", "" },
/* 17*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 2, -1, 0, 0, { 0, 0, "" }, "", "", 0, "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4.png", "" },
/* 18*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, 0, 2, -1, 0, 0, { 0, 0, "" }, "", "", 0, "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4_notext.png", "" },
/* 19*/ { BARCODE_UPCA_CC, -1, 3, BARCODE_BIND, -1, -1, -1, 2, -1, 0, 0, { 0, 0, "" }, "", "", 0, "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4_bind3.png", "" },
/* 20*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "1234567+12", "", 0, "upce_2addon.png", "" },
/* 21*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "1234567+12345", "", 0, "upce_5addon.png", "" },
/* 22*/ { BARCODE_UPCE, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "1234567+12345", "", 0, "upce_5addon_small.png", "" },
/* 23*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2.png", "" },
/* 24*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 2, -1, 0, 0, { 0, 0, "" }, "", "", 0, "1876543+56789", "[91]12345", 0, "upce_cc_5addon_ccb_8x2.png", "" },
/* 25*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, 0, 2, -1, 0, 0, { 0, 0, "" }, "", "", 0, "1876543+56789", "[91]12345", 0, "upce_cc_5addon_ccb_8x2_notext.png", "" },
/* 26*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "1234567+12", "", 0, "ean8_2addon.png", "" },
/* 27*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "1234567+12345", "", 0, "ean8_5addon.png", "" },
/* 28*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "9876543+65", "[91]1234567", 0, "ean8_cc_2addon_cca_4x3.png", "" },
/* 29*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "9876543+74083", "[91]123456789012345678", 0, "ean8_cc_5addon_ccb_8x3.png", "" },
/* 30*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "12345", "", 0, "ean5.png", "" },
/* 31*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "12", "", 0, "ean2.png", "" },
/* 32*/ { BARCODE_CODE39, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "123", "", 0, "code39_small.png", "" },
/* 33*/ { BARCODE_POSTNET, -1, -1, -1, -1, -1, -1, -1, -1, 0, 3.5, { 0, 0, "" }, "", "", 0, "12345", "", 0, "postnet_zip.png", "300 dpi, using 1/43in X, 300 / 43 / 2 = ~3.5 scale" },
/* 34*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "CFCECDCC", 0, "12345", "", 0, "pdf417_bgalpha.png", "" },
/* 35*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "30313233", "", 0, "12345", "", 0, "pdf417_fgalpha.png", "" },
/* 36*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "20212244", "CFCECDCC", 0, "12345", "", 0, "pdf417_bgfgalpha.png", "" },
/* 37*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "0000007F", "FF000033", 0, "12345", "", 0, "ultra_bgfgalpha.png", "" },
/* 38*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "FF000033", 0, "12345", "", 0, "ultra_bgalpha.png", "" },
/* 39*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "0000007F", "FF0000", 0, "12345", "", 0, "ultra_fgalpha.png", "" },
/* 40*/ { BARCODE_ULTRA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "0000007F", "", 0, "12345", "", 0, "ultra_fgalpha_nobg.png", "" },
/* 41*/ { BARCODE_ULTRA, -1, 1, BARCODE_BOX, 1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "12345", "", 0, "ultra_hvwsp1_box1.png", "" },
/* 42*/ { BARCODE_ULTRA, -1, 1, BARCODE_BOX, 1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "00FF007F", "BABDB6", 0, "12345", "", 0, "ultra_fgalpha_hvwsp1_box1.png", "" },
/* 43*/ { BARCODE_ULTRA, -1, 1, BARCODE_BIND_TOP, 1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "00FF007F", "BABDB6", 0, "12345", "", 0, "ultra_fgalpha_hvwsp1_bindtop1.png", "" },
/* 44*/ { BARCODE_ULTRA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0.5, { 0, 0, "" }, "", "", 0, "1", "", 0, "ultra_odd.png", "" },
/* 45*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0.5, { 0, 0, "" }, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_0.5.png", "6 dpmm, 150 dpi" },
/* 46*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BOX, 3, -1, -1, -1, -1, 0, 0.7, { 0, 0, "" }, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_0.7_wsp3_box1.png", "8 dpmm, 200 dpi" },
/* 47*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1.4, { 0, 0, "" }, "1111117F", "EEEEEEEE", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_1.4_bgfgalpha.png", "16 dpmm, 400 dpi" },
/* 48*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 2.1, { 0, 0, "" }, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_2.1.png", "24 dpmm, 600 dpi" },
/* 49*/ { BARCODE_MAXICODE, -1, 2, BARCODE_BOX, 1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_hvwsp1_box2.png", "" },
/* 50*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BIND, -1, 1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_vwsp1_bind1.png", "" },
/* 51*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, -1, -1, -1, -1, -1, 0, 2.0f, { 0, 0, "" }, "", "", 0, "1234", "", 0, "datamatrix_2.0_bind1_dotty.png", "" },
/* 52*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, 1, 1, -1, -1, -1, 0, 2.0f, { 0, 0, "" }, "", "", 0, "1234", "", 0, "datamatrix_2.0_hvwsp1_bind1_dotty.png", "" },
/* 53*/ { BARCODE_DBAR_LTD, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "12345678909", "", 0, "dbar_ltd.png", "" },
/* 54*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 5.0, 0, { 0, 0, "" }, "", "", 0, "Your Data Here!", "", ZINT_WARN_NONCOMPLIANT, "pdf417_height5.png", "" },
/* 55*/ { BARCODE_USPS_IMAIL, -1, -1, -1, -1, -1, -1, -1, -1, 7.75, 0, { 0, 0, "" }, "", "", 0, "12345678901234567890", "", 0, "imail_height7.75.png", "" },
/* 56*/ { BARCODE_AZTEC, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, { 4, 7, "Z1.txt" }, "", "", 0, "3456", "", 0, "aztec_z1_seq4of7.png", "" },
/* 57*/ { BARCODE_PDF417, -1, -1, BARCODE_NO_QUIET_ZONES, -1, -1, -1, 5, 8, 16, 1.5, { 0, 0, "" }, "", "", 0, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", "", ZINT_WARN_NONCOMPLIANT, "pdf417_#204.png", "Ticket #204 Blank line in PDF417" },
/* 58*/ { BARCODE_DPD, -1, -1, BARCODE_QUIET_ZONES | COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "", "", 0, "008182709980000020028101276", "", 0, "dpd_compliant.png", "Now with bind top 3X default" },
/* 59*/ { BARCODE_CHANNEL, -1, -1, CMYK_COLOUR | COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, 0, 0, { 0, 0, "" }, "100,85,0,20", "FFFFFF00", 0, "123", "", 0, "channel_cmyk_nobg.png", "" },
};
int data_size = ARRAY_SIZE(data);
int i, length, ret;
@ -264,6 +265,8 @@ static void test_print(const testCtx *const p_ctx) {
if (*data[i].bgcolour) {
strcpy(symbol->bgcolour, data[i].bgcolour);
}
symbol->text_gap = data[i].text_gap;
if (strlen(data[i].composite)) {
text = data[i].composite;
strcpy(symbol->primary, data[i].data);

View file

@ -1,6 +1,6 @@
/*
libzint - the open source barcode library
Copyright (C) 2019-2022 Robin Stuart <rstuart114@gmail.com>
Copyright (C) 2019-2023 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@ -74,8 +74,8 @@ static void test_large(const testCtx *const p_ctx) {
/* 23*/ { BARCODE_PLANET, "1", 39, ZINT_ERROR_TOO_LONG, -1, -1 },
/* 24*/ { BARCODE_KIX, "1", 18, 0, 3, 143 },
/* 25*/ { BARCODE_KIX, "1", 19, ZINT_ERROR_TOO_LONG, -1, -1 },
/* 26*/ { BARCODE_DAFT, "D", 100, 0, 3, 199 },
/* 27*/ { BARCODE_DAFT, "D", 101, ZINT_ERROR_TOO_LONG, -1, -1 },
/* 26*/ { BARCODE_DAFT, "D", 250, 0, 3, 499 },
/* 27*/ { BARCODE_DAFT, "D", 251, ZINT_ERROR_TOO_LONG, -1, -1 },
};
int data_size = ARRAY_SIZE(data);
int i, length, ret;

View file

@ -1,6 +1,6 @@
/*
libzint - the open source barcode library
Copyright (C) 2019-2022 Robin Stuart <rstuart114@gmail.com>
Copyright (C) 2019-2023 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@ -1237,7 +1237,6 @@ static void test_scale(const testCtx *const p_ctx) {
symbol = ZBarcode_Create();
assert_nonnull(symbol, "Symbol not created\n");
testUtilSetSymbol(symbol, data[i].symbology, UNICODE_MODE, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, -1, data[i].output_options, data[i].data, -1, debug);
if (data[i].border_width != -1) {
symbol->border_width = data[i].border_width;
}
@ -1253,7 +1252,7 @@ static void test_scale(const testCtx *const p_ctx) {
} else {
text = data[i].data;
}
length = (int) strlen(text);
length = testUtilSetSymbol(symbol, data[i].symbology, UNICODE_MODE, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, -1, data[i].output_options, text, -1, debug);
ret = ZBarcode_Encode(symbol, (unsigned char *) text, length);
assert_nonzero(ret < ZINT_ERROR, "i:%d ZBarcode_Encode(%d) ret %d >= ZINT_ERROR (%s)\n", i, data[i].symbology, ret, symbol->errtxt);
@ -1788,6 +1787,161 @@ static void test_quiet_zones(const testCtx *const p_ctx) {
testFinish();
}
static void test_text_gap(const testCtx *const p_ctx) {
int debug = p_ctx->debug;
struct item {
int symbology;
int output_options;
int option_2;
int show_hrt;
float text_gap;
float scale;
char *data;
char *composite;
int ret;
float expected_height;
int expected_rows;
int expected_width;
int expected_bitmap_width;
int expected_bitmap_height;
int expected_set;
int expected_set_row;
int expected_set_rows; /* Last row no. + 1 */
int expected_set_col;
int expected_set_len;
};
/* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
struct item data[] = {
/* 0*/ { BARCODE_CODE11, -1, -1, -1, 0, 0, "1234", "", 0, 50, 1, 62, 124, 116, 1 /*set*/, 104, 105, 55, 6 }, /* Default */
/* 1*/ { BARCODE_CODE11, -1, -1, -1, 0, 0, "1234", "", 0, 50, 1, 62, 124, 116, 0 /*set*/, 103, 104, 0, 124 }, /* Default */
/* 2*/ { BARCODE_CODE11, -1, -1, -1, 0.1, 0, "1234", "", 0, 50, 1, 62, 124, 114, 1 /*set*/, 102, 103, 55, 6 },
/* 3*/ { BARCODE_CODE11, -1, -1, -1, 0.4, 0, "1234", "", 0, 50, 1, 62, 124, 114, 1 /*set*/, 102, 103, 55, 6 },
/* 4*/ { BARCODE_CODE11, -1, -1, -1, 0.5, 0, "1234", "", 0, 50, 1, 62, 124, 115, 1 /*set*/, 103, 104, 55, 6 },
/* 5*/ { BARCODE_CODE11, -1, -1, -1, 0.5, 0, "1234", "", 0, 50, 1, 62, 124, 115, 0 /*set*/, 102, 103, 0, 124 },
/* 6*/ { BARCODE_CODE11, -1, -1, -1, 0.6, 0, "1234", "", 0, 50, 1, 62, 124, 115, 1 /*set*/, 103, 104, 55, 6 },
/* 7*/ { BARCODE_CODE11, -1, -1, -1, 1.0, 0, "1234", "", 0, 50, 1, 62, 124, 116, 1 /*set*/, 104, 105, 55, 6 }, /* Same as default */
/* 8*/ { BARCODE_CODE11, -1, -1, -1, 1.0, 0, "1234", "", 0, 50, 1, 62, 124, 116, 0 /*set*/, 103, 104, 0, 124 }, /* Same as default */
/* 9*/ { BARCODE_CODE11, -1, -1, -1, 1.5, 0, "1234", "", 0, 50, 1, 62, 124, 117, 1 /*set*/, 105, 106, 55, 6 },
/* 10*/ { BARCODE_CODE11, -1, -1, -1, 1.5, 0, "1234", "", 0, 50, 1, 62, 124, 117, 0 /*set*/, 104, 105, 0, 124 },
/* 11*/ { BARCODE_CODE11, -1, -1, -1, 2.0, 0, "1234", "", 0, 50, 1, 62, 124, 118, 1 /*set*/, 106, 107, 55, 6 },
/* 12*/ { BARCODE_CODE11, -1, -1, -1, 2.0, 0, "1234", "", 0, 50, 1, 62, 124, 118, 0 /*set*/, 105, 106, 0, 124 },
/* 13*/ { BARCODE_CODE11, -1, -1, -1, 3.0, 0, "1234", "", 0, 50, 1, 62, 124, 120, 1 /*set*/, 108, 109, 55, 6 },
/* 14*/ { BARCODE_CODE11, -1, -1, -1, 3.0, 0, "1234", "", 0, 50, 1, 62, 124, 120, 0 /*set*/, 107, 108, 0, 124 },
/* 15*/ { BARCODE_CODE11, -1, -1, -1, 4.0, 0, "1234", "", 0, 50, 1, 62, 124, 122, 1 /*set*/, 110, 111, 55, 6 },
/* 16*/ { BARCODE_CODE11, -1, -1, -1, 4.0, 0, "1234", "", 0, 50, 1, 62, 124, 122, 0 /*set*/, 109, 110, 0, 124 },
/* 17*/ { BARCODE_CODE11, -1, -1, -1, 5.0, 0, "1234", "", 0, 50, 1, 62, 124, 124, 1 /*set*/, 112, 113, 55, 6 },
/* 18*/ { BARCODE_CODE11, -1, -1, -1, 5.0, 0, "1234", "", 0, 50, 1, 62, 124, 124, 0 /*set*/, 111, 112, 0, 124 },
/* 19*/ { BARCODE_CODE11, -1, -1, -1, 0, 3.0, "1234", "", 0, 50, 1, 62, 372, 348, 1 /*set*/, 312, 315, 165, 18 }, /* Scale default */
/* 20*/ { BARCODE_CODE11, -1, -1, -1, 0, 3.0, "1234", "", 0, 50, 1, 62, 372, 348, 0 /*set*/, 311, 312, 0, 372 }, /* Scale default */
/* 21*/ { BARCODE_CODE11, -1, -1, -1, 1.5, 3.0, "1234", "", 0, 50, 1, 62, 372, 351, 1 /*set*/, 315, 318, 165, 18 }, /* Scale */
/* 22*/ { BARCODE_CODE11, -1, -1, -1, 1.5, 3.0, "1234", "", 0, 50, 1, 62, 372, 351, 0 /*set*/, 314, 315, 0, 372 }, /* Scale */
/* 23*/ { BARCODE_UPCA, -1, -1, -1, 0, 0, "01457130763", "", 0, 50, 1, 95, 226, 116, 1 /*set*/, 102, 104, 81, 9 }, /* Default */
/* 24*/ { BARCODE_UPCA, -1, -1, -1, 0, 0, "01457130763", "", 0, 50, 1, 95, 226, 116, 0 /*set*/, 101, 102, 38, 72 }, /* Default */
/* 25*/ { BARCODE_UPCA, -1, -1, -1, 0.5, 0, "01457130763", "", 0, 50, 1, 95, 226, 115, 1 /*set*/, 101, 103, 81, 9 },
/* 26*/ { BARCODE_UPCA, -1, -1, -1, 0.75, 0, "01457130763", "", 0, 50, 1, 95, 226, 115, 1 /*set*/, 101, 103, 81, 9 },
/* 27*/ { BARCODE_UPCA, -1, -1, -1, 1.0, 0, "01457130763", "", 0, 50, 1, 95, 226, 116, 1 /*set*/, 102, 104, 81, 9 }, /* Same as default */
/* 28*/ { BARCODE_UPCA, -1, -1, -1, 1.0, 0, "01457130763", "", 0, 50, 1, 95, 226, 116, 0 /*set*/, 101, 102, 38, 72 }, /* Same as default */
/* 29*/ { BARCODE_UPCA, -1, -1, -1, 2.0, 0, "01457130763", "", 0, 50, 1, 95, 226, 118, 1 /*set*/, 104, 106, 81, 9 },
/* 30*/ { BARCODE_UPCA, -1, -1, -1, 2.0, 2.5, "01457130763", "", 0, 50, 1, 95, 565, 295, 1 /*set*/, 260, 265, 201, 22 }, /* Scale */
/* 31*/ { BARCODE_UPCA, -1, -1, -1, 2.0, 2.5, "01457130763", "", 0, 50, 1, 95, 565, 295, 0 /*set*/, 259, 260, 95, 180 }, /* Scale */
/* 32*/ { BARCODE_UPCA, -1, -1, -1, 0, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 116, 0 /*set*/, 14, 16, 208, 68 }, /* Default */
/* 33*/ { BARCODE_UPCA, -1, -1, -1, 0, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 116, 1 /*set*/, 16, 100, 244, 4 }, /* Default */
/* 34*/ { BARCODE_UPCA, -1, -1, -1, 0.5, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 115, 0 /*set*/, 14, 15, 208, 68 },
/* 35*/ { BARCODE_UPCA, -1, -1, -1, 0.5, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 115, 1 /*set*/, 16, 100, 244, 4 },
/* 36*/ { BARCODE_UPCA, -1, -1, -1, 1.0, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 116, 0 /*set*/, 14, 16, 208, 68 }, /* Same as default */
/* 37*/ { BARCODE_UPCA, -1, -1, -1, 1.0, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 116, 1 /*set*/, 16, 100, 244, 4 }, /* Same as default */
/* 38*/ { BARCODE_UPCA, -1, -1, -1, 1.5, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 117, 0 /*set*/, 14, 17, 208, 68 },
/* 39*/ { BARCODE_UPCA, -1, -1, -1, 1.5, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 117, 1 /*set*/, 17, 100, 244, 4 },
/* 40*/ { BARCODE_UPCA, -1, -1, -1, 2.5, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 119, 0 /*set*/, 14, 19, 208, 68 },
/* 41*/ { BARCODE_UPCA, -1, -1, -1, 2.5, 0, "01457130763+10", "", 0, 50, 1, 124, 276, 119, 1 /*set*/, 19, 100, 244, 4 },
/* 42*/ { BARCODE_UPCA_CC, -1, -1, -1, 0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 116, 0 /*set*/, 38, 40, 214, 70 }, /* Default */
/* 43*/ { BARCODE_UPCA_CC, -1, -1, -1, 0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 116, 1 /*set*/, 40, 100, 250, 4 }, /* Default */
/* 44*/ { BARCODE_UPCA_CC, -1, -1, -1, 1.0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 116, 0 /*set*/, 38, 40, 214, 70 }, /* Same as default */
/* 45*/ { BARCODE_UPCA_CC, -1, -1, -1, 1.0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 116, 1 /*set*/, 40, 100, 250, 4 },
/* 46*/ { BARCODE_UPCA_CC, -1, -1, -1, 3.0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 120, 0 /*set*/, 38, 44, 214, 70 },
/* 47*/ { BARCODE_UPCA_CC, -1, -1, -1, 3.0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 120, 1 /*set*/, 44, 100, 250, 4 },
/* 48*/ { BARCODE_UPCA_CC, -1, -1, 0, 0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 110, 0 /*set*/, 38, 40, 214, 70 }, /* Hide text default */
/* 49*/ { BARCODE_UPCA_CC, -1, -1, 0, 0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 110, 1 /*set*/, 40, 100, 250, 4 }, /* Hide text default */
/* 50*/ { BARCODE_UPCA_CC, -1, -1, 0, 3.0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 110, 0 /*set*/, 38, 44, 214, 70 }, /* Hide text */
/* 51*/ { BARCODE_UPCA_CC, -1, -1, 0, 3.0, 0, "01457130763+10", "[91]12", 0, 50, 7, 128, 284, 110, 1 /*set*/, 44, 100, 250, 4 }, /* Hide text */
};
int data_size = ARRAY_SIZE(data);
int i, length, ret;
struct zint_symbol *symbol;
const char *text;
testStart("test_text_gap");
for (i = 0; i < data_size; i++) {
int row, column;
if (testContinue(p_ctx, i)) continue;
symbol = ZBarcode_Create();
assert_nonnull(symbol, "Symbol not created\n");
if (data[i].show_hrt != -1) {
symbol->show_hrt = data[i].show_hrt;
}
symbol->text_gap = data[i].text_gap;
if (data[i].scale != 0.0f) {
symbol->scale = data[i].scale;
}
if (strlen(data[i].composite)) {
text = data[i].composite;
strcpy(symbol->primary, data[i].data);
} else {
text = data[i].data;
}
length = testUtilSetSymbol(symbol, data[i].symbology, UNICODE_MODE, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, -1, data[i].output_options, text, -1, debug);
ret = ZBarcode_Encode(symbol, (unsigned char *) text, length);
assert_zero(ret, "i:%d ZBarcode_Encode(%d) ret %d != 0 (%s)\n", i, data[i].symbology, ret, symbol->errtxt);
ret = ZBarcode_Buffer(symbol, 0);
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Buffer(%d) ret %d != %d (%s)\n", i, data[i].symbology, ret, data[i].ret, symbol->errtxt);
assert_nonnull(symbol->bitmap, "i:%d (%d) symbol->bitmap NULL\n", i, data[i].symbology);
if (p_ctx->index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); /* ZINT_DEBUG_TEST_PRINT 16 */
assert_equal(symbol->height, data[i].expected_height, "i:%d (%d) symbol->height %.8g != %.8g\n", i, data[i].symbology, symbol->height, data[i].expected_height);
assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%d) symbol->rows %d != %d\n", i, data[i].symbology, symbol->rows, data[i].expected_rows);
assert_equal(symbol->width, data[i].expected_width, "i:%d (%d) symbol->width %d != %d\n", i, data[i].symbology, symbol->width, data[i].expected_width);
assert_equal(symbol->bitmap_width, data[i].expected_bitmap_width, "i:%d (%d) symbol->bitmap_width %d != %d\n", i, data[i].symbology, symbol->bitmap_width, data[i].expected_bitmap_width);
assert_equal(symbol->bitmap_height, data[i].expected_bitmap_height, "i:%d (%d) symbol->bitmap_height %d != %d\n", i, data[i].symbology, symbol->bitmap_height, data[i].expected_bitmap_height);
ret = ZBarcode_Print(symbol, 0);
assert_equal(ret, data[i].ret, "i:%d ZBarcode_Print(%d) ret %d != %d (%s)\n", i, data[i].symbology, ret, data[i].ret, symbol->errtxt);
assert_zero(remove(symbol->outfile), "i:%d remove(%s) != 0\n", i, symbol->outfile);
assert_nonzero(symbol->bitmap_height >= data[i].expected_set_rows, "i:%d (%d) symbol->bitmap_height %d < expected_set_rows %d\n",
i, data[i].symbology, symbol->bitmap_height, data[i].expected_set_rows);
assert_nonzero(data[i].expected_set_rows > data[i].expected_set_row, "i:%d (%d) expected_set_rows %d < expected_set_row %d\n",
i, data[i].symbology, data[i].expected_set_rows, data[i].expected_set_row);
for (row = data[i].expected_set_row; row < data[i].expected_set_rows; row++) {
int bits_set = 0;
for (column = data[i].expected_set_col; column < data[i].expected_set_col + data[i].expected_set_len; column++) {
if (is_row_column_black(symbol, row, column)) {
bits_set++;
}
}
if (data[i].expected_set) {
assert_equal(bits_set, data[i].expected_set_len, "i:%d (%d) row %d bits_set %d != expected_set_len %d\n", i, data[i].symbology, row, bits_set, data[i].expected_set_len);
} else {
assert_zero(bits_set, "i:%d (%d) row %d bits_set %d != 0\n", i, data[i].symbology, row, bits_set);
}
}
ZBarcode_Delete(symbol);
}
testFinish();
}
static void test_buffer_plot(const testCtx *const p_ctx) {
int debug = p_ctx->debug;
@ -1812,96 +1966,96 @@ static void test_buffer_plot(const testCtx *const p_ctx) {
};
struct item data[] = {
/* 0*/ { BARCODE_PDF417, 0, 1, -1, -1, 15, "", "", "1", 0, 16, 4, 86, 86, 16,
"11111111010101000111101010111100001111101010111110011101010111000000111111101000101001"
"11111111010101000111101010111100001111101010111110011101010111000000111111101000101001"
"11111111010101000111101010111100001111101010111110011101010111000000111111101000101001"
"11111111010101000111101010111100001111101010111110011101010111000000111111101000101001"
"11111111010101000111110101011000001111000001000101011111101010111000111111101000101001"
"11111111010101000111110101011000001111000001000101011111101010111000111111101000101001"
"11111111010101000111110101011000001111000001000101011111101010111000111111101000101001"
"11111111010101000111110101011000001111000001000101011111101010111000111111101000101001"
"11111111010101000110101011111000001111011111101011011010101111100000111111101000101001"
"11111111010101000110101011111000001111011111101011011010101111100000111111101000101001"
"11111111010101000110101011111000001111011111101011011010101111100000111111101000101001"
"11111111010101000110101011111000001111011111101011011010101111100000111111101000101001"
"11111111010101000101011110011110001010000010001000011010111101111100111111101000101001"
"11111111010101000101011110011110001010000010001000011010111101111100111111101000101001"
"11111111010101000101011110011110001010000010001000011010111101111100111111101000101001"
"11111111010101000101011110011110001010000010001000011010111101111100111111101000101001"
},
"11111111010101000111101010111100001111101010111110011101010111000000111111101000101001"
"11111111010101000111101010111100001111101010111110011101010111000000111111101000101001"
"11111111010101000111101010111100001111101010111110011101010111000000111111101000101001"
"11111111010101000111101010111100001111101010111110011101010111000000111111101000101001"
"11111111010101000111110101011000001111000001000101011111101010111000111111101000101001"
"11111111010101000111110101011000001111000001000101011111101010111000111111101000101001"
"11111111010101000111110101011000001111000001000101011111101010111000111111101000101001"
"11111111010101000111110101011000001111000001000101011111101010111000111111101000101001"
"11111111010101000110101011111000001111011111101011011010101111100000111111101000101001"
"11111111010101000110101011111000001111011111101011011010101111100000111111101000101001"
"11111111010101000110101011111000001111011111101011011010101111100000111111101000101001"
"11111111010101000110101011111000001111011111101011011010101111100000111111101000101001"
"11111111010101000101011110011110001010000010001000011010111101111100111111101000101001"
"11111111010101000101011110011110001010000010001000011010111101111100111111101000101001"
"11111111010101000101011110011110001010000010001000011010111101111100111111101000101001"
"11111111010101000101011110011110001010000010001000011010111101111100111111101000101001"
},
/* 1*/ { BARCODE_PDF417, 0, 1, -1, -1, 15, "FF0000", "00FF0099", "1", 0, 16, 4, 86, 86, 16,
"RRRRRRRRGRGRGRGGGRRRRGRGRGRRRRGGGGRRRRRGRGRGRRRRRGGRRRGRGRGRRRGGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRGRGRGRRRRGGGGRRRRRGRGRGRRRRRGGRRRGRGRGRRRGGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRGRGRGRRRRGGGGRRRRRGRGRGRRRRRGGRRRGRGRGRRRGGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRGRGRGRRRRGGGGRRRRRGRGRGRRRRRGGRRRGRGRGRRRGGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRRGRGRGRRGGGGGRRRRGGGGGRGGGRGRGRRRRRRGRGRGRRRGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRRGRGRGRRGGGGGRRRRGGGGGRGGGRGRGRRRRRRGRGRGRRRGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRRGRGRGRRGGGGGRRRRGGGGGRGGGRGRGRRRRRRGRGRGRRRGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRRGRGRGRRGGGGGRRRRGGGGGRGGGRGRGRRRRRRGRGRGRRRGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRGRGRGRRRRRGGGGGRRRRGRRRRRRGRGRRGRRGRGRGRRRRRGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRGRGRGRRRRRGGGGGRRRRGRRRRRRGRGRRGRRGRGRGRRRRRGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRGRGRGRRRRRGGGGGRRRRGRRRRRRGRGRRGRRGRGRGRRRRRGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRGRGRGRRRRRGGGGGRRRRGRRRRRRGRGRRGRRGRGRGRRRRRGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRGRGRRRRGGRRRRGGGRGRGGGGGRGGGRGGGGRRGRGRRRRGRRRRRGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRGRGRRRRGGRRRRGGGRGRGGGGGRGGGRGGGGRRGRGRRRRGRRRRRGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRGRGRRRRGGRRRRGGGRGRGGGGGRGGGRGGGGRRGRGRRRRGRRRRRGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRGRGRRRRGGRRRRGGGRGRGGGGGRGGGRGGGGRRGRGRRRRGRRRRRGGRRRRRRRGRGGGRGRGGR"
},
"RRRRRRRRGRGRGRGGGRRRRGRGRGRRRRGGGGRRRRRGRGRGRRRRRGGRRRGRGRGRRRGGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRGRGRGRRRRGGGGRRRRRGRGRGRRRRRGGRRRGRGRGRRRGGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRGRGRGRRRRGGGGRRRRRGRGRGRRRRRGGRRRGRGRGRRRGGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRGRGRGRRRRGGGGRRRRRGRGRGRRRRRGGRRRGRGRGRRRGGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRRGRGRGRRGGGGGRRRRGGGGGRGGGRGRGRRRRRRGRGRGRRRGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRRGRGRGRRGGGGGRRRRGGGGGRGGGRGRGRRRRRRGRGRGRRRGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRRGRGRGRRGGGGGRRRRGGGGGRGGGRGRGRRRRRRGRGRGRRRGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRRRRGRGRGRRGGGGGRRRRGGGGGRGGGRGRGRRRRRRGRGRGRRRGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRGRGRGRRRRRGGGGGRRRRGRRRRRRGRGRRGRRGRGRGRRRRRGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRGRGRGRRRRRGGGGGRRRRGRRRRRRGRGRRGRRGRGRGRRRRRGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRGRGRGRRRRRGGGGGRRRRGRRRRRRGRGRRGRRGRGRGRRRRRGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRRGRGRGRRRRRGGGGGRRRRGRRRRRRGRGRRGRRGRGRGRRRRRGGGGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRGRGRRRRGGRRRRGGGRGRGGGGGRGGGRGGGGRRGRGRRRRGRRRRRGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRGRGRRRRGGRRRRGGGRGRGGGGGRGGGRGGGGRRGRGRRRRGRRRRRGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRGRGRRRRGGRRRRGGGRGRGGGGGRGGGRGGGGRRGRGRRRRGRRRRRGGRRRRRRRGRGGGRGRGGR"
"RRRRRRRRGRGRGRGGGRGRGRRRRGGRRRRGGGRGRGGGGGRGGGRGGGGRRGRGRRRRGRRRRRGGRRRRRRRGRGGGRGRGGR"
},
/* 2*/ { BARCODE_PDF417, 0, 1, 1, -1, 15, "FFFF0033", "00FF00", "1", 0, 16, 4, 86, 88, 16,
"GYYYYYYYYGYGYGYGGGYYYYGYGYGYYYYGGGGYYYYYGYGYGYYYYYGGYYYGYGYGYYYGGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYGYGYGYYYYGGGGYYYYYGYGYGYYYYYGGYYYGYGYGYYYGGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYGYGYGYYYYGGGGYYYYYGYGYGYYYYYGGYYYGYGYGYYYGGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYGYGYGYYYYGGGGYYYYYGYGYGYYYYYGGYYYGYGYGYYYGGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYYGYGYGYYGGGGGYYYYGGGGGYGGGYGYGYYYYYYGYGYGYYYGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYYGYGYGYYGGGGGYYYYGGGGGYGGGYGYGYYYYYYGYGYGYYYGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYYGYGYGYYGGGGGYYYYGGGGGYGGGYGYGYYYYYYGYGYGYYYGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYYGYGYGYYGGGGGYYYYGGGGGYGGGYGYGYYYYYYGYGYGYYYGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYGYGYGYYYYYGGGGGYYYYGYYYYYYGYGYYGYYGYGYGYYYYYGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYGYGYGYYYYYGGGGGYYYYGYYYYYYGYGYYGYYGYGYGYYYYYGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYGYGYGYYYYYGGGGGYYYYGYYYYYYGYGYYGYYGYGYGYYYYYGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYGYGYGYYYYYGGGGGYYYYGYYYYYYGYGYYGYYGYGYGYYYYYGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYGYGYYYYGGYYYYGGGYGYGGGGGYGGGYGGGGYYGYGYYYYGYYYYYGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYGYGYYYYGGYYYYGGGYGYGGGGGYGGGYGGGGYYGYGYYYYGYYYYYGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYGYGYYYYGGYYYYGGGYGYGGGGGYGGGYGGGGYYGYGYYYYGYYYYYGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYGYGYYYYGGYYYYGGGYGYGGGGGYGGGYGGGGYYGYGYYYYGYYYYYGGYYYYYYYGYGGGYGYGGYG"
},
"GYYYYYYYYGYGYGYGGGYYYYGYGYGYYYYGGGGYYYYYGYGYGYYYYYGGYYYGYGYGYYYGGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYGYGYGYYYYGGGGYYYYYGYGYGYYYYYGGYYYGYGYGYYYGGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYGYGYGYYYYGGGGYYYYYGYGYGYYYYYGGYYYGYGYGYYYGGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYGYGYGYYYYGGGGYYYYYGYGYGYYYYYGGYYYGYGYGYYYGGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYYGYGYGYYGGGGGYYYYGGGGGYGGGYGYGYYYYYYGYGYGYYYGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYYGYGYGYYGGGGGYYYYGGGGGYGGGYGYGYYYYYYGYGYGYYYGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYYGYGYGYYGGGGGYYYYGGGGGYGGGYGYGYYYYYYGYGYGYYYGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYYYYGYGYGYYGGGGGYYYYGGGGGYGGGYGYGYYYYYYGYGYGYYYGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYGYGYGYYYYYGGGGGYYYYGYYYYYYGYGYYGYYGYGYGYYYYYGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYGYGYGYYYYYGGGGGYYYYGYYYYYYGYGYYGYYGYGYGYYYYYGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYGYGYGYYYYYGGGGGYYYYGYYYYYYGYGYYGYYGYGYGYYYYYGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYYGYGYGYYYYYGGGGGYYYYGYYYYYYGYGYYGYYGYGYGYYYYYGGGGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYGYGYYYYGGYYYYGGGYGYGGGGGYGGGYGGGGYYGYGYYYYGYYYYYGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYGYGYYYYGGYYYYGGGYGYGGGGGYGGGYGGGGYYGYGYYYYGYYYYYGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYGYGYYYYGGYYYYGGGYGYGGGGGYGGGYGGGGYYGYGYYYYGYYYYYGGYYYYYYYGYGGGYGYGGYG"
"GYYYYYYYYGYGYGYGGGYGYGYYYYGGYYYYGGGYGYGGGGGYGGGYGGGGYYGYGYYYYGYYYYYGGYYYYYYYGYGGGYGYGGYG"
},
/* 3*/ { BARCODE_ULTRA, -1, -1, -1, -1, 13, "FF00007F", "00FF0000", "1", 0, 13, 13, 13, 13, 13,
"1111111111111"
"10Y10GYCGYYC1"
"11C10MGYCGGG1"
"10G10GYCMCYC1"
"11Y10YMMGYGY1"
"10M10CGGCMYM1"
"1101010101011"
"10G10CYMGCCC1"
"11C10MCGCMMM1"
"10Y10CGCGYCY1"
"11M10GMMMMGC1"
"10C10MYYYGMY1"
"1111111111111"
},
"1111111111111"
"10Y10GYCGYYC1"
"11C10MGYCGGG1"
"10G10GYCMCYC1"
"11Y10YMMGYGY1"
"10M10CGGCMYM1"
"1101010101011"
"10G10CYMGCCC1"
"11C10MCGCMMM1"
"10Y10CGCGYCY1"
"11M10GMMMMGC1"
"10C10MYYYGMY1"
"1111111111111"
},
/* 4*/ { BARCODE_ULTRA, -1, -1, 1, -1, 13, "", "00FF0000", "1", 0, 13, 13, 13, 15, 13,
"G1111111111111G"
"G10Y10GYCGYYC1G"
"G11C10MGYCGGG1G"
"G10G10GYCMCYC1G"
"G11Y10YMMGYGY1G"
"G10M10CGGCMYM1G"
"G1101010101011G"
"G10G10CYMGCCC1G"
"G11C10MCGCMMM1G"
"G10Y10CGCGYCY1G"
"G11M10GMMMMGC1G"
"G10C10MYYYGMY1G"
"G1111111111111G"
},
"G1111111111111G"
"G10Y10GYCGYYC1G"
"G11C10MGYCGGG1G"
"G10G10GYCMCYC1G"
"G11Y10YMMGYGY1G"
"G10M10CGGCMYM1G"
"G1101010101011G"
"G10G10CYMGCCC1G"
"G11C10MCGCMMM1G"
"G10Y10CGCGYCY1G"
"G11M10GMMMMGC1G"
"G10C10MYYYGMY1G"
"G1111111111111G"
},
/* 5*/ { BARCODE_CHANNEL, -1, -1, 1, -1, 5, "30313233", "CFCECDCC", "1", 0, 5, 1, 19, 21, 5,
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
},
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
"CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132CFCECD303132303132CFCECD303132303132CFCECDCFCECDCFCECD303132CFCECD"
},
};
int data_size = ARRAY_SIZE(data);
int i, length, ret;
@ -1957,9 +2111,9 @@ static void test_buffer_plot(const testCtx *const p_ctx) {
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);
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);
i, testUtilBarcodeName(data[i].symbology), symbol->bitmap_height, data[i].expected_bitmap_height);
ret = testUtilBitmapCmp(symbol, data[i].expected_bitmap, &row, &column);
assert_zero(ret, "i:%d (%s) testUtilBitmapCmp ret %d != 0 column %d row %d (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, column, row, data[i].data);
@ -2979,6 +3133,7 @@ int main(int argc, char *argv[]) {
{ "test_scale", test_scale, },
{ "test_guard_descent", test_guard_descent, },
{ "test_quiet_zones", test_quiet_zones, },
{ "test_text_gap", test_text_gap, },
{ "test_buffer_plot", test_buffer_plot, },
{ "test_height", test_height, },
{ "test_height_per_row", test_height_per_row, },

View file

@ -54,62 +54,63 @@ static void test_print(const testCtx *const p_ctx) {
char *composite;
int ret;
char *expected_file;
char *comment;
};
struct item data[] = {
/* 0*/ { BARCODE_CODE128, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "<>\"&'", "", 0, "code128_amperands.svg" },
/* 1*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold.svg" },
/* 2*/ { BARCODE_CODE128, UNICODE_MODE, 3, BOLD_TEXT | BARCODE_BOX, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold_box3.svg" },
/* 3*/ { BARCODE_CODE128, UNICODE_MODE, 2, BOLD_TEXT | BARCODE_BOX, 2, 2, -1, -1, -1, -1, 0, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold_hvwsp2_box2.svg" },
/* 4*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, 3, 3, -1, -1, -1, -1, 0, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold_hvwsp3.svg" },
/* 5*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, -1, -1, 3, -1, -1, 0, "", "", 0, "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", 0, "gs1_128_cc_fig12.svg" },
/* 6*/ { BARCODE_CODABLOCKF, -1, -1, -1, -1, -1, -1, 3, -1, -1, 0, "", "", 0, "AAAAAAAAA", "", 0, "codablockf_3rows.svg" },
/* 7*/ { BARCODE_CODABLOCKF, -1, -1, -1, 2, 2, -1, 3, -1, -1, 0, "", "", 0, "AAAAAAAAA", "", 0, "codablockf_hvwsp2.svg" },
/* 8*/ { BARCODE_CODABLOCKF, -1, 2, BARCODE_BOX, 2, 2, -1, -1, -1, -1, 0, "", "", 0, "AAAAAAAAA", "", 0, "codablockf_hvwsp2_box2.svg" },
/* 9*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "9771384524017+12", "", 0, "ean13_2addon_ggs_5.2.2.5.1-2.svg" },
/* 10*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "9780877799306+54321", "", 0, "ean13_5addon_ggs_5.2.2.5.2-2.svg" },
/* 11*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 0, "123456789012+12", "[91]123456789012345678901", 0, "ean13_cc_2addon_cca_4x4.svg" },
/* 12*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "123456789012+54321", "[91]1234567890", 0, "ean13_cc_5addon_ccb_3x4.svg" },
/* 13*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, 0, 2, -1, -1, 0, "", "", 0, "123456789012+54321", "[91]1234567890", 0, "ean13_cc_5addon_ccb_3x4_notext.svg" },
/* 14*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "012345678905+24", "", 0, "upca_2addon_ggs_5.2.6.6-5.svg" },
/* 15*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "614141234417+12345", "", 0, "upca_5addon.svg" },
/* 16*/ { BARCODE_UPCA, -1, 3, BARCODE_BIND, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "614141234417+12345", "", 0, "upca_5addon_bind3.svg" },
/* 17*/ { BARCODE_UPCA, -1, -1, SMALL_TEXT | BOLD_TEXT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "614141234417+12345", "", 0, "upca_5addon_small_bold.svg" },
/* 18*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 0, "12345678901+12", "[91]123456789", 0, "upca_cc_2addon_cca_3x4.svg" },
/* 19*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4.svg" },
/* 20*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, 0, 2, -1, -1, 0, "", "", 0, "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4_notext.svg" },
/* 21*/ { BARCODE_UPCA_CC, -1, 3, BARCODE_BIND, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4_bind3.svg" },
/* 22*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12", "", 0, "upce_2addon.svg" },
/* 23*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12345", "", 0, "upce_5addon.svg" },
/* 24*/ { BARCODE_UPCE, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12345", "", 0, "upce_5addon_small.svg" },
/* 25*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, 0, -1, -1, -1, 0, "", "", 0, "1234567+12345", "", 0, "upce_5addon_notext.svg" },
/* 26*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 0, "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2.svg" },
/* 27*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "FF0000EE", "0000FF11", 0, "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2_fgbgalpha.svg" },
/* 28*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "FFFFFF00", 0, "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2_nobg.svg" },
/* 29*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 270, "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2_rotate_270.svg" },
/* 30*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "1876543+56789", "[91]12345", 0, "upce_cc_5addon_ccb_8x2.svg" },
/* 31*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, 0, 2, -1, -1, 0, "", "", 0, "1876543+56789", "[91]12345", 0, "upce_cc_5addon_ccb_8x2_notext.svg" },
/* 32*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12", "", 0, "ean8_2addon.svg" },
/* 33*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12345", "", 0, "ean8_5addon.svg" },
/* 34*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 0, "9876543+65", "[91]1234567", 0, "ean8_cc_2addon_cca_4x3.svg" },
/* 35*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "9876543+74083", "[91]123456789012345678", 0, "ean8_cc_5addon_ccb_8x3.svg" },
/* 36*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "12345", "", 0, "ean5.svg" },
/* 37*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "12", "", 0, "ean2.svg" },
/* 38*/ { BARCODE_CODE39, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "123", "", 0, "code39_small.svg" },
/* 39*/ { BARCODE_POSTNET, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "12345", "", 0, "postnet_zip.svg" },
/* 40*/ { BARCODE_MAXICODE, -1, 2, BARCODE_BOX, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_box2.svg" },
/* 41*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BIND, -1, 1, -1, -1, -1, -1, 0, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_vwsp1_bind1.svg" },
/* 42*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "121212DD", "EEEEEE22", 90, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_fgbg_rotate_90.svg" },
/* 43*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, -1, 1, -1, -1, -1, -1, 0, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "datamatrix_vwsp1_bind1_dotty.svg" },
/* 44*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, 1, 1, -1, -1, -1, -1, 0, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "datamatrix_hvwsp1_bind1_dotty.svg" },
/* 45*/ { BARCODE_DBAR_LTD, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "12345678909", "", 0, "dbar_ltd.svg" },
/* 46*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, "", "", 0, "Your Data Here!", "", ZINT_WARN_NONCOMPLIANT, "pdf417_height5.svg" },
/* 47*/ { BARCODE_USPS_IMAIL, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7.75, "", "", 0, "12345678901234567890", "", 0, "imail_height7.75.svg" },
/* 48*/ { BARCODE_ULTRA, -1, 3, BARCODE_BOX, 2, 2, -1, -1, -1, -1, 0, "FF0000", "0000FF", 0, "12345678901234567890", "", 0, "ultra_fgbg_hvwsp2_box3.svg" },
/* 49*/ { BARCODE_TELEPEN, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0.4, "", "", 180, "A", "", 0, "telepen_height0.4_rotate_180.svg" },
/* 50*/ { BARCODE_CODE49, -1, -1, COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, -1, 0, "FF11157F", "", 0, "A", "", 0, "code49_comph_fgalpha.svg" },
/* 51*/ { BARCODE_CODABLOCKF, -1, -1, COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, 2, 0, "00000033", "FFFFFF66", 0, "1234567890123456789012345678901234", "", 0, "codablockf_comph_sep2_fgbgalpha.svg" },
/* 52*/ { BARCODE_DPD, -1, -1, BARCODE_QUIET_ZONES | COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "008182709980000020028101276", "", 0, "dpd_compliant.svg" },
/* 53*/ { BARCODE_CHANNEL, -1, -1, CMYK_COLOUR | COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, -1, 0, "100,85,0,20", "FFFFFF00", 0, "123", "", 0, "channel_cmyk_nobg.svg" },
/* 0*/ { BARCODE_CODE128, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "<>\"&'", "", 0, "code128_amperands.svg", "" },
/* 1*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold.svg", "" },
/* 2*/ { BARCODE_CODE128, UNICODE_MODE, 3, BOLD_TEXT | BARCODE_BOX, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold_box3.svg", "" },
/* 3*/ { BARCODE_CODE128, UNICODE_MODE, 2, BOLD_TEXT | BARCODE_BOX, 2, 2, -1, -1, -1, -1, 0, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold_hvwsp2_box2.svg", "" },
/* 4*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, 3, 3, -1, -1, -1, -1, 0, "", "", 0, "Égjpqy", "", 0, "code128_egrave_bold_hvwsp3.svg", "" },
/* 5*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, -1, -1, 3, -1, -1, 0, "", "", 0, "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", 0, "gs1_128_cc_fig12.svg", "" },
/* 6*/ { BARCODE_CODABLOCKF, -1, -1, -1, -1, -1, -1, 3, -1, -1, 0, "", "", 0, "AAAAAAAAA", "", 0, "codablockf_3rows.svg", "" },
/* 7*/ { BARCODE_CODABLOCKF, -1, -1, -1, 2, 2, -1, 3, -1, -1, 0, "", "", 0, "AAAAAAAAA", "", 0, "codablockf_hvwsp2.svg", "" },
/* 8*/ { BARCODE_CODABLOCKF, -1, 2, BARCODE_BOX, 2, 2, -1, -1, -1, -1, 0, "", "", 0, "AAAAAAAAA", "", 0, "codablockf_hvwsp2_box2.svg", "" },
/* 9*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "9771384524017+12", "", 0, "ean13_2addon_ggs_5.2.2.5.1-2.svg", "" },
/* 10*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "9780877799306+54321", "", 0, "ean13_5addon_ggs_5.2.2.5.2-2.svg", "" },
/* 11*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 0, "123456789012+12", "[91]123456789012345678901", 0, "ean13_cc_2addon_cca_4x4.svg", "" },
/* 12*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "123456789012+54321", "[91]1234567890", 0, "ean13_cc_5addon_ccb_3x4.svg", "" },
/* 13*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, 0, 2, -1, -1, 0, "", "", 0, "123456789012+54321", "[91]1234567890", 0, "ean13_cc_5addon_ccb_3x4_notext.svg", "" },
/* 14*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "012345678905+24", "", 0, "upca_2addon_ggs_5.2.6.6-5.svg", "" },
/* 15*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "614141234417+12345", "", 0, "upca_5addon.svg", "" },
/* 16*/ { BARCODE_UPCA, -1, 3, BARCODE_BIND, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "614141234417+12345", "", 0, "upca_5addon_bind3.svg", "" },
/* 17*/ { BARCODE_UPCA, -1, -1, SMALL_TEXT | BOLD_TEXT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "614141234417+12345", "", 0, "upca_5addon_small_bold.svg", "Note BOLD_TEXT ignored for UPC/EAN" },
/* 18*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 0, "12345678901+12", "[91]123456789", 0, "upca_cc_2addon_cca_3x4.svg", "" },
/* 19*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4.svg", "" },
/* 20*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, 0, 2, -1, -1, 0, "", "", 0, "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4_notext.svg", "" },
/* 21*/ { BARCODE_UPCA_CC, -1, 3, BARCODE_BIND, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "12345678901+12121", "[91]1234567890123", 0, "upca_cc_5addon_ccb_4x4_bind3.svg", "" },
/* 22*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12", "", 0, "upce_2addon.svg", "" },
/* 23*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12345", "", 0, "upce_5addon.svg", "" },
/* 24*/ { BARCODE_UPCE, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12345", "", 0, "upce_5addon_small.svg", "" },
/* 25*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, 0, -1, -1, -1, 0, "", "", 0, "1234567+12345", "", 0, "upce_5addon_notext.svg", "" },
/* 26*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 0, "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2.svg", "" },
/* 27*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "FF0000EE", "0000FF11", 0, "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2_fgbgalpha.svg", "" },
/* 28*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "FFFFFF00", 0, "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2_nobg.svg", "" },
/* 29*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 270, "0654321+89", "[91]1", 0, "upce_cc_2addon_cca_5x2_rotate_270.svg", "" },
/* 30*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "1876543+56789", "[91]12345", 0, "upce_cc_5addon_ccb_8x2.svg", "" },
/* 31*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, 0, 2, -1, -1, 0, "", "", 0, "1876543+56789", "[91]12345", 0, "upce_cc_5addon_ccb_8x2_notext.svg", "" },
/* 32*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12", "", 0, "ean8_2addon.svg", "" },
/* 33*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "1234567+12345", "", 0, "ean8_5addon.svg", "" },
/* 34*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, "", "", 0, "9876543+65", "[91]1234567", 0, "ean8_cc_2addon_cca_4x3.svg", "" },
/* 35*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 2, -1, -1, 0, "", "", 0, "9876543+74083", "[91]123456789012345678", 0, "ean8_cc_5addon_ccb_8x3.svg", "" },
/* 36*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "12345", "", 0, "ean5.svg", "" },
/* 37*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "12", "", 0, "ean2.svg", "" },
/* 38*/ { BARCODE_CODE39, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "123", "", 0, "code39_small.svg", "" },
/* 39*/ { BARCODE_POSTNET, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "12345", "", 0, "postnet_zip.svg", "" },
/* 40*/ { BARCODE_MAXICODE, -1, 2, BARCODE_BOX, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_box2.svg", "" },
/* 41*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BIND, -1, 1, -1, -1, -1, -1, 0, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_vwsp1_bind1.svg", "" },
/* 42*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "121212DD", "EEEEEE22", 90, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "maxicode_fgbg_rotate_90.svg", "" },
/* 43*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, -1, 1, -1, -1, -1, -1, 0, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "datamatrix_vwsp1_bind1_dotty.svg", "" },
/* 44*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, 1, 1, -1, -1, -1, -1, 0, "", "", 0, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", 0, "datamatrix_hvwsp1_bind1_dotty.svg", "" },
/* 45*/ { BARCODE_DBAR_LTD, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "12345678909", "", 0, "dbar_ltd.svg", "" },
/* 46*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, "", "", 0, "Your Data Here!", "", ZINT_WARN_NONCOMPLIANT, "pdf417_height5.svg", "" },
/* 47*/ { BARCODE_USPS_IMAIL, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7.75, "", "", 0, "12345678901234567890", "", 0, "imail_height7.75.svg", "" },
/* 48*/ { BARCODE_ULTRA, -1, 3, BARCODE_BOX, 2, 2, -1, -1, -1, -1, 0, "FF0000", "0000FF", 0, "12345678901234567890", "", 0, "ultra_fgbg_hvwsp2_box3.svg", "" },
/* 49*/ { BARCODE_TELEPEN, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0.4, "", "", 180, "A", "", 0, "telepen_height0.4_rotate_180.svg", "" },
/* 50*/ { BARCODE_CODE49, -1, -1, COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, -1, 0, "FF11157F", "", 0, "A", "", 0, "code49_comph_fgalpha.svg", "" },
/* 51*/ { BARCODE_CODABLOCKF, -1, -1, COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, 2, 0, "00000033", "FFFFFF66", 0, "1234567890123456789012345678901234", "", 0, "codablockf_comph_sep2_fgbgalpha.svg", "" },
/* 52*/ { BARCODE_DPD, -1, -1, BARCODE_QUIET_ZONES | COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, -1, 0, "", "", 0, "008182709980000020028101276", "", 0, "dpd_compliant.svg", "" },
/* 53*/ { BARCODE_CHANNEL, -1, -1, CMYK_COLOUR | COMPLIANT_HEIGHT, -1, -1, -1, -1, -1, -1, 0, "100,85,0,20", "FFFFFF00", 0, "123", "", 0, "channel_cmyk_nobg.svg", "" },
};
int data_size = ARRAY_SIZE(data);
int i, length, ret;
@ -189,11 +190,11 @@ static void test_print(const testCtx *const p_ctx) {
assert_nonzero(testUtilDataPath(expected_file, sizeof(expected_file), data_dir, data[i].expected_file), "i:%d testUtilDataPath == 0\n", i);
if (p_ctx->generate) {
printf(" /*%3d*/ { %s, %s, %d, %s, %d, %d, %d, %d, %d, %d, %.8g, \"%s\", \"%s\", %d, \"%s\", \"%s\", \"%s\" },\n",
printf(" /*%3d*/ { %s, %s, %d, %s, %d, %d, %d, %d, %d, %d, %.8g, \"%s\", \"%s\", %d, \"%s\", \"%s\", \"%s\", \"%s\" },\n",
i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode), data[i].border_width,
testUtilOutputOptionsName(data[i].output_options), data[i].whitespace_width, data[i].whitespace_height, data[i].show_hrt,
data[i].option_1, data[i].option_2, data[i].option_3, data[i].height, data[i].fgcolour, data[i].bgcolour, data[i].rotate_angle,
testUtilEscape(data[i].data, length, escaped, escaped_size), data[i].composite, data[i].expected_file);
testUtilEscape(data[i].data, length, escaped, escaped_size), data[i].composite, data[i].expected_file, data[i].comment);
ret = testUtilRename(symbol->outfile, expected_file);
assert_zero(ret, "i:%d testUtilRename(%s, %s) ret %d != 0\n", i, symbol->outfile, expected_file, ret);
if (have_libreoffice) {

File diff suppressed because it is too large Load diff

View file

@ -364,7 +364,7 @@ int testContinue(const testCtx *const p_ctx, const int i) {
/* Helper to set common symbol fields */
int testUtilSetSymbol(struct zint_symbol *symbol, int symbology, int input_mode, int eci, int option_1, int option_2,
int option_3, int output_options, char *data, int length, int debug) {
int option_3, int output_options, const char *data, int length, int debug) {
symbol->symbology = symbology;
if (input_mode != -1) {
symbol->input_mode = input_mode;

View file

@ -1,6 +1,6 @@
/*
libzint - the open source barcode library
Copyright (C) 2019-2022 Robin Stuart <rstuart114@gmail.com>
Copyright (C) 2019-2023 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@ -129,7 +129,7 @@ void assert_notequal(int e1, int e2, const char *fmt, ...);
INTERNAL void vector_free(struct zint_symbol *symbol); /* Free vector structures */
int testUtilSetSymbol(struct zint_symbol *symbol, int symbology, int input_mode, int eci,
int option_1, int option_2, int option_3, int output_options, char *data, int length, int debug);
int option_1, int option_2, int option_3, int output_options, const char *data, int length, int debug);
const char *testUtilBarcodeName(int symbology);
const char *testUtilErrorName(int error_number);

View file

@ -1,7 +1,7 @@
/* vector.c - Creates vector image objects */
/*
libzint - the open source barcode library
Copyright (C) 2018-2022 Robin Stuart <rstuart114@gmail.com>
Copyright (C) 2018-2023 Robin Stuart <rstuart114@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@ -126,7 +126,7 @@ static void vector_plot_add_circle(struct zint_symbol *symbol, struct zint_vecto
*last_circle = circle;
}
static int vector_plot_add_string(struct zint_symbol *symbol, const unsigned char *text,
static int vector_plot_add_string(struct zint_symbol *symbol, const unsigned char *text, const int length,
const float x, const float y, const float fsize, const float width, const int halign,
struct zint_vector_string **last_string) {
struct zint_vector_string *string;
@ -141,7 +141,7 @@ static int vector_plot_add_string(struct zint_symbol *symbol, const unsigned cha
string->y = y;
string->width = width;
string->fsize = fsize;
string->length = (int) ustrlen(text);
string->length = length == -1 ? (int) ustrlen(text) : length;
string->rotation = 0;
string->halign = halign;
string->text = (unsigned char *) malloc(string->length + 1);
@ -150,7 +150,8 @@ static int vector_plot_add_string(struct zint_symbol *symbol, const unsigned cha
strcpy(symbol->errtxt, "695: Insufficient memory for vector string text");
return 0;
}
ustrcpy(string->text, text);
memcpy(string->text, text, string->length);
string->text[string->length] = '\0';
if (*last_string)
(*last_string)->next = string;
@ -398,7 +399,7 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
float textoffset;
int upceanflag = 0;
int addon_latch = 0;
unsigned char textpart1[5], textpart2[7], textpart3[7], textpart4[2];
unsigned char textparts[4][7];
int hide_text;
int i, r;
int block_width = 0;
@ -408,13 +409,22 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
const int is_codablockf = symbol->symbology == BARCODE_CODABLOCKF || symbol->symbology == BARCODE_HIBC_BLOCKF;
const int no_extend = is_codablockf || symbol->symbology == BARCODE_DPD;
float addon_row_height;
float large_bar_height;
const float descent_factor = 0.1f; /* Assuming descent roughly 10% of font size */
/* For UPC/EAN only */
float addon_row_yposn;
float addon_row_height;
int upcae_outside_text_height = 0; /* UPC-A/E outside digits font size */
float digit_ascent_factor = 0.25f; /* Assuming digit ascent roughly 25% less than font size */
/* Note using "ascender" to mean height above digits as "ascent" usually measured from baseline */
const float digit_ascender_factor = 0.25f; /* Assuming digit ascender height roughly 25% of font size */
float digit_ascender = 0.0f; /* Avoid gcc -Wmaybe-uninitialized */
const float antialias_fudge_factor = 0.02f;
float antialias_fudge = 0.0f; /* Avoid gcc -Wmaybe-uninitialized */
int rect_count = 0, last_row_start = 0; /* For UPC/EAN guard bars */
float dot_overspill = 0.0f;
float dot_offset = 0.0f;
int rect_count = 0, last_row_start = 0; /* For UPC/EAN guard bars */
float yposn;
struct zint_vector *vector;
@ -461,18 +471,21 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
out_set_whitespace_offsets(symbol, hide_text, &xoffset, &yoffset, &roffset, &boffset, 0 /*scaler*/,
NULL, NULL, NULL, NULL);
/* Note font sizes scaled by 2 so really twice these values */
if (upceanflag) {
/* Note BOLD_TEXT ignored for UPCEAN by svg/emf/ps/qzint */
text_height = symbol->output_options & SMALL_TEXT ? 7 : 10;
digit_ascender = text_height * digit_ascender_factor; /* Digit ascender is unused (empty) */
antialias_fudge = text_height * antialias_fudge_factor;
upcae_outside_text_height = symbol->output_options & SMALL_TEXT ? 6 : 7;
/* Negative to move close to barcode (less digit ascent, then add 0.5X) */
text_gap = -text_height * digit_ascent_factor + 0.5f;
/* Note default 0.75 was 0.5 (minimum per standard) but that looks too close */
text_gap = (symbol->text_gap ? symbol->text_gap : 0.75f) - digit_ascender;
/* Guard bar height (none for EAN-2 and EAN-5) */
guard_descent = upceanflag != 2 && upceanflag != 5 ? symbol->guard_descent : 0.0f;
} else {
text_height = symbol->output_options & SMALL_TEXT ? 6 : 7;
text_gap = text_height * 0.1f;
text_gap = symbol->text_gap ? symbol->text_gap : text_height * 0.1f;
guard_descent = 0.0f;
}
@ -480,10 +493,9 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
textoffset = guard_descent;
} else {
if (upceanflag) {
/* Add fudge for anti-aliasing of digits */
if (text_height + 0.2f + text_gap > guard_descent) {
textoffset = text_height + 0.2f + text_gap;
} else {
/* Add fudge for anti-aliasing of digit bottoms */
textoffset = text_height + text_gap + antialias_fudge;
if (textoffset < guard_descent) {
textoffset = guard_descent;
}
} else {
@ -601,11 +613,12 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
&& module_is_set(symbol, r, i + block_width) == fill; block_width++);
if ((r == (symbol->rows - 1)) && (i > main_width) && (addon_latch == 0)) {
addon_text_yposn = yposn + text_height - text_height * digit_ascent_factor;
addon_text_yposn = yposn + text_height - digit_ascender;
if (addon_text_yposn < 0.0f) {
addon_text_yposn = 0.0f;
}
addon_row_height = row_height - (addon_text_yposn - yposn) + text_gap;
addon_row_yposn = yposn + text_height + text_gap + antialias_fudge;
addon_row_height = row_height - (addon_row_yposn - yposn);
if (upceanflag != 12 && upceanflag != 6) { /* UPC-A/E add-ons don't descend */
addon_row_height += guard_descent;
}
@ -617,8 +630,8 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
if (fill) {
/* a bar */
if (addon_latch) {
rect = vector_plot_create_rect(symbol, i + xoffset, addon_text_yposn - text_gap,
block_width, addon_row_height);
rect = vector_plot_create_rect(symbol, i + xoffset, addon_row_yposn, block_width,
addon_row_height);
} else {
rect = vector_plot_create_rect(symbol, i + xoffset, yposn, block_width, row_height);
}
@ -730,129 +743,107 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
xoffset += comp_xoffset;
text_yposn = yoffset + symbol->height + text_height + text_gap; /* Calculated to bottom of text */
if (upceanflag) { /* Allow for anti-aliasing if UPC/EAN */
text_yposn -= antialias_fudge;
} else { /* Else adjust to baseline */
text_yposn -= text_height * descent_factor;
}
if (symbol->border_width > 0 && (symbol->output_options & (BARCODE_BOX | BARCODE_BIND))) {
text_yposn += symbol->border_width; /* Note not needed for BARCODE_BIND_TOP */
}
if (upceanflag >= 6) { /* UPC-E, EAN-8, UPC-A, EAN-13 */
const int addon_len = (int) ustrlen(addon);
float textwidth;
out_upcean_split_text(upceanflag, symbol->text, textpart1, textpart2, textpart3, textpart4);
out_upcean_split_text(upceanflag, symbol->text, textparts);
if (upceanflag == 6) { /* UPC-E */
text_xposn = -5.0f + xoffset;
text_xposn = -(5.0f - 0.35f) + xoffset;
textwidth = 6.2f;
if (!vector_plot_add_string(symbol, textpart1, text_xposn, text_yposn, upcae_outside_text_height,
textwidth, 2 /*right align*/, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = 24.0f + xoffset;
if (!vector_plot_add_string(symbol, textparts[0], 1, text_xposn, text_yposn,
upcae_outside_text_height, textwidth, 2 /*right align*/,
&last_string)) return ZINT_ERROR_MEMORY;
text_xposn = (24.0f + 0.5f) + xoffset;
textwidth = 6.0f * 8.5f;
if (!vector_plot_add_string(symbol, textpart2, text_xposn, text_yposn, text_height,
textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = 51.0f + 3.0f + xoffset;
if (!vector_plot_add_string(symbol, textparts[1], 6, text_xposn, text_yposn, text_height,
textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = (51.0f - 0.35f) + 3.0f + xoffset;
textwidth = 6.2f;
if (!vector_plot_add_string(symbol, textpart3, text_xposn, text_yposn, upcae_outside_text_height,
textwidth, 1 /*left align*/, &last_string)) return ZINT_ERROR_MEMORY;
switch (ustrlen(addon)) {
case 2:
text_xposn = 61.0f + xoffset + addon_gap;
textwidth = 2.0f * 8.5f;
if (!vector_plot_add_string(symbol, addon, text_xposn, addon_text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
break;
case 5:
text_xposn = 75.0f + xoffset + addon_gap;
textwidth = 5.0f * 8.5f;
if (!vector_plot_add_string(symbol, addon, text_xposn, addon_text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
break;
if (!vector_plot_add_string(symbol, textparts[2], 1, text_xposn, text_yposn,
upcae_outside_text_height, textwidth, 1 /*left align*/,
&last_string)) return ZINT_ERROR_MEMORY;
if (addon_len) {
text_xposn = (addon_len == 2 ? 61.0f : 75.0f) + xoffset + addon_gap;
textwidth = addon_len * 8.5f;
if (!vector_plot_add_string(symbol, addon, addon_len, text_xposn, addon_text_yposn,
text_height, textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
}
} else if (upceanflag == 8) { /* EAN-8 */
text_xposn = 17.0f + xoffset;
text_xposn = (17.0f + 0.5f) + xoffset;
textwidth = 4.0f * 8.5f;
if (!vector_plot_add_string(symbol, textpart1, text_xposn, text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = 50.0f + xoffset;
if (!vector_plot_add_string(symbol, textpart2, text_xposn, text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
switch (ustrlen(addon)) {
case 2:
text_xposn = 77.0f + xoffset + addon_gap;
textwidth = 2.0f * 8.5f;
if (!vector_plot_add_string(symbol, addon, text_xposn, addon_text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
break;
case 5:
text_xposn = 91.0f + xoffset + addon_gap;
textwidth = 5.0f * 8.5f;
if (!vector_plot_add_string(symbol, addon, text_xposn, addon_text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
break;
if (!vector_plot_add_string(symbol, textparts[0], 4, text_xposn, text_yposn,
text_height, textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = (50.0f - 0.5f) + xoffset;
if (!vector_plot_add_string(symbol, textparts[1], 4, text_xposn, text_yposn,
text_height, textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
if (addon_len) {
text_xposn = (addon_len == 2 ? 77.0f : 91.0f) + xoffset + addon_gap;
textwidth = addon_len * 8.5f;
if (!vector_plot_add_string(symbol, addon, addon_len, text_xposn, addon_text_yposn,
text_height, textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
}
} else if (upceanflag == 12) { /* UPC-A */
text_xposn = -5.0f + xoffset;
text_xposn = -(5.0f - 0.35f) + xoffset;
textwidth = 6.2f;
if (!vector_plot_add_string(symbol, textpart1, text_xposn, text_yposn, upcae_outside_text_height,
textwidth, 2 /*right align*/, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = 27.0f + xoffset;
if (!vector_plot_add_string(symbol, textparts[0], 1, text_xposn, text_yposn,
upcae_outside_text_height, textwidth, 2 /*right align*/,
&last_string)) return ZINT_ERROR_MEMORY;
text_xposn = (27.0f + 1.0f) + xoffset;
textwidth = 5.0f * 8.5f;
if (!vector_plot_add_string(symbol, textpart2, text_xposn, text_yposn, text_height,
textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
if (!vector_plot_add_string(symbol, textparts[1], 5, text_xposn, text_yposn, text_height,
textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = 67.0f + xoffset;
if (!vector_plot_add_string(symbol, textpart3, text_xposn, text_yposn, text_height,
textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = 95.0f + 5.0f + xoffset;
if (!vector_plot_add_string(symbol, textparts[2], 5, text_xposn, text_yposn, text_height,
textwidth, 0 /*left align*/, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = (95.0f - 0.35f) + 5.0f + xoffset;
textwidth = 6.2f;
if (!vector_plot_add_string(symbol, textpart4, text_xposn, text_yposn, upcae_outside_text_height,
textwidth, 1 /*left align*/, &last_string)) return ZINT_ERROR_MEMORY;
switch (ustrlen(addon)) {
case 2:
text_xposn = 105.0f + xoffset + addon_gap;
textwidth = 2.0f * 8.5f;
if (!vector_plot_add_string(symbol, addon, text_xposn, addon_text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
break;
case 5:
text_xposn = 119.0f + xoffset + addon_gap;
textwidth = 5.0f * 8.5f;
if (!vector_plot_add_string(symbol, addon, text_xposn, addon_text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
break;
if (!vector_plot_add_string(symbol, textparts[3], 1, text_xposn, text_yposn,
upcae_outside_text_height, textwidth, 1 /*left align*/,
&last_string)) return ZINT_ERROR_MEMORY;
if (addon_len) {
text_xposn = (addon_len == 2 ? 105.0f : 119.0f) + xoffset + addon_gap;
textwidth = addon_len * 8.5f;
if (!vector_plot_add_string(symbol, addon, addon_len, text_xposn, addon_text_yposn,
text_height, textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
}
} else { /* EAN-13 */
text_xposn = -5.0f + xoffset;
text_xposn = -(5.0f - 0.1f) + xoffset;
textwidth = 8.5f;
if (!vector_plot_add_string(symbol, textpart1, text_xposn, text_yposn,
if (!vector_plot_add_string(symbol, textparts[0], 1, text_xposn, text_yposn,
text_height, textwidth, 2 /*right align*/, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = 24.0f + xoffset;
text_xposn = (24.0f + 0.5f) + xoffset;
textwidth = 6.0f * 8.5f;
if (!vector_plot_add_string(symbol, textpart2, text_xposn, text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = 71.0f + xoffset;
if (!vector_plot_add_string(symbol, textpart3, text_xposn, text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
switch (ustrlen(addon)) {
case 2:
text_xposn = 105.0f + xoffset + addon_gap;
textwidth = 2.0f * 8.5f;
if (!vector_plot_add_string(symbol, addon, text_xposn, addon_text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
break;
case 5:
text_xposn = 119.0f + xoffset + addon_gap;
textwidth = 5.0f * 8.5f;
if (!vector_plot_add_string(symbol, addon, text_xposn, addon_text_yposn,
text_height, textwidth, 0, &last_string)) return ZINT_ERROR_MEMORY;
break;
if (!vector_plot_add_string(symbol, textparts[1], 6, text_xposn, text_yposn,
text_height, textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
text_xposn = (71.0f - 0.5f) + xoffset;
if (!vector_plot_add_string(symbol, textparts[2], 6, text_xposn, text_yposn,
text_height, textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
if (addon_len) {
text_xposn = (addon_len == 2 ? 105.0f : 119.0f) + xoffset + addon_gap;
textwidth = addon_len * 8.5f;
if (!vector_plot_add_string(symbol, addon, addon_len, text_xposn, addon_text_yposn,
text_height, textwidth, 0 /*centre align*/, &last_string)) return ZINT_ERROR_MEMORY;
}
}
} else {
/* Put normal human readable text at the bottom (and centered) */
/* calculate start xoffset to center text */
text_xposn = main_width / 2.0f + xoffset;
if (!vector_plot_add_string(symbol, symbol->text, text_xposn, text_yposn,
if (!vector_plot_add_string(symbol, symbol->text, -1, text_xposn, text_yposn,
text_height, symbol->width, 0, &last_string)) return ZINT_ERROR_MEMORY;
}

View file

@ -58,7 +58,7 @@ extern "C" {
};
struct zint_vector_string {
float x, y; /* Top with x relative to halign (i.e. centre, left, right) */
float x, y; /* x is relative to halign (i.e. centre, left, right), y is relative to baseline */
float fsize; /* Font size */
float width; /* Suggested string width, may be 0 if none recommended */
int length; /* Number of characters (bytes) */
@ -116,6 +116,7 @@ extern "C" {
int eci; /* Extended Channel Interpretation. Default 0 (none) */
float dpmm; /* Resolution of output in dots per mm (BMP/EMF/PCX/PNG/TIF only). Default 0 (none) */
float dot_size; /* Size of dots used in BARCODE_DOTTY_MODE. Default 0.8 */
float text_gap; /* Gap between barcode and text (HRT). 0 means use default (font-specific) */
float guard_descent; /* Height in X-dimensions that EAN/UPC guard bars descend. Default 5 */
struct zint_structapp structapp; /* Structured Append info. Default structapp.count 0 (none) */
int warn_level; /* Affects error/warning value returned by Zint API (see WARN_XXX below) */

View file

@ -35,8 +35,8 @@
#define QSL QStringLiteral
namespace Zint {
static const char fontStyle[] = "Helvetica";
static const char fontStyleError[] = "Helvetica";
static const QString fontFamily = QSL("Helvetica");
static const QString fontFamilyError = QSL("Helvetica");
static const int fontSizeError = 14; /* Point size */
static const int maxSegs = 256;
@ -130,6 +130,7 @@ namespace Zint {
maxBottom = circle->y + circle->diameter + circle->width;
}
}
// TODO: Strings?
}
@ -145,6 +146,7 @@ namespace Zint {
m_scale(1.0f),
m_dotty(false), m_dot_size(4.0f / 5.0f),
m_guardDescent(5.0f),
m_textGap(0.0f),
m_fgStr(QSL("000000")), m_bgStr(QSL("FFFFFF")), m_cmyk(false),
m_borderType(0), m_borderWidth(0),
m_whitespace(0), m_vwhitespace(0),
@ -229,6 +231,7 @@ namespace Zint {
m_zintSymbol->dpmm = m_dpmm;
m_zintSymbol->dot_size = m_dot_size;
m_zintSymbol->guard_descent = m_guardDescent;
m_zintSymbol->text_gap = m_textGap;
m_zintSymbol->structapp = m_structapp;
m_zintSymbol->warn_level = m_warn_level;
m_zintSymbol->debug = m_debug ? ZINT_DEBUG_PRINT : 0;
@ -566,6 +569,15 @@ namespace Zint {
}
}
/* Text gap */
float QZint::textGap() const {
return m_textGap;
}
void QZint::setTextGap(float textGap) {
m_textGap = textGap;
}
/* Show (true) or hide (false) Human Readable Text */
bool QZint::showText() const {
return m_show_hrt;
@ -913,7 +925,7 @@ namespace Zint {
if (m_error >= ZINT_ERROR) {
painter.setRenderHint(QPainter::Antialiasing);
QFont font(fontStyleError, fontSizeError);
QFont font(fontFamilyError, fontSizeError);
painter.setFont(font);
painter.drawText(paintRect, Qt::AlignCenter | Qt::TextWordWrap, m_lastError);
painter.restore();
@ -1043,9 +1055,8 @@ namespace Zint {
QPen p;
p.setColor(fgColor);
painter.setPen(p);
bool bold = (m_zintSymbol->output_options & BOLD_TEXT)
&& (!isExtendable() || (m_zintSymbol->output_options & SMALL_TEXT));
QFont font(fontStyle, -1 /*pointSize*/, bold ? QFont::Bold : -1);
bool bold = (m_zintSymbol->output_options & BOLD_TEXT) && !isExtendable();
QFont font(fontFamily, -1 /*pointSize*/, bold ? QFont::Bold : -1);
while (string) {
font.setPixelSize(string->fsize);
painter.setFont(font);
@ -1055,7 +1066,7 @@ namespace Zint {
painter.drawText(QPointF(string->x, string->y), content);
} else {
QFontMetrics fm(painter.fontMetrics());
int width = fm.boundingRect(content).width();
int width = fm.horizontalAdvance(content);
if (string->halign == 2) { /* Right align */
painter.drawText(QPointF(string->x - width, string->y), content);
} else { /* Centre align */
@ -1140,7 +1151,8 @@ namespace Zint {
const bool autoHeight, const float heightPerRow, const QString& outfile,
const QZintXdimDpVars *xdimdpVars) const {
QString cmd(win && !noEXE ? QSL("zint.exe") : QSL("zint"));
bool nobackground = bgColor().alpha() == 0;
const bool nobackground = bgColor().alpha() == 0;
const bool notext = hasHRT() && !showText();
char name_buf[32];
if (barcodeNames && ZBarcode_BarcodeName(m_symbol, name_buf) == 0) {
@ -1181,7 +1193,7 @@ namespace Zint {
if (!default_bind_top) {
arg_bool(cmd, "--bindtop", borderType() & BARCODE_BIND_TOP);
}
arg_bool(cmd, "--bold", fontSetting() & BOLD_TEXT);
arg_bool(cmd, "--bold", !notext && (fontSetting() & BOLD_TEXT) && !isExtendable());
if (!default_border) {
arg_int(cmd, "--border=", borderWidth());
}
@ -1265,7 +1277,7 @@ namespace Zint {
arg_bool(cmd, "--nobackground", nobackground);
arg_bool(cmd, "--noquietzones", hasDefaultQuietZones() && noQuietZones());
arg_bool(cmd, "--notext", hasHRT() && !showText());
arg_bool(cmd, "--notext", notext);
arg_data(cmd, longOptOnly ? "--output=" : "-o ", outfile, win);
if (m_symbol == BARCODE_MAXICODE || isComposite()) {
@ -1306,7 +1318,7 @@ namespace Zint {
arg_int(cmd, "--separator=", option3());
}
arg_bool(cmd, "--small", fontSetting() & SMALL_TEXT);
arg_bool(cmd, "--small", !notext && (fontSetting() & SMALL_TEXT));
if (m_symbol == BARCODE_DATAMATRIX || m_symbol == BARCODE_HIBC_DM) {
arg_bool(cmd, "--square", option3() == DM_SQUARE);
@ -1316,6 +1328,10 @@ namespace Zint {
arg_structapp(cmd, "--structapp=", structAppCount(), structAppIndex(), structAppID(), win);
}
if (!notext && textGap() != 0.0f) {
arg_float(cmd, "--textgap=", textGap(), true /*allowZero*/);
}
arg_bool(cmd, "--verbose", debug());
if (m_symbol == BARCODE_AZTEC || m_symbol == BARCODE_HIBC_AZTEC

View file

@ -165,6 +165,10 @@ public:
void setFontSetting(int fontSettingIndex); // Sets from comboBox index
void setFontSettingValue(int fontSetting); // Sets literal value
/* Text gap */
float textGap() const; // `symbol->text_gap`
void setTextGap(float textGap);
/* Show (true) or hide (false) Human Readable Text */
bool showText() const; // `symbol->show_hrt`
void setShowText(bool showText);
@ -355,6 +359,7 @@ private:
bool m_dotty;
float m_dot_size;
float m_guardDescent;
float m_textGap;
struct zint_structapp m_structapp;
QString m_fgStr;
QString m_bgStr;

View file

@ -127,6 +127,10 @@ private slots:
bc.setDotSize(dotSize);
QCOMPARE(bc.dotSize(), dotSize);
float textGap = 4.321f;
bc.setTextGap(textGap);
QCOMPARE(bc.textGap(), textGap);
float guardDescent = 0.678f;
bc.setGuardDescent(guardDescent);
QCOMPARE(bc.guardDescent(), guardDescent);
@ -526,6 +530,7 @@ private slots:
QTest::addColumn<float>("dpmm");
QTest::addColumn<bool>("dotty");
QTest::addColumn<float>("dotSize");
QTest::addColumn<float>("textGap");
QTest::addColumn<float>("guardDescent");
QTest::addColumn<int>("structAppCount");
@ -558,8 +563,8 @@ private slots:
QTest::addColumn<int>("warnLevel");
QTest::addColumn<bool>("debug");
QTest::addColumn<double>("xdimdp_xdim");
QTest::addColumn<int>("xdimdp_xdim_units");
QTest::addColumn<double>("xdimdp_x_dim");
QTest::addColumn<int>("xdimdp_x_dim_units");
QTest::addColumn<int>("xdimdp_resolution");
QTest::addColumn<int>("xdimdp_resolution_units");
QTest::addColumn<int>("xdimdp_filetype");
@ -575,7 +580,7 @@ private slots:
QTest::newRow("BARCODE_AUSPOST") << true << 0.0f << ""
<< BARCODE_AUSPOST << DATA_MODE // symbology-inputMode
<< "12345678" << "" // text-primary
<< 30.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 30.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -592,7 +597,7 @@ private slots:
QTest::newRow("BARCODE_AZTEC") << false << 0.0f << ""
<< BARCODE_AZTEC << UNICODE_MODE // symbology-inputMode
<< "12345678Ж0%var%" << "" // text-primary
<< 0.0f << 1 << 0 << 0 << 4.0f << 0.0f << true << 0.9f // height-dotSize
<< 0.0f << 1 << 0 << 0 << 4.0f << 0.0f << true << 0.9f << 0.0f // height-textGap
<< 5.0f << 2 << 1 << "as\"dfa'sdf" // guardDescent-structAppID
<< "" << "" << QColor(Qt::blue) << QColor(Qt::white) << true // fgStr-cmyk
<< 0 << 0 << 2 << 3 << 0 // borderTypeIndex-fontSetting
@ -608,7 +613,7 @@ private slots:
QTest::newRow("BARCODE_AZTEC") << false << 0.0f << ""
<< BARCODE_AZTEC << UNICODE_MODE // symbology-inputMode
<< "12345678Ж0%var%" << "" // text-primary
<< 0.0f << 1 << 0 << 0 << 4.0f << 0.0f << true << 0.9f // height-dotSize
<< 0.0f << 1 << 0 << 0 << 4.0f << 0.0f << true << 0.9f << 0.0f // height-textGap
<< 5.0f << 2 << 1 << "as\"dfa'sdf" // guardDescent-structAppID
<< "71,0,40,44" << "0,0,0,0" << QColor(Qt::black) << QColor(Qt::white) << true // fgStr-cmyk
<< 0 << 0 << 2 << 3 << 0 // borderTypeIndex-fontSetting
@ -624,7 +629,7 @@ private slots:
QTest::newRow("BARCODE_C25INTER") << true << 0.0f << ""
<< BARCODE_C25INTER << UNICODE_MODE // symbology-inputMode
<< "12345" << "" // text-primary
<< 0.0f << -1 << 2 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 0.0f << -1 << 2 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << SMALL_TEXT // borderTypeIndex-fontSetting
@ -638,7 +643,7 @@ private slots:
QTest::newRow("BARCODE_CHANNEL") << false << 0.0f << ""
<< BARCODE_CHANNEL << UNICODE_MODE // symbology-inputMode
<< "453678" << "" // text-primary
<< 19.7f << -1 << 7 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 19.7f << -1 << 7 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(255, 255, 255, 0) << false // fgStr-cmyk
<< 1 << 2 << 0 << 0 << BOLD_TEXT // borderTypeIndex-fontSetting
@ -654,7 +659,7 @@ private slots:
QTest::newRow("BARCODE_CHANNEL") << false << 0.0f << ""
<< BARCODE_CHANNEL << UNICODE_MODE // symbology-inputMode
<< "453678" << "" // text-primary
<< 19.7f << -1 << 7 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 19.7f << -1 << 7 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "FFFFFF00" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 1 << 2 << 0 << 0 << BOLD_TEXT // borderTypeIndex-fontSetting
@ -670,7 +675,7 @@ private slots:
QTest::newRow("BARCODE_CHANNEL") << false << 0.0f << ""
<< BARCODE_CHANNEL << UNICODE_MODE // symbology-inputMode
<< "453678" << "" // text-primary
<< 19.7f << -1 << 7 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 19.7f << -1 << 7 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "12345600" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 1 << 2 << 0 << 0 << BOLD_TEXT // borderTypeIndex-fontSetting
@ -686,7 +691,7 @@ private slots:
QTest::newRow("BARCODE_CODE128") << false << 0.0f << ""
<< BARCODE_CODE128 << (UNICODE_MODE | EXTRA_ESCAPE_MODE) // symbology-inputMode
<< "1234\\^A56" << "" // text-primary
<< 0.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 0.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -700,7 +705,7 @@ private slots:
QTest::newRow("BARCODE_GS1_128_CC") << false << 0.0f << ""
<< BARCODE_GS1_128_CC << UNICODE_MODE // symbology-inputMode
<< "[01]12345678901231[15]121212" << "[11]901222[99]ABCDE" // text-primary
<< 71.142f << 3 << 0 << 0 << 3.5f << 0.0f << false << 0.8f // height-dotSize
<< 71.142f << 3 << 0 << 0 << 3.5f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -716,7 +721,7 @@ private slots:
QTest::newRow("BARCODE_CODE16K") << false << 11.7f << ""
<< BARCODE_CODE16K << (UNICODE_MODE | HEIGHTPERROW_MODE) // symbology-inputMode
<< "12345678901234567890123456789012" << "" // text-primary
<< 0.0f << 4 << 0 << 2 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 0.0f << 4 << 0 << 2 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 1 << 1 << 0 << 0 << SMALL_TEXT // borderTypeIndex-fontSetting
@ -732,7 +737,7 @@ private slots:
QTest::newRow("BARCODE_CODE49") << true << 0.0f << ""
<< BARCODE_CODE49 << UNICODE_MODE // symbology-inputMode
<< "12345678901234567890" << "" // text-primary
<< 30.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 30.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -746,7 +751,7 @@ private slots:
QTest::newRow("BARCODE_CODABLOCKF") << true << 0.0f << ""
<< BARCODE_CODABLOCKF << (DATA_MODE | ESCAPE_MODE) // symbology-inputMode
<< "T\\n\\xA0t\\\"" << "" // text-primary
<< 0.0f << 2 << 5 << 3 << 3.0f << 0.0f << false << 0.8f // height-dotSize
<< 0.0f << 2 << 5 << 3 << 3.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 2 << 4 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -762,7 +767,7 @@ private slots:
QTest::newRow("BARCODE_DAFT") << false << 0.0f << ""
<< BARCODE_DAFT << UNICODE_MODE // symbology-inputMode
<< "daft" << "" // text-primary
<< 9.2f << -1 << 251 << 0 << 1.0f << 0.0f << false << 0.7f // height-dotSize
<< 9.2f << -1 << 251 << 0 << 1.0f << 0.0f << false << 0.7f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(0x30, 0x31, 0x32, 0x33) << QColor(0xBF, 0xBE, 0xBD, 0xBC) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -776,7 +781,7 @@ private slots:
QTest::newRow("BARCODE_DATAMATRIX") << true << 0.0f << ""
<< BARCODE_DATAMATRIX << GS1_MODE // symbology-inputMode
<< "[20]12" << "" // text-primary
<< 0.0f << -1 << 0 << DM_SQUARE << 1.0f << 0.0f << false << 0.7f // height-dotSize
<< 0.0f << -1 << 0 << DM_SQUARE << 1.0f << 0.0f << false << 0.7f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -790,7 +795,7 @@ private slots:
QTest::newRow("BARCODE_DATAMATRIX") << false << 0.0f << ""
<< BARCODE_DATAMATRIX << (DATA_MODE | ESCAPE_MODE | FAST_MODE) // symbology-inputMode
<< "ABCDEFGH\\x01I" << "" // text-primary
<< 0.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.7f // height-dotSize
<< 0.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.7f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -804,7 +809,7 @@ private slots:
QTest::newRow("BARCODE_DBAR_EXPSTK_CC") << false << 40.8f << ""
<< BARCODE_DBAR_EXPSTK_CC << (DATA_MODE | HEIGHTPERROW_MODE) // symbology-inputMode
<< "[91]ABCDEFGHIJKL" << "[11]901222[99]ABCDE" // text-primary
<< 0.0f << -1 << 0 << 2 << 1.0f << 0.0f << true << 0.9f // height-dotSize
<< 0.0f << -1 << 0 << 2 << 1.0f << 0.0f << true << 0.9f << 0.0f // height-textGap
<< 3.0f << 2 << 1 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -820,7 +825,7 @@ private slots:
QTest::newRow("BARCODE_DOTCODE") << false << 1.0f << ""
<< BARCODE_DOTCODE << GS1_MODE // symbology-inputMode
<< "[20]01" << "" // text-primary
<< 30.0f << -1 << 8 << ((0 + 1) << 8) << 1.0f << 0.0f << false << 0.7f // height-dotSize
<< 30.0f << -1 << 8 << ((0 + 1) << 8) << 1.0f << 0.0f << false << 0.7f << 0.0f // height-textGap
<< 0.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -834,7 +839,7 @@ private slots:
QTest::newRow("BARCODE_DOTCODE") << false << 1.0f << ""
<< BARCODE_DOTCODE << GS1_MODE // symbology-inputMode
<< "[20]01" << "" // text-primary
<< 30.0f << -1 << 8 << ((0 + 1) << 8) << 1.0f << 0.0f << false << 0.7f // height-dotSize
<< 30.0f << -1 << 8 << ((0 + 1) << 8) << 1.0f << 0.0f << false << 0.7f << 0.0f // height-textGap
<< 0.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -848,7 +853,7 @@ private slots:
QTest::newRow("BARCODE_DPD") << true << 0.0f << ""
<< BARCODE_DPD << UNICODE_MODE // symbology-inputMode
<< "1234567890123456789012345678" << "" // text-primary
<< 0.0f << -1 << 0 << 0 << 4.5f << 24.0f << true << 0.8f // height-dotSize
<< 0.0f << -1 << 0 << 0 << 4.5f << 24.0f << true << 0.8f << 0.0f // height-textGap
<< 0.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -863,7 +868,7 @@ private slots:
QTest::newRow("BARCODE_EANX") << true << 0.0f << ""
<< BARCODE_EANX << UNICODE_MODE // symbology-inputMode
<< "123456789012+12" << "" // text-primary
<< 0.0f << -1 << 8 << 0 << 1.0f << 0.0f << true << 0.8f // height-dotSize
<< 0.0f << -1 << 8 << 0 << 1.0f << 0.0f << true << 0.8f << 0.0f // height-textGap
<< 0.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -877,7 +882,7 @@ private slots:
QTest::newRow("BARCODE_GRIDMATRIX") << false << 0.0f << ""
<< BARCODE_GRIDMATRIX << UNICODE_MODE // symbology-inputMode
<< "Your Data Here!" << "" // text-primary
<< 0.0f << 1 << 5 << 0 << 0.5f << 0.0f << false << 0.8f // height-dotSize
<< 0.0f << 1 << 5 << 0 << 0.5f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -891,7 +896,7 @@ private slots:
QTest::newRow("BARCODE_HANXIN") << false << 0.0f << ""
<< BARCODE_HANXIN << (UNICODE_MODE | ESCAPE_MODE) // symbology-inputMode
<< "éβÿ啊\\e\"'" << "" // text-primary
<< 30.0f << 2 << 5 << ((0 + 1) << 8) << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 30.0f << 2 << 5 << ((0 + 1) << 8) << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -905,7 +910,7 @@ private slots:
QTest::newRow("BARCODE_HIBC_DM") << false << 10.0f << ""
<< BARCODE_HIBC_DM << UNICODE_MODE // symbology-inputMode
<< "1234" << "" // text-primary
<< 0.0f << -1 << 8 << DM_DMRE << 1.0f << 0.0f << false << 0.7f // height-dotSize
<< 0.0f << -1 << 8 << DM_DMRE << 1.0f << 0.0f << false << 0.7f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -919,7 +924,7 @@ private slots:
QTest::newRow("BARCODE_HIBC_PDF") << false << 0.0f << ""
<< BARCODE_HIBC_PDF << (DATA_MODE | HEIGHTPERROW_MODE) // symbology-inputMode
<< "TEXT" << "" // text-primary
<< 3.5f << 3 << 4 << 10 << 10.0f << 0.0f << false << 0.8f // height-dotSize
<< 3.5f << 3 << 4 << 10 << 10.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 2 << 1 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -935,7 +940,7 @@ private slots:
QTest::newRow("BARCODE_ITF14") << true << 0.0f << ""
<< BARCODE_ITF14 << UNICODE_MODE // symbology-inputMode
<< "9212320967145" << "" // text-primary
<< 30.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 30.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -949,7 +954,7 @@ private slots:
QTest::newRow("BARCODE_ITF14") << true << 0.0f << ""
<< BARCODE_ITF14 << UNICODE_MODE // symbology-inputMode
<< "9212320967145" << "" // text-primary
<< 30.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 30.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 1 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -964,7 +969,7 @@ private slots:
<< BARCODE_MAXICODE << (UNICODE_MODE | ESCAPE_MODE) // symbology-inputMode
<< "152382802840001"
<< "1Z00004951\\GUPSN\\G06X610\\G159\\G1234567\\G1/1\\G\\GY\\G1 MAIN ST\\GTOWN\\GNY\\R\\E" // text-primary
<< 0.0f << -1 << (96 + 1) << 0 << 2.5f << 0.0f << false << 0.8f // height-dotSize
<< 0.0f << -1 << (96 + 1) << 0 << 2.5f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -980,7 +985,7 @@ private slots:
QTest::newRow("BARCODE_MICROQR") << false << 0.0f << ""
<< BARCODE_MICROQR << UNICODE_MODE // symbology-inputMode
<< "1234" << "" // text-primary
<< 30.0f << 2 << 3 << (ZINT_FULL_MULTIBYTE | (3 + 1) << 8) << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 30.0f << 2 << 3 << (ZINT_FULL_MULTIBYTE | (3 + 1) << 8) << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -994,7 +999,7 @@ private slots:
QTest::newRow("BARCODE_QRCODE") << true << 0.0f << ""
<< BARCODE_QRCODE << GS1_MODE // symbology-inputMode
<< "(01)12" << "" // text-primary
<< 0.0f << 1 << 5 << (ZINT_FULL_MULTIBYTE | (0 + 1) << 8) << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 0.0f << 1 << 5 << (ZINT_FULL_MULTIBYTE | (0 + 1) << 8) << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -1010,7 +1015,7 @@ private slots:
QTest::newRow("BARCODE_RMQR") << true << 0.0f << ""
<< BARCODE_RMQR << UNICODE_MODE // symbology-inputMode
<< "" << "" // text-primary
<< 30.0f << -1 << 8 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 30.0f << -1 << 8 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -1024,7 +1029,7 @@ private slots:
QTest::newRow("BARCODE_ULTRA") << false << 0.0f << ""
<< BARCODE_ULTRA << (GS1_MODE | GS1PARENS_MODE | GS1NOCHECK_MODE) // symbology-inputMode
<< "(01)1" << "" // text-primary
<< 0.0f << 6 << 2 << 0 << 1.0f << 0.0f << true << 0.8f // height-dotSize
<< 0.0f << 6 << 2 << 0 << 1.0f << 0.0f << true << 0.8f << 0.0f // height-textGap
<< 5.0f << 2 << 1 << "4" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
@ -1038,37 +1043,51 @@ private slots:
QTest::newRow("BARCODE_UPCE_CC") << true << 0.0f << "out.svg"
<< BARCODE_UPCE_CC << UNICODE_MODE // symbology-inputMode
<< "12345670+1234" << "[11]901222[99]ABCDE" // text-primary
<< 0.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 0.0f << -1 << 0 << 0 << 1.0f << 0.0f << false << 0.8f << 0.0f // height-textGap
<< 6.5f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(0xEF, 0x29, 0x29) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << (BOLD_TEXT | SMALL_TEXT) // borderTypeIndex-fontSetting
<< true << false << false << true << true << 0 // showText-rotateAngle
<< 0 << false << false << false << WARN_FAIL_ALL << false // eci-debug
<< 0.0 << 0 << 0 << 0 << 0 << 0 // xdimdp
<< "zint -b 136 --bold --compliantheight -d '[11]901222[99]ABCDE' --fg=EF2929 --guarddescent=6.5"
<< "zint -b 136 --compliantheight -d '[11]901222[99]ABCDE' --fg=EF2929 --guarddescent=6.5"
" --noquietzones -o 'out.svg' --primary='12345670+1234' --small --werror"
<< "zint.exe -b 136 --bold --compliantheight -d \"[11]901222[99]ABCDE\" --fg=EF2929 --guarddescent=6.5"
<< "zint.exe -b 136 --compliantheight -d \"[11]901222[99]ABCDE\" --fg=EF2929 --guarddescent=6.5"
" --noquietzones -o \"out.svg\" --primary=\"12345670+1234\" --small --werror"
<< "zint --barcode=136 --bold --compliantheight --data='[11]901222[99]ABCDE' --fg=EF2929"
<< "zint --barcode=136 --compliantheight --data='[11]901222[99]ABCDE' --fg=EF2929"
" --guarddescent=6.5 --noquietzones --output='out.svg' --primary='12345670+1234' --small --werror"
<< "zint -b UPCE_CC --bold --compliantheight -d '[11]901222[99]ABCDE' --fg=EF2929 --guarddescent=6.5"
<< "zint -b UPCE_CC --compliantheight -d '[11]901222[99]ABCDE' --fg=EF2929 --guarddescent=6.5"
" --noquietzones -o 'out.svg' --primary='12345670+1234' --small --werror"
<< "zint -b 136 --bold --compliantheight -d \"[11]901222[99]ABCDE\" --fg=EF2929 --guarddescent=6.5"
<< "zint -b 136 --compliantheight -d \"[11]901222[99]ABCDE\" --fg=EF2929 --guarddescent=6.5"
" --noquietzones -o \"out.svg\" --primary=\"12345670+1234\" --small --werror"
<< "";
QTest::newRow("BARCODE_VIN") << false << 2.0f << ""
<< BARCODE_VIN << UNICODE_MODE // symbology-inputMode
<< "12345678701234567" << "" // text-primary
<< 20.0f << -1 << 1 << 0 << 1.0f << 0.0f << false << 0.8f // height-dotSize
<< 20.0f << -1 << 1 << 0 << 1.0f << 0.0f << false << 0.8f << 1.2f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << 0 // borderTypeIndex-fontSetting
<< 0 << 0 << 0 << 0 << (BOLD_TEXT | SMALL_TEXT) // borderTypeIndex-fontSetting
<< true << false << false << false << true << 0 // showText-rotateAngle
<< 0 << false << false << false << WARN_DEFAULT << false // eci-debug
<< 0.0 << 0 << 0 << 0 << 0 << 0 // xdimdp
<< "zint -b 73 -d '12345678701234567' --height=20 --vers=1"
<< "zint.exe -b 73 -d \"12345678701234567\" --height=20 --vers=1"
<< "zint -b 73 --bold -d '12345678701234567' --height=20 --small --textgap=1.2 --vers=1"
<< "zint.exe -b 73 --bold -d \"12345678701234567\" --height=20 --small --textgap=1.2 --vers=1"
<< "" << "" << "" << "";
QTest::newRow("BARCODE_VIN") << false << 2.0f << ""
<< BARCODE_VIN << UNICODE_MODE // symbology-inputMode
<< "12345678701234567" << "" // text-primary
<< 20.0f << -1 << 1 << 0 << 1.0f << 0.0f << false << 0.8f << 1.2f // height-textGap
<< 5.0f << 0 << 0 << "" // guardDescent-structAppID
<< "" << "" << QColor(Qt::black) << QColor(Qt::white) << false // fgStr-cmyk
<< 0 << 0 << 0 << 0 << (BOLD_TEXT | SMALL_TEXT) // borderTypeIndex-fontSetting
<< false << false << false << false << true << 0 // showText-rotateAngle
<< 0 << false << false << false << WARN_DEFAULT << false // eci-debug
<< 0.0 << 0 << 0 << 0 << 0 << 0 // xdimdp
<< "zint -b 73 -d '12345678701234567' --height=20 --notext --vers=1"
<< "zint.exe -b 73 -d \"12345678701234567\" --height=20 --notext --vers=1"
<< "" << "" << "" << "";
}
@ -1094,6 +1113,7 @@ private slots:
QFETCH(float, dpmm);
QFETCH(bool, dotty);
QFETCH(float, dotSize);
QFETCH(float, textGap);
QFETCH(float, guardDescent);
QFETCH(int, structAppCount);
QFETCH(int, structAppIndex);
@ -1121,8 +1141,8 @@ private slots:
QFETCH(int, warnLevel);
QFETCH(bool, debug);
QFETCH(double, xdimdp_xdim);
QFETCH(int, xdimdp_xdim_units);
QFETCH(double, xdimdp_x_dim);
QFETCH(int, xdimdp_x_dim_units);
QFETCH(int, xdimdp_resolution);
QFETCH(int, xdimdp_resolution_units);
QFETCH(int, xdimdp_filetype);
@ -1151,6 +1171,7 @@ private slots:
bc.setDPMM(dpmm);
bc.setDotty(dotty);
bc.setDotSize(dotSize);
bc.setTextGap(textGap);
bc.setGuardDescent(guardDescent);
bc.setStructApp(structAppCount, structAppIndex, structAppID);
if (fgStr.isEmpty()) {
@ -1208,11 +1229,16 @@ private slots:
QCOMPARE(cmd, expected_noexe);
}
if (xdimdp_xdim) {
struct Zint::QZintXdimDpVars vars = {
xdimdp_xdim, xdimdp_xdim_units, xdimdp_resolution, xdimdp_resolution_units, xdimdp_filetype,
xdimdp_filetype_maxicode, 1 /*set*/
};
if (xdimdp_x_dim) {
/* Avoid clang 14 error "no matching constructor for initialization" by initializing field-wise */
struct Zint::QZintXdimDpVars vars;
vars.x_dim = xdimdp_x_dim;
vars.x_dim_units = xdimdp_x_dim_units;
vars.resolution = xdimdp_resolution;
vars.resolution_units = xdimdp_resolution_units;
vars.filetype = xdimdp_filetype;
vars.filetype_maxicode = xdimdp_filetype_maxicode;
vars.set = 1;
cmd = bc.getAsCLI(false /*win*/, false /*longOptOnly*/, false /*barcodeNames*/, false /*noEXE*/,
autoHeight, heightPerRow, outfile, &vars);
QCOMPARE(cmd, expected_xdimdp);

Some files were not shown because too many files have changed in this diff Show more