Add whitespace_height to zint_symbol (vertical whitespace)
@ -1,7 +1,7 @@
|
||||
/* output.c - Common routines for raster/vector
|
||||
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2020 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2020 - 2021 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -418,8 +418,8 @@ INTERNAL void output_set_whitespace_offsets(struct zint_symbol *symbol, int *xof
|
||||
*roffset += symbol->border_width;
|
||||
}
|
||||
|
||||
*yoffset = qz_top;
|
||||
*boffset = qz_bottom;
|
||||
*yoffset = symbol->whitespace_height + qz_top;
|
||||
*boffset = symbol->whitespace_height + qz_bottom;
|
||||
if (symbol->output_options & (BARCODE_BOX | BARCODE_BIND)) {
|
||||
*yoffset += symbol->border_width;
|
||||
*boffset += symbol->border_width;
|
||||
|
@ -733,21 +733,22 @@ static int plot_raster_maxicode(struct zint_symbol *symbol, const int rotate_ang
|
||||
draw_bullseye(pixelbuf, image_width, image_height, hex_width, hex_height, hx_start, hx_end, hex_image_height,
|
||||
xoffset, yoffset, scaler);
|
||||
|
||||
if (symbol->border_width > 0) {
|
||||
const int border_scaled = (int) floorf(symbol->border_width * scaler);
|
||||
if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
|
||||
if (symbol->border_width > 0 && (symbol->output_options & (BARCODE_BOX | BARCODE_BIND))) {
|
||||
/* boundary bars */
|
||||
draw_bar(pixelbuf, 0, image_width, 0, border_scaled, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, 0, image_width, hex_image_height + border_scaled, border_scaled, image_width,
|
||||
image_height, DEFAULT_INK);
|
||||
}
|
||||
const int border_scaled = (int) floorf(symbol->border_width * scaler);
|
||||
const int vwhitesp_scaled = (int) floorf(symbol->whitespace_height * scaler);
|
||||
const int ybind_top = hex_image_height + border_scaled + vwhitesp_scaled;
|
||||
draw_bar(pixelbuf, 0, image_width, vwhitesp_scaled, border_scaled, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, 0, image_width, ybind_top, border_scaled, image_width, image_height, DEFAULT_INK);
|
||||
|
||||
if (symbol->output_options & BARCODE_BOX) {
|
||||
/* side bars */
|
||||
const int whitesp_scaled = (int) floorf(symbol->whitespace_width * scaler);
|
||||
draw_bar(pixelbuf, 0, border_scaled, 0, image_height, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, hex_image_width + border_scaled + whitesp_scaled * 2, border_scaled, 0, image_height,
|
||||
image_width, image_height, DEFAULT_INK);
|
||||
const int xbox_right = hex_image_width + border_scaled + whitesp_scaled * 2;
|
||||
const int ybox_top = border_scaled + vwhitesp_scaled;
|
||||
const int ylen = image_height - (border_scaled + vwhitesp_scaled) * 2;
|
||||
draw_bar(pixelbuf, 0, border_scaled, ybox_top, ylen, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, xbox_right, border_scaled, ybox_top, ylen, image_width, image_height, DEFAULT_INK);
|
||||
}
|
||||
}
|
||||
|
||||
@ -767,6 +768,38 @@ static int plot_raster_maxicode(struct zint_symbol *symbol, const int rotate_ang
|
||||
return error_number;
|
||||
}
|
||||
|
||||
/* Draw binding or box */
|
||||
static void draw_bind_box(struct zint_symbol *symbol, unsigned char *pixelbuf, const int xoffset, const int roffset,
|
||||
const int textoffset, const int overspill_scaled, const int image_width, const int image_height,
|
||||
const int si) {
|
||||
if (symbol->border_width > 0 && (symbol->output_options & (BARCODE_BOX | BARCODE_BIND))) {
|
||||
const int bwidth = symbol->border_width * si;
|
||||
const int ybind_bottom = (textoffset + symbol->whitespace_height) * si;
|
||||
const int ybind_top = (textoffset + symbol->whitespace_height + symbol->height) * si + overspill_scaled + bwidth;
|
||||
/* Horizontal boundary bars */
|
||||
if ((symbol->output_options & BARCODE_BOX)
|
||||
|| (symbol->symbology != BARCODE_CODABLOCKF && symbol->symbology != BARCODE_HIBC_BLOCKF)) {
|
||||
/* Box or not CodaBlockF */
|
||||
const int xlen = (symbol->width + xoffset + roffset) * si + overspill_scaled;
|
||||
draw_bar(pixelbuf, 0, xlen, ybind_bottom, bwidth, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, 0, xlen, ybind_top, bwidth, image_width, image_height, DEFAULT_INK);
|
||||
} else {
|
||||
/* CodaBlockF bind - does not extend over horizontal whitespace */
|
||||
const int xlen = symbol->width * si;
|
||||
draw_bar(pixelbuf, xoffset * si, xlen, ybind_bottom, bwidth, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, xoffset * si, xlen, ybind_top, bwidth, image_width, image_height, DEFAULT_INK);
|
||||
}
|
||||
if (symbol->output_options & BARCODE_BOX) {
|
||||
/* Vertical side bars */
|
||||
const int ylen = (symbol->height + symbol->border_width * 2) * si;
|
||||
const int ybox = (textoffset + symbol->whitespace_height) * si;
|
||||
const int xbox_right = (symbol->width + xoffset + roffset - symbol->border_width) * si + overspill_scaled;
|
||||
draw_bar(pixelbuf, 0, bwidth, ybox, ylen, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, xbox_right, bwidth, ybox, ylen, image_width, image_height, DEFAULT_INK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static int plot_raster_dotty(struct zint_symbol *symbol, const int rotate_angle, const int file_type) {
|
||||
float scaler = 2 * symbol->scale;
|
||||
unsigned char *scaled_pixelbuf;
|
||||
@ -824,7 +857,8 @@ static int plot_raster_dotty(struct zint_symbol *symbol, const int rotate_angle,
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: bind/box
|
||||
draw_bind_box(symbol, scaled_pixelbuf, xoffset, roffset, 0 /*textoffset*/, dot_overspill_scaled,
|
||||
scale_width, scale_height, (int) floorf(scaler));
|
||||
|
||||
error_number = save_raster_image_to_file(symbol, scale_height, scale_width, scaled_pixelbuf, rotate_angle, file_type);
|
||||
if (rotate_angle || file_type != OUT_BUFFER || !(symbol->output_options & OUT_BUFFER_INTERMEDIATE)) {
|
||||
@ -967,7 +1001,7 @@ static int plot_raster_default(struct zint_symbol *symbol, const int rotate_angl
|
||||
}
|
||||
memset(pixelbuf, DEFAULT_PAPER, (size_t) image_width * image_height);
|
||||
|
||||
default_text_posn = image_height - (textoffset - text_gap) * si;
|
||||
default_text_posn = image_height - (textoffset - text_gap + symbol->whitespace_height) * si;
|
||||
|
||||
row_height = 0.0f;
|
||||
row_posn = textoffset + boffset; /* Bottom up */
|
||||
@ -1212,7 +1246,7 @@ static int plot_raster_default(struct zint_symbol *symbol, const int rotate_angl
|
||||
xoffset -= comp_offset;
|
||||
|
||||
// Binding and boxes
|
||||
if ((symbol->output_options & BARCODE_BIND) != 0) {
|
||||
if (symbol->output_options & BARCODE_BIND) {
|
||||
if ((symbol->rows > 1) && (is_stackable(symbol->symbology) == 1)) {
|
||||
float sep_height = 1.0f;
|
||||
if (symbol->option_3 > 0 && symbol->option_3 <= 4) {
|
||||
@ -1235,29 +1269,8 @@ static int plot_raster_default(struct zint_symbol *symbol, const int rotate_angl
|
||||
}
|
||||
}
|
||||
}
|
||||
if (symbol->border_width > 0) {
|
||||
if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
|
||||
/* boundary bars */
|
||||
if ((symbol->output_options & BARCODE_BOX) || (symbol->symbology != BARCODE_CODABLOCKF && symbol->symbology != BARCODE_HIBC_BLOCKF)) {
|
||||
draw_bar(pixelbuf, 0, (symbol->width + xoffset + roffset) * si,
|
||||
textoffset * si, symbol->border_width * si, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, 0, (symbol->width + xoffset + roffset) * si,
|
||||
(textoffset + symbol->height + symbol->border_width) * si, symbol->border_width * si, image_width, image_height, DEFAULT_INK);
|
||||
} else {
|
||||
draw_bar(pixelbuf, xoffset * si, symbol->width * si,
|
||||
textoffset * si, symbol->border_width * si, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, xoffset * si, symbol->width * si,
|
||||
(textoffset + symbol->height + symbol->border_width) * si, symbol->border_width * si, image_width, image_height, DEFAULT_INK);
|
||||
}
|
||||
}
|
||||
if ((symbol->output_options & BARCODE_BOX)) {
|
||||
/* side bars */
|
||||
draw_bar(pixelbuf, 0, symbol->border_width * si,
|
||||
textoffset * si, (symbol->height + (2 * symbol->border_width)) * si, image_width, image_height, DEFAULT_INK);
|
||||
draw_bar(pixelbuf, (symbol->width + xoffset + roffset - symbol->border_width) * si, symbol->border_width * si,
|
||||
textoffset * si, (symbol->height + (2 * symbol->border_width)) * si, image_width, image_height, DEFAULT_INK);
|
||||
}
|
||||
}
|
||||
|
||||
draw_bind_box(symbol, pixelbuf, xoffset, roffset, textoffset, 0 /*overspill*/, image_width, image_height, si);
|
||||
|
||||
if (!half_int_scaling) {
|
||||
scale_width = image_width * scaler;
|
||||
|
BIN
backend/tests/data/bmp/pdf417comp_hvwsp2.bmp
Normal file
After Width: | Height: | Size: 942 B |
BIN
backend/tests/data/png/codablockf_hvwsp2.png
Normal file
After Width: | Height: | Size: 179 B |
BIN
backend/tests/data/png/codablockf_hvwsp2_box2.png
Normal file
After Width: | Height: | Size: 182 B |
BIN
backend/tests/data/png/code128_egrave_bold_hvwsp2_box2.png
Normal file
After Width: | Height: | Size: 233 B |
BIN
backend/tests/data/png/datamatrix_2.0_bind1_dotty.png
Normal file
After Width: | Height: | Size: 184 B |
BIN
backend/tests/data/png/datamatrix_2.0_hvwsp1_bind1_dotty.png
Normal file
After Width: | Height: | Size: 191 B |
BIN
backend/tests/data/png/maxicode_hvwsp1_box2.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
backend/tests/data/png/maxicode_vwsp1_bind1.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
63
backend/tests/data/svg/codablockf_hvwsp2.svg
Normal file
@ -0,0 +1,63 @@
|
||||
<?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="250" height="72" 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="250" height="72" fill="#FFFFFF" />
|
||||
<rect x="24.00" y="6.00" width="4.00" height="60.00" />
|
||||
<rect x="30.00" y="6.00" width="2.00" height="60.00" />
|
||||
<rect x="40.00" y="6.00" width="2.00" height="60.00" />
|
||||
<rect x="46.00" y="6.00" width="2.00" height="60.00" />
|
||||
<rect x="50.00" y="6.00" width="8.00" height="60.00" />
|
||||
<rect x="60.00" y="6.00" width="6.00" height="60.00" />
|
||||
<rect x="68.00" y="6.00" width="2.00" height="20.00" />
|
||||
<rect x="74.00" y="6.00" width="2.00" height="20.00" />
|
||||
<rect x="78.00" y="6.00" width="4.00" height="20.00" />
|
||||
<rect x="90.00" y="6.00" width="2.00" height="60.00" />
|
||||
<rect x="94.00" y="6.00" width="2.00" height="60.00" />
|
||||
<rect x="102.00" y="6.00" width="4.00" height="60.00" />
|
||||
<rect x="112.00" y="6.00" width="2.00" height="60.00" />
|
||||
<rect x="116.00" y="6.00" width="2.00" height="40.00" />
|
||||
<rect x="124.00" y="6.00" width="4.00" height="40.00" />
|
||||
<rect x="134.00" y="6.00" width="2.00" height="40.00" />
|
||||
<rect x="138.00" y="6.00" width="2.00" height="40.00" />
|
||||
<rect x="146.00" y="6.00" width="4.00" height="40.00" />
|
||||
<rect x="156.00" y="6.00" width="2.00" height="40.00" />
|
||||
<rect x="160.00" y="6.00" width="2.00" height="40.00" />
|
||||
<rect x="168.00" y="6.00" width="4.00" height="40.00" />
|
||||
<rect x="178.00" y="6.00" width="4.00" height="20.00" />
|
||||
<rect x="184.00" y="6.00" width="4.00" height="20.00" />
|
||||
<rect x="192.00" y="6.00" width="4.00" height="20.00" />
|
||||
<rect x="200.00" y="6.00" width="4.00" height="60.00" />
|
||||
<rect x="210.00" y="6.00" width="6.00" height="60.00" />
|
||||
<rect x="218.00" y="6.00" width="2.00" height="60.00" />
|
||||
<rect x="222.00" y="6.00" width="4.00" height="60.00" />
|
||||
<rect x="68.00" y="26.00" width="4.00" height="20.00" />
|
||||
<rect x="78.00" y="26.00" width="2.00" height="20.00" />
|
||||
<rect x="84.00" y="26.00" width="2.00" height="20.00" />
|
||||
<rect x="178.00" y="26.00" width="8.00" height="20.00" />
|
||||
<rect x="188.00" y="26.00" width="2.00" height="40.00" />
|
||||
<rect x="196.00" y="26.00" width="2.00" height="20.00" />
|
||||
<rect x="68.00" y="46.00" width="2.00" height="20.00" />
|
||||
<rect x="72.00" y="46.00" width="4.00" height="20.00" />
|
||||
<rect x="80.00" y="46.00" width="6.00" height="20.00" />
|
||||
<rect x="116.00" y="46.00" width="6.00" height="20.00" />
|
||||
<rect x="124.00" y="46.00" width="8.00" height="20.00" />
|
||||
<rect x="134.00" y="46.00" width="4.00" height="20.00" />
|
||||
<rect x="142.00" y="46.00" width="4.00" height="20.00" />
|
||||
<rect x="148.00" y="46.00" width="4.00" height="20.00" />
|
||||
<rect x="156.00" y="46.00" width="4.00" height="20.00" />
|
||||
<rect x="164.00" y="46.00" width="6.00" height="20.00" />
|
||||
<rect x="174.00" y="46.00" width="2.00" height="20.00" />
|
||||
<rect x="178.00" y="46.00" width="4.00" height="20.00" />
|
||||
<rect x="194.00" y="46.00" width="2.00" height="20.00" />
|
||||
<rect x="46.00" y="25.00" width="154.00" height="2.00" />
|
||||
<rect x="46.00" y="45.00" width="154.00" height="2.00" />
|
||||
<rect x="24.00" y="4.00" width="202.00" height="2.00" />
|
||||
<rect x="24.00" y="66.00" width="202.00" height="2.00" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
65
backend/tests/data/svg/codablockf_hvwsp2_box2.svg
Normal file
@ -0,0 +1,65 @@
|
||||
<?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="258" height="76" 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="258" height="76" fill="#FFFFFF" />
|
||||
<rect x="28.00" y="8.00" width="4.00" height="60.00" />
|
||||
<rect x="34.00" y="8.00" width="2.00" height="60.00" />
|
||||
<rect x="44.00" y="8.00" width="2.00" height="60.00" />
|
||||
<rect x="50.00" y="8.00" width="2.00" height="60.00" />
|
||||
<rect x="54.00" y="8.00" width="8.00" height="60.00" />
|
||||
<rect x="64.00" y="8.00" width="6.00" height="60.00" />
|
||||
<rect x="72.00" y="8.00" width="2.00" height="20.00" />
|
||||
<rect x="78.00" y="8.00" width="2.00" height="20.00" />
|
||||
<rect x="82.00" y="8.00" width="4.00" height="20.00" />
|
||||
<rect x="94.00" y="8.00" width="2.00" height="60.00" />
|
||||
<rect x="98.00" y="8.00" width="2.00" height="60.00" />
|
||||
<rect x="106.00" y="8.00" width="4.00" height="60.00" />
|
||||
<rect x="116.00" y="8.00" width="2.00" height="60.00" />
|
||||
<rect x="120.00" y="8.00" width="2.00" height="40.00" />
|
||||
<rect x="128.00" y="8.00" width="4.00" height="40.00" />
|
||||
<rect x="138.00" y="8.00" width="2.00" height="40.00" />
|
||||
<rect x="142.00" y="8.00" width="2.00" height="40.00" />
|
||||
<rect x="150.00" y="8.00" width="4.00" height="40.00" />
|
||||
<rect x="160.00" y="8.00" width="2.00" height="40.00" />
|
||||
<rect x="164.00" y="8.00" width="2.00" height="40.00" />
|
||||
<rect x="172.00" y="8.00" width="4.00" height="40.00" />
|
||||
<rect x="182.00" y="8.00" width="4.00" height="20.00" />
|
||||
<rect x="188.00" y="8.00" width="4.00" height="20.00" />
|
||||
<rect x="196.00" y="8.00" width="4.00" height="20.00" />
|
||||
<rect x="204.00" y="8.00" width="4.00" height="60.00" />
|
||||
<rect x="214.00" y="8.00" width="6.00" height="60.00" />
|
||||
<rect x="222.00" y="8.00" width="2.00" height="60.00" />
|
||||
<rect x="226.00" y="8.00" width="4.00" height="60.00" />
|
||||
<rect x="72.00" y="28.00" width="4.00" height="20.00" />
|
||||
<rect x="82.00" y="28.00" width="2.00" height="20.00" />
|
||||
<rect x="88.00" y="28.00" width="2.00" height="20.00" />
|
||||
<rect x="182.00" y="28.00" width="8.00" height="20.00" />
|
||||
<rect x="192.00" y="28.00" width="2.00" height="40.00" />
|
||||
<rect x="200.00" y="28.00" width="2.00" height="20.00" />
|
||||
<rect x="72.00" y="48.00" width="2.00" height="20.00" />
|
||||
<rect x="76.00" y="48.00" width="4.00" height="20.00" />
|
||||
<rect x="84.00" y="48.00" width="6.00" height="20.00" />
|
||||
<rect x="120.00" y="48.00" width="6.00" height="20.00" />
|
||||
<rect x="128.00" y="48.00" width="8.00" height="20.00" />
|
||||
<rect x="138.00" y="48.00" width="4.00" height="20.00" />
|
||||
<rect x="146.00" y="48.00" width="4.00" height="20.00" />
|
||||
<rect x="152.00" y="48.00" width="4.00" height="20.00" />
|
||||
<rect x="160.00" y="48.00" width="4.00" height="20.00" />
|
||||
<rect x="168.00" y="48.00" width="6.00" height="20.00" />
|
||||
<rect x="178.00" y="48.00" width="2.00" height="20.00" />
|
||||
<rect x="182.00" y="48.00" width="4.00" height="20.00" />
|
||||
<rect x="198.00" y="48.00" width="2.00" height="20.00" />
|
||||
<rect x="50.00" y="27.00" width="154.00" height="2.00" />
|
||||
<rect x="50.00" y="47.00" width="154.00" height="2.00" />
|
||||
<rect x="0.00" y="4.00" width="258.00" height="4.00" />
|
||||
<rect x="0.00" y="68.00" width="258.00" height="4.00" />
|
||||
<rect x="0.00" y="8.00" width="4.00" height="60.00" />
|
||||
<rect x="254.00" y="8.00" width="4.00" height="60.00" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
@ -41,8 +41,8 @@
|
||||
<rect x="226.00" y="6.00" width="4.00" height="100.00" />
|
||||
<rect x="0.00" y="0.00" width="236.00" height="6.00" />
|
||||
<rect x="0.00" y="106.00" width="236.00" height="6.00" />
|
||||
<rect x="0.00" y="0.00" width="6.00" height="112.00" />
|
||||
<rect x="230.00" y="0.00" width="6.00" height="112.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"
|
||||
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
|
||||
Égjpqy
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
51
backend/tests/data/svg/code128_egrave_bold_hvwsp2_box2.svg
Normal file
@ -0,0 +1,51 @@
|
||||
<?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="240" height="135" 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="240" height="135" fill="#FFFFFF" />
|
||||
<rect x="8.00" y="8.00" width="4.00" height="100.00" />
|
||||
<rect x="14.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="20.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="30.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="34.00" y="8.00" width="8.00" height="100.00" />
|
||||
<rect x="44.00" y="8.00" width="6.00" height="100.00" />
|
||||
<rect x="52.00" y="8.00" width="4.00" height="100.00" />
|
||||
<rect x="62.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="70.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="74.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="80.00" y="8.00" width="4.00" height="100.00" />
|
||||
<rect x="86.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="96.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="106.00" y="8.00" width="4.00" height="100.00" />
|
||||
<rect x="114.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="118.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="122.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="128.00" y="8.00" width="8.00" height="100.00" />
|
||||
<rect x="140.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="146.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="150.00" y="8.00" width="8.00" height="100.00" />
|
||||
<rect x="162.00" y="8.00" width="4.00" height="100.00" />
|
||||
<rect x="168.00" y="8.00" width="4.00" height="100.00" />
|
||||
<rect x="174.00" y="8.00" width="8.00" height="100.00" />
|
||||
<rect x="184.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="192.00" y="8.00" width="4.00" height="100.00" />
|
||||
<rect x="202.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="206.00" y="8.00" width="4.00" height="100.00" />
|
||||
<rect x="216.00" y="8.00" width="6.00" height="100.00" />
|
||||
<rect x="224.00" y="8.00" width="2.00" height="100.00" />
|
||||
<rect x="228.00" y="8.00" width="4.00" height="100.00" />
|
||||
<rect x="0.00" y="4.00" width="240.00" height="4.00" />
|
||||
<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"
|
||||
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
|
||||
Égjpqy
|
||||
</text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
47
backend/tests/data/svg/code128_egrave_bold_hvwsp3.svg
Normal file
@ -0,0 +1,47 @@
|
||||
<?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="236" height="131" 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="236" height="131" fill="#FFFFFF" />
|
||||
<rect x="6.00" y="6.00" width="4.00" height="100.00" />
|
||||
<rect x="12.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="18.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="28.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="32.00" y="6.00" width="8.00" height="100.00" />
|
||||
<rect x="42.00" y="6.00" width="6.00" height="100.00" />
|
||||
<rect x="50.00" y="6.00" width="4.00" height="100.00" />
|
||||
<rect x="60.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="68.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="72.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="78.00" y="6.00" width="4.00" height="100.00" />
|
||||
<rect x="84.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="94.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="104.00" y="6.00" width="4.00" height="100.00" />
|
||||
<rect x="112.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="116.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="120.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="126.00" y="6.00" width="8.00" height="100.00" />
|
||||
<rect x="138.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="144.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="148.00" y="6.00" width="8.00" height="100.00" />
|
||||
<rect x="160.00" y="6.00" width="4.00" height="100.00" />
|
||||
<rect x="166.00" y="6.00" width="4.00" height="100.00" />
|
||||
<rect x="172.00" y="6.00" width="8.00" height="100.00" />
|
||||
<rect x="182.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="190.00" y="6.00" width="4.00" height="100.00" />
|
||||
<rect x="200.00" y="6.00" width="2.00" height="100.00" />
|
||||
<rect x="204.00" y="6.00" width="4.00" height="100.00" />
|
||||
<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"
|
||||
font-family="Helvetica, sans-serif" font-size="14.0" font-weight="bold" >
|
||||
Égjpqy
|
||||
</text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
219
backend/tests/data/svg/datamatrix_hvwsp1_bind1_dotty.svg
Normal file
@ -0,0 +1,219 @@
|
||||
<?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="44" height="48" 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="44" height="48" fill="#FFFFFF" />
|
||||
<rect x="0.00" y="2.00" width="44.00" height="2.00" />
|
||||
<rect x="0.00" y="44.00" width="44.00" height="2.00" />
|
||||
<circle cx="3.00" cy="5.00" r="0.80" />
|
||||
<circle cx="7.00" cy="5.00" r="0.80" />
|
||||
<circle cx="11.00" cy="5.00" r="0.80" />
|
||||
<circle cx="15.00" cy="5.00" r="0.80" />
|
||||
<circle cx="19.00" cy="5.00" r="0.80" />
|
||||
<circle cx="23.00" cy="5.00" r="0.80" />
|
||||
<circle cx="27.00" cy="5.00" r="0.80" />
|
||||
<circle cx="31.00" cy="5.00" r="0.80" />
|
||||
<circle cx="35.00" cy="5.00" r="0.80" />
|
||||
<circle cx="39.00" cy="5.00" r="0.80" />
|
||||
<circle cx="3.00" cy="7.00" r="0.80" />
|
||||
<circle cx="7.00" cy="7.00" r="0.80" />
|
||||
<circle cx="13.00" cy="7.00" r="0.80" />
|
||||
<circle cx="15.00" cy="7.00" r="0.80" />
|
||||
<circle cx="19.00" cy="7.00" r="0.80" />
|
||||
<circle cx="25.00" cy="7.00" r="0.80" />
|
||||
<circle cx="29.00" cy="7.00" r="0.80" />
|
||||
<circle cx="35.00" cy="7.00" r="0.80" />
|
||||
<circle cx="37.00" cy="7.00" r="0.80" />
|
||||
<circle cx="39.00" cy="7.00" r="0.80" />
|
||||
<circle cx="41.00" cy="7.00" r="0.80" />
|
||||
<circle cx="3.00" cy="9.00" r="0.80" />
|
||||
<circle cx="7.00" cy="9.00" r="0.80" />
|
||||
<circle cx="9.00" cy="9.00" r="0.80" />
|
||||
<circle cx="15.00" cy="9.00" r="0.80" />
|
||||
<circle cx="19.00" cy="9.00" r="0.80" />
|
||||
<circle cx="23.00" cy="9.00" r="0.80" />
|
||||
<circle cx="27.00" cy="9.00" r="0.80" />
|
||||
<circle cx="29.00" cy="9.00" r="0.80" />
|
||||
<circle cx="33.00" cy="9.00" r="0.80" />
|
||||
<circle cx="35.00" cy="9.00" r="0.80" />
|
||||
<circle cx="37.00" cy="9.00" r="0.80" />
|
||||
<circle cx="3.00" cy="11.00" r="0.80" />
|
||||
<circle cx="9.00" cy="11.00" r="0.80" />
|
||||
<circle cx="11.00" cy="11.00" r="0.80" />
|
||||
<circle cx="17.00" cy="11.00" r="0.80" />
|
||||
<circle cx="27.00" cy="11.00" r="0.80" />
|
||||
<circle cx="33.00" cy="11.00" r="0.80" />
|
||||
<circle cx="37.00" cy="11.00" r="0.80" />
|
||||
<circle cx="39.00" cy="11.00" r="0.80" />
|
||||
<circle cx="41.00" cy="11.00" r="0.80" />
|
||||
<circle cx="3.00" cy="13.00" r="0.80" />
|
||||
<circle cx="7.00" cy="13.00" r="0.80" />
|
||||
<circle cx="11.00" cy="13.00" r="0.80" />
|
||||
<circle cx="17.00" cy="13.00" r="0.80" />
|
||||
<circle cx="19.00" cy="13.00" r="0.80" />
|
||||
<circle cx="21.00" cy="13.00" r="0.80" />
|
||||
<circle cx="23.00" cy="13.00" r="0.80" />
|
||||
<circle cx="35.00" cy="13.00" r="0.80" />
|
||||
<circle cx="3.00" cy="15.00" r="0.80" />
|
||||
<circle cx="13.00" cy="15.00" r="0.80" />
|
||||
<circle cx="15.00" cy="15.00" r="0.80" />
|
||||
<circle cx="19.00" cy="15.00" r="0.80" />
|
||||
<circle cx="41.00" cy="15.00" r="0.80" />
|
||||
<circle cx="3.00" cy="17.00" r="0.80" />
|
||||
<circle cx="5.00" cy="17.00" r="0.80" />
|
||||
<circle cx="15.00" cy="17.00" r="0.80" />
|
||||
<circle cx="19.00" cy="17.00" r="0.80" />
|
||||
<circle cx="21.00" cy="17.00" r="0.80" />
|
||||
<circle cx="23.00" cy="17.00" r="0.80" />
|
||||
<circle cx="25.00" cy="17.00" r="0.80" />
|
||||
<circle cx="29.00" cy="17.00" r="0.80" />
|
||||
<circle cx="33.00" cy="17.00" r="0.80" />
|
||||
<circle cx="37.00" cy="17.00" r="0.80" />
|
||||
<circle cx="39.00" cy="17.00" r="0.80" />
|
||||
<circle cx="3.00" cy="19.00" r="0.80" />
|
||||
<circle cx="5.00" cy="19.00" r="0.80" />
|
||||
<circle cx="7.00" cy="19.00" r="0.80" />
|
||||
<circle cx="9.00" cy="19.00" r="0.80" />
|
||||
<circle cx="13.00" cy="19.00" r="0.80" />
|
||||
<circle cx="17.00" cy="19.00" r="0.80" />
|
||||
<circle cx="19.00" cy="19.00" r="0.80" />
|
||||
<circle cx="21.00" cy="19.00" r="0.80" />
|
||||
<circle cx="23.00" cy="19.00" r="0.80" />
|
||||
<circle cx="25.00" cy="19.00" r="0.80" />
|
||||
<circle cx="37.00" cy="19.00" r="0.80" />
|
||||
<circle cx="41.00" cy="19.00" r="0.80" />
|
||||
<circle cx="3.00" cy="21.00" r="0.80" />
|
||||
<circle cx="5.00" cy="21.00" r="0.80" />
|
||||
<circle cx="7.00" cy="21.00" r="0.80" />
|
||||
<circle cx="9.00" cy="21.00" r="0.80" />
|
||||
<circle cx="17.00" cy="21.00" r="0.80" />
|
||||
<circle cx="19.00" cy="21.00" r="0.80" />
|
||||
<circle cx="21.00" cy="21.00" r="0.80" />
|
||||
<circle cx="27.00" cy="21.00" r="0.80" />
|
||||
<circle cx="35.00" cy="21.00" r="0.80" />
|
||||
<circle cx="37.00" cy="21.00" r="0.80" />
|
||||
<circle cx="3.00" cy="23.00" r="0.80" />
|
||||
<circle cx="5.00" cy="23.00" r="0.80" />
|
||||
<circle cx="9.00" cy="23.00" r="0.80" />
|
||||
<circle cx="11.00" cy="23.00" r="0.80" />
|
||||
<circle cx="17.00" cy="23.00" r="0.80" />
|
||||
<circle cx="19.00" cy="23.00" r="0.80" />
|
||||
<circle cx="35.00" cy="23.00" r="0.80" />
|
||||
<circle cx="37.00" cy="23.00" r="0.80" />
|
||||
<circle cx="41.00" cy="23.00" r="0.80" />
|
||||
<circle cx="3.00" cy="25.00" r="0.80" />
|
||||
<circle cx="7.00" cy="25.00" r="0.80" />
|
||||
<circle cx="9.00" cy="25.00" r="0.80" />
|
||||
<circle cx="13.00" cy="25.00" r="0.80" />
|
||||
<circle cx="17.00" cy="25.00" r="0.80" />
|
||||
<circle cx="21.00" cy="25.00" r="0.80" />
|
||||
<circle cx="23.00" cy="25.00" r="0.80" />
|
||||
<circle cx="25.00" cy="25.00" r="0.80" />
|
||||
<circle cx="29.00" cy="25.00" r="0.80" />
|
||||
<circle cx="31.00" cy="25.00" r="0.80" />
|
||||
<circle cx="35.00" cy="25.00" r="0.80" />
|
||||
<circle cx="39.00" cy="25.00" r="0.80" />
|
||||
<circle cx="3.00" cy="27.00" r="0.80" />
|
||||
<circle cx="7.00" cy="27.00" r="0.80" />
|
||||
<circle cx="13.00" cy="27.00" r="0.80" />
|
||||
<circle cx="15.00" cy="27.00" r="0.80" />
|
||||
<circle cx="19.00" cy="27.00" r="0.80" />
|
||||
<circle cx="21.00" cy="27.00" r="0.80" />
|
||||
<circle cx="33.00" cy="27.00" r="0.80" />
|
||||
<circle cx="39.00" cy="27.00" r="0.80" />
|
||||
<circle cx="41.00" cy="27.00" r="0.80" />
|
||||
<circle cx="3.00" cy="29.00" r="0.80" />
|
||||
<circle cx="7.00" cy="29.00" r="0.80" />
|
||||
<circle cx="13.00" cy="29.00" r="0.80" />
|
||||
<circle cx="15.00" cy="29.00" r="0.80" />
|
||||
<circle cx="17.00" cy="29.00" r="0.80" />
|
||||
<circle cx="19.00" cy="29.00" r="0.80" />
|
||||
<circle cx="29.00" cy="29.00" r="0.80" />
|
||||
<circle cx="33.00" cy="29.00" r="0.80" />
|
||||
<circle cx="3.00" cy="31.00" r="0.80" />
|
||||
<circle cx="5.00" cy="31.00" r="0.80" />
|
||||
<circle cx="15.00" cy="31.00" r="0.80" />
|
||||
<circle cx="17.00" cy="31.00" r="0.80" />
|
||||
<circle cx="25.00" cy="31.00" r="0.80" />
|
||||
<circle cx="27.00" cy="31.00" r="0.80" />
|
||||
<circle cx="37.00" cy="31.00" r="0.80" />
|
||||
<circle cx="39.00" cy="31.00" r="0.80" />
|
||||
<circle cx="41.00" cy="31.00" r="0.80" />
|
||||
<circle cx="3.00" cy="33.00" r="0.80" />
|
||||
<circle cx="5.00" cy="33.00" r="0.80" />
|
||||
<circle cx="11.00" cy="33.00" r="0.80" />
|
||||
<circle cx="13.00" cy="33.00" r="0.80" />
|
||||
<circle cx="17.00" cy="33.00" r="0.80" />
|
||||
<circle cx="19.00" cy="33.00" r="0.80" />
|
||||
<circle cx="27.00" cy="33.00" r="0.80" />
|
||||
<circle cx="37.00" cy="33.00" r="0.80" />
|
||||
<circle cx="39.00" cy="33.00" r="0.80" />
|
||||
<circle cx="3.00" cy="35.00" r="0.80" />
|
||||
<circle cx="5.00" cy="35.00" r="0.80" />
|
||||
<circle cx="13.00" cy="35.00" r="0.80" />
|
||||
<circle cx="15.00" cy="35.00" r="0.80" />
|
||||
<circle cx="17.00" cy="35.00" r="0.80" />
|
||||
<circle cx="23.00" cy="35.00" r="0.80" />
|
||||
<circle cx="29.00" cy="35.00" r="0.80" />
|
||||
<circle cx="37.00" cy="35.00" r="0.80" />
|
||||
<circle cx="39.00" cy="35.00" r="0.80" />
|
||||
<circle cx="41.00" cy="35.00" r="0.80" />
|
||||
<circle cx="3.00" cy="37.00" r="0.80" />
|
||||
<circle cx="5.00" cy="37.00" r="0.80" />
|
||||
<circle cx="13.00" cy="37.00" r="0.80" />
|
||||
<circle cx="17.00" cy="37.00" r="0.80" />
|
||||
<circle cx="21.00" cy="37.00" r="0.80" />
|
||||
<circle cx="23.00" cy="37.00" r="0.80" />
|
||||
<circle cx="25.00" cy="37.00" r="0.80" />
|
||||
<circle cx="27.00" cy="37.00" r="0.80" />
|
||||
<circle cx="29.00" cy="37.00" r="0.80" />
|
||||
<circle cx="31.00" cy="37.00" r="0.80" />
|
||||
<circle cx="35.00" cy="37.00" r="0.80" />
|
||||
<circle cx="3.00" cy="39.00" r="0.80" />
|
||||
<circle cx="5.00" cy="39.00" r="0.80" />
|
||||
<circle cx="7.00" cy="39.00" r="0.80" />
|
||||
<circle cx="9.00" cy="39.00" r="0.80" />
|
||||
<circle cx="11.00" cy="39.00" r="0.80" />
|
||||
<circle cx="21.00" cy="39.00" r="0.80" />
|
||||
<circle cx="23.00" cy="39.00" r="0.80" />
|
||||
<circle cx="29.00" cy="39.00" r="0.80" />
|
||||
<circle cx="31.00" cy="39.00" r="0.80" />
|
||||
<circle cx="33.00" cy="39.00" r="0.80" />
|
||||
<circle cx="37.00" cy="39.00" r="0.80" />
|
||||
<circle cx="41.00" cy="39.00" r="0.80" />
|
||||
<circle cx="3.00" cy="41.00" r="0.80" />
|
||||
<circle cx="5.00" cy="41.00" r="0.80" />
|
||||
<circle cx="9.00" cy="41.00" r="0.80" />
|
||||
<circle cx="13.00" cy="41.00" r="0.80" />
|
||||
<circle cx="17.00" cy="41.00" r="0.80" />
|
||||
<circle cx="25.00" cy="41.00" r="0.80" />
|
||||
<circle cx="29.00" cy="41.00" r="0.80" />
|
||||
<circle cx="33.00" cy="41.00" r="0.80" />
|
||||
<circle cx="39.00" cy="41.00" r="0.80" />
|
||||
<circle cx="3.00" cy="43.00" r="0.80" />
|
||||
<circle cx="5.00" cy="43.00" r="0.80" />
|
||||
<circle cx="7.00" cy="43.00" r="0.80" />
|
||||
<circle cx="9.00" cy="43.00" r="0.80" />
|
||||
<circle cx="11.00" cy="43.00" r="0.80" />
|
||||
<circle cx="13.00" cy="43.00" r="0.80" />
|
||||
<circle cx="15.00" cy="43.00" r="0.80" />
|
||||
<circle cx="17.00" cy="43.00" r="0.80" />
|
||||
<circle cx="19.00" cy="43.00" r="0.80" />
|
||||
<circle cx="21.00" cy="43.00" r="0.80" />
|
||||
<circle cx="23.00" cy="43.00" r="0.80" />
|
||||
<circle cx="25.00" cy="43.00" r="0.80" />
|
||||
<circle cx="27.00" cy="43.00" r="0.80" />
|
||||
<circle cx="29.00" cy="43.00" r="0.80" />
|
||||
<circle cx="31.00" cy="43.00" r="0.80" />
|
||||
<circle cx="33.00" cy="43.00" r="0.80" />
|
||||
<circle cx="35.00" cy="43.00" r="0.80" />
|
||||
<circle cx="37.00" cy="43.00" r="0.80" />
|
||||
<circle cx="39.00" cy="43.00" r="0.80" />
|
||||
<circle cx="41.00" cy="43.00" r="0.80" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 10 KiB |
219
backend/tests/data/svg/datamatrix_vwsp1_bind1_dotty.svg
Normal file
@ -0,0 +1,219 @@
|
||||
<?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="40" height="48" 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="40" height="48" fill="#FFFFFF" />
|
||||
<rect x="0.00" y="2.00" width="40.00" height="2.00" />
|
||||
<rect x="0.00" y="44.00" width="40.00" height="2.00" />
|
||||
<circle cx="1.00" cy="5.00" r="0.80" />
|
||||
<circle cx="5.00" cy="5.00" r="0.80" />
|
||||
<circle cx="9.00" cy="5.00" r="0.80" />
|
||||
<circle cx="13.00" cy="5.00" r="0.80" />
|
||||
<circle cx="17.00" cy="5.00" r="0.80" />
|
||||
<circle cx="21.00" cy="5.00" r="0.80" />
|
||||
<circle cx="25.00" cy="5.00" r="0.80" />
|
||||
<circle cx="29.00" cy="5.00" r="0.80" />
|
||||
<circle cx="33.00" cy="5.00" r="0.80" />
|
||||
<circle cx="37.00" cy="5.00" r="0.80" />
|
||||
<circle cx="1.00" cy="7.00" r="0.80" />
|
||||
<circle cx="5.00" cy="7.00" r="0.80" />
|
||||
<circle cx="11.00" cy="7.00" r="0.80" />
|
||||
<circle cx="13.00" cy="7.00" r="0.80" />
|
||||
<circle cx="17.00" cy="7.00" r="0.80" />
|
||||
<circle cx="23.00" cy="7.00" r="0.80" />
|
||||
<circle cx="27.00" cy="7.00" r="0.80" />
|
||||
<circle cx="33.00" cy="7.00" r="0.80" />
|
||||
<circle cx="35.00" cy="7.00" r="0.80" />
|
||||
<circle cx="37.00" cy="7.00" r="0.80" />
|
||||
<circle cx="39.00" cy="7.00" r="0.80" />
|
||||
<circle cx="1.00" cy="9.00" r="0.80" />
|
||||
<circle cx="5.00" cy="9.00" r="0.80" />
|
||||
<circle cx="7.00" cy="9.00" r="0.80" />
|
||||
<circle cx="13.00" cy="9.00" r="0.80" />
|
||||
<circle cx="17.00" cy="9.00" r="0.80" />
|
||||
<circle cx="21.00" cy="9.00" r="0.80" />
|
||||
<circle cx="25.00" cy="9.00" r="0.80" />
|
||||
<circle cx="27.00" cy="9.00" r="0.80" />
|
||||
<circle cx="31.00" cy="9.00" r="0.80" />
|
||||
<circle cx="33.00" cy="9.00" r="0.80" />
|
||||
<circle cx="35.00" cy="9.00" r="0.80" />
|
||||
<circle cx="1.00" cy="11.00" r="0.80" />
|
||||
<circle cx="7.00" cy="11.00" r="0.80" />
|
||||
<circle cx="9.00" cy="11.00" r="0.80" />
|
||||
<circle cx="15.00" cy="11.00" r="0.80" />
|
||||
<circle cx="25.00" cy="11.00" r="0.80" />
|
||||
<circle cx="31.00" cy="11.00" r="0.80" />
|
||||
<circle cx="35.00" cy="11.00" r="0.80" />
|
||||
<circle cx="37.00" cy="11.00" r="0.80" />
|
||||
<circle cx="39.00" cy="11.00" r="0.80" />
|
||||
<circle cx="1.00" cy="13.00" r="0.80" />
|
||||
<circle cx="5.00" cy="13.00" r="0.80" />
|
||||
<circle cx="9.00" cy="13.00" r="0.80" />
|
||||
<circle cx="15.00" cy="13.00" r="0.80" />
|
||||
<circle cx="17.00" cy="13.00" r="0.80" />
|
||||
<circle cx="19.00" cy="13.00" r="0.80" />
|
||||
<circle cx="21.00" cy="13.00" r="0.80" />
|
||||
<circle cx="33.00" cy="13.00" r="0.80" />
|
||||
<circle cx="1.00" cy="15.00" r="0.80" />
|
||||
<circle cx="11.00" cy="15.00" r="0.80" />
|
||||
<circle cx="13.00" cy="15.00" r="0.80" />
|
||||
<circle cx="17.00" cy="15.00" r="0.80" />
|
||||
<circle cx="39.00" cy="15.00" r="0.80" />
|
||||
<circle cx="1.00" cy="17.00" r="0.80" />
|
||||
<circle cx="3.00" cy="17.00" r="0.80" />
|
||||
<circle cx="13.00" cy="17.00" r="0.80" />
|
||||
<circle cx="17.00" cy="17.00" r="0.80" />
|
||||
<circle cx="19.00" cy="17.00" r="0.80" />
|
||||
<circle cx="21.00" cy="17.00" r="0.80" />
|
||||
<circle cx="23.00" cy="17.00" r="0.80" />
|
||||
<circle cx="27.00" cy="17.00" r="0.80" />
|
||||
<circle cx="31.00" cy="17.00" r="0.80" />
|
||||
<circle cx="35.00" cy="17.00" r="0.80" />
|
||||
<circle cx="37.00" cy="17.00" r="0.80" />
|
||||
<circle cx="1.00" cy="19.00" r="0.80" />
|
||||
<circle cx="3.00" cy="19.00" r="0.80" />
|
||||
<circle cx="5.00" cy="19.00" r="0.80" />
|
||||
<circle cx="7.00" cy="19.00" r="0.80" />
|
||||
<circle cx="11.00" cy="19.00" r="0.80" />
|
||||
<circle cx="15.00" cy="19.00" r="0.80" />
|
||||
<circle cx="17.00" cy="19.00" r="0.80" />
|
||||
<circle cx="19.00" cy="19.00" r="0.80" />
|
||||
<circle cx="21.00" cy="19.00" r="0.80" />
|
||||
<circle cx="23.00" cy="19.00" r="0.80" />
|
||||
<circle cx="35.00" cy="19.00" r="0.80" />
|
||||
<circle cx="39.00" cy="19.00" r="0.80" />
|
||||
<circle cx="1.00" cy="21.00" r="0.80" />
|
||||
<circle cx="3.00" cy="21.00" r="0.80" />
|
||||
<circle cx="5.00" cy="21.00" r="0.80" />
|
||||
<circle cx="7.00" cy="21.00" r="0.80" />
|
||||
<circle cx="15.00" cy="21.00" r="0.80" />
|
||||
<circle cx="17.00" cy="21.00" r="0.80" />
|
||||
<circle cx="19.00" cy="21.00" r="0.80" />
|
||||
<circle cx="25.00" cy="21.00" r="0.80" />
|
||||
<circle cx="33.00" cy="21.00" r="0.80" />
|
||||
<circle cx="35.00" cy="21.00" r="0.80" />
|
||||
<circle cx="1.00" cy="23.00" r="0.80" />
|
||||
<circle cx="3.00" cy="23.00" r="0.80" />
|
||||
<circle cx="7.00" cy="23.00" r="0.80" />
|
||||
<circle cx="9.00" cy="23.00" r="0.80" />
|
||||
<circle cx="15.00" cy="23.00" r="0.80" />
|
||||
<circle cx="17.00" cy="23.00" r="0.80" />
|
||||
<circle cx="33.00" cy="23.00" r="0.80" />
|
||||
<circle cx="35.00" cy="23.00" r="0.80" />
|
||||
<circle cx="39.00" cy="23.00" r="0.80" />
|
||||
<circle cx="1.00" cy="25.00" r="0.80" />
|
||||
<circle cx="5.00" cy="25.00" r="0.80" />
|
||||
<circle cx="7.00" cy="25.00" r="0.80" />
|
||||
<circle cx="11.00" cy="25.00" r="0.80" />
|
||||
<circle cx="15.00" cy="25.00" r="0.80" />
|
||||
<circle cx="19.00" cy="25.00" r="0.80" />
|
||||
<circle cx="21.00" cy="25.00" r="0.80" />
|
||||
<circle cx="23.00" cy="25.00" r="0.80" />
|
||||
<circle cx="27.00" cy="25.00" r="0.80" />
|
||||
<circle cx="29.00" cy="25.00" r="0.80" />
|
||||
<circle cx="33.00" cy="25.00" r="0.80" />
|
||||
<circle cx="37.00" cy="25.00" r="0.80" />
|
||||
<circle cx="1.00" cy="27.00" r="0.80" />
|
||||
<circle cx="5.00" cy="27.00" r="0.80" />
|
||||
<circle cx="11.00" cy="27.00" r="0.80" />
|
||||
<circle cx="13.00" cy="27.00" r="0.80" />
|
||||
<circle cx="17.00" cy="27.00" r="0.80" />
|
||||
<circle cx="19.00" cy="27.00" r="0.80" />
|
||||
<circle cx="31.00" cy="27.00" r="0.80" />
|
||||
<circle cx="37.00" cy="27.00" r="0.80" />
|
||||
<circle cx="39.00" cy="27.00" r="0.80" />
|
||||
<circle cx="1.00" cy="29.00" r="0.80" />
|
||||
<circle cx="5.00" cy="29.00" r="0.80" />
|
||||
<circle cx="11.00" cy="29.00" r="0.80" />
|
||||
<circle cx="13.00" cy="29.00" r="0.80" />
|
||||
<circle cx="15.00" cy="29.00" r="0.80" />
|
||||
<circle cx="17.00" cy="29.00" r="0.80" />
|
||||
<circle cx="27.00" cy="29.00" r="0.80" />
|
||||
<circle cx="31.00" cy="29.00" r="0.80" />
|
||||
<circle cx="1.00" cy="31.00" r="0.80" />
|
||||
<circle cx="3.00" cy="31.00" r="0.80" />
|
||||
<circle cx="13.00" cy="31.00" r="0.80" />
|
||||
<circle cx="15.00" cy="31.00" r="0.80" />
|
||||
<circle cx="23.00" cy="31.00" r="0.80" />
|
||||
<circle cx="25.00" cy="31.00" r="0.80" />
|
||||
<circle cx="35.00" cy="31.00" r="0.80" />
|
||||
<circle cx="37.00" cy="31.00" r="0.80" />
|
||||
<circle cx="39.00" cy="31.00" r="0.80" />
|
||||
<circle cx="1.00" cy="33.00" r="0.80" />
|
||||
<circle cx="3.00" cy="33.00" r="0.80" />
|
||||
<circle cx="9.00" cy="33.00" r="0.80" />
|
||||
<circle cx="11.00" cy="33.00" r="0.80" />
|
||||
<circle cx="15.00" cy="33.00" r="0.80" />
|
||||
<circle cx="17.00" cy="33.00" r="0.80" />
|
||||
<circle cx="25.00" cy="33.00" r="0.80" />
|
||||
<circle cx="35.00" cy="33.00" r="0.80" />
|
||||
<circle cx="37.00" cy="33.00" r="0.80" />
|
||||
<circle cx="1.00" cy="35.00" r="0.80" />
|
||||
<circle cx="3.00" cy="35.00" r="0.80" />
|
||||
<circle cx="11.00" cy="35.00" r="0.80" />
|
||||
<circle cx="13.00" cy="35.00" r="0.80" />
|
||||
<circle cx="15.00" cy="35.00" r="0.80" />
|
||||
<circle cx="21.00" cy="35.00" r="0.80" />
|
||||
<circle cx="27.00" cy="35.00" r="0.80" />
|
||||
<circle cx="35.00" cy="35.00" r="0.80" />
|
||||
<circle cx="37.00" cy="35.00" r="0.80" />
|
||||
<circle cx="39.00" cy="35.00" r="0.80" />
|
||||
<circle cx="1.00" cy="37.00" r="0.80" />
|
||||
<circle cx="3.00" cy="37.00" r="0.80" />
|
||||
<circle cx="11.00" cy="37.00" r="0.80" />
|
||||
<circle cx="15.00" cy="37.00" r="0.80" />
|
||||
<circle cx="19.00" cy="37.00" r="0.80" />
|
||||
<circle cx="21.00" cy="37.00" r="0.80" />
|
||||
<circle cx="23.00" cy="37.00" r="0.80" />
|
||||
<circle cx="25.00" cy="37.00" r="0.80" />
|
||||
<circle cx="27.00" cy="37.00" r="0.80" />
|
||||
<circle cx="29.00" cy="37.00" r="0.80" />
|
||||
<circle cx="33.00" cy="37.00" r="0.80" />
|
||||
<circle cx="1.00" cy="39.00" r="0.80" />
|
||||
<circle cx="3.00" cy="39.00" r="0.80" />
|
||||
<circle cx="5.00" cy="39.00" r="0.80" />
|
||||
<circle cx="7.00" cy="39.00" r="0.80" />
|
||||
<circle cx="9.00" cy="39.00" r="0.80" />
|
||||
<circle cx="19.00" cy="39.00" r="0.80" />
|
||||
<circle cx="21.00" cy="39.00" r="0.80" />
|
||||
<circle cx="27.00" cy="39.00" r="0.80" />
|
||||
<circle cx="29.00" cy="39.00" r="0.80" />
|
||||
<circle cx="31.00" cy="39.00" r="0.80" />
|
||||
<circle cx="35.00" cy="39.00" r="0.80" />
|
||||
<circle cx="39.00" cy="39.00" r="0.80" />
|
||||
<circle cx="1.00" cy="41.00" r="0.80" />
|
||||
<circle cx="3.00" cy="41.00" r="0.80" />
|
||||
<circle cx="7.00" cy="41.00" r="0.80" />
|
||||
<circle cx="11.00" cy="41.00" r="0.80" />
|
||||
<circle cx="15.00" cy="41.00" r="0.80" />
|
||||
<circle cx="23.00" cy="41.00" r="0.80" />
|
||||
<circle cx="27.00" cy="41.00" r="0.80" />
|
||||
<circle cx="31.00" cy="41.00" r="0.80" />
|
||||
<circle cx="37.00" cy="41.00" r="0.80" />
|
||||
<circle cx="1.00" cy="43.00" r="0.80" />
|
||||
<circle cx="3.00" cy="43.00" r="0.80" />
|
||||
<circle cx="5.00" cy="43.00" r="0.80" />
|
||||
<circle cx="7.00" cy="43.00" r="0.80" />
|
||||
<circle cx="9.00" cy="43.00" r="0.80" />
|
||||
<circle cx="11.00" cy="43.00" r="0.80" />
|
||||
<circle cx="13.00" cy="43.00" r="0.80" />
|
||||
<circle cx="15.00" cy="43.00" r="0.80" />
|
||||
<circle cx="17.00" cy="43.00" r="0.80" />
|
||||
<circle cx="19.00" cy="43.00" r="0.80" />
|
||||
<circle cx="21.00" cy="43.00" r="0.80" />
|
||||
<circle cx="23.00" cy="43.00" r="0.80" />
|
||||
<circle cx="25.00" cy="43.00" r="0.80" />
|
||||
<circle cx="27.00" cy="43.00" r="0.80" />
|
||||
<circle cx="29.00" cy="43.00" r="0.80" />
|
||||
<circle cx="31.00" cy="43.00" r="0.80" />
|
||||
<circle cx="33.00" cy="43.00" r="0.80" />
|
||||
<circle cx="35.00" cy="43.00" r="0.80" />
|
||||
<circle cx="37.00" cy="43.00" r="0.80" />
|
||||
<circle cx="39.00" cy="43.00" r="0.80" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 10 KiB |
@ -10,8 +10,8 @@
|
||||
<rect x="0" y="0" width="68" height="66" fill="#FFFFFF" />
|
||||
<rect x="0.00" y="0.00" width="68.00" height="4.00" />
|
||||
<rect x="0.00" y="61.73" width="68.00" height="4.00" />
|
||||
<rect x="0.00" y="0.00" width="4.00" height="65.73" />
|
||||
<rect x="64.00" y="0.00" width="4.00" height="65.73" />
|
||||
<rect x="0.00" y="4.00" width="4.00" height="57.73" />
|
||||
<rect x="64.00" y="4.00" width="4.00" height="57.73" />
|
||||
<path d="M 29.00 6.15 L 29.87 5.65 L 29.87 4.65 L 29.00 4.15 L 28.13 4.65 L 28.13 5.65 Z" />
|
||||
<path d="M 33.00 6.15 L 33.87 5.65 L 33.87 4.65 L 33.00 4.15 L 32.13 4.65 L 32.13 5.65 Z" />
|
||||
<path d="M 37.00 6.15 L 37.87 5.65 L 37.87 4.65 L 37.00 4.15 L 36.13 4.65 L 36.13 5.65 Z" />
|
||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
382
backend/tests/data/svg/maxicode_vwsp1_bind1.svg
Normal file
@ -0,0 +1,382 @@
|
||||
<?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="60" height="66" 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="60" height="66" fill="#FFFFFF" />
|
||||
<rect x="0.00" y="2.00" width="60.00" height="2.00" />
|
||||
<rect x="0.00" y="61.73" width="60.00" height="2.00" />
|
||||
<path d="M 25.00 6.15 L 25.87 5.65 L 25.87 4.65 L 25.00 4.15 L 24.13 4.65 L 24.13 5.65 Z" />
|
||||
<path d="M 29.00 6.15 L 29.87 5.65 L 29.87 4.65 L 29.00 4.15 L 28.13 4.65 L 28.13 5.65 Z" />
|
||||
<path d="M 33.00 6.15 L 33.87 5.65 L 33.87 4.65 L 33.00 4.15 L 32.13 4.65 L 32.13 5.65 Z" />
|
||||
<path d="M 37.00 6.15 L 37.87 5.65 L 37.87 4.65 L 37.00 4.15 L 36.13 4.65 L 36.13 5.65 Z" />
|
||||
<path d="M 41.00 6.15 L 41.87 5.65 L 41.87 4.65 L 41.00 4.15 L 40.13 4.65 L 40.13 5.65 Z" />
|
||||
<path d="M 45.00 6.15 L 45.87 5.65 L 45.87 4.65 L 45.00 4.15 L 44.13 4.65 L 44.13 5.65 Z" />
|
||||
<path d="M 49.00 6.15 L 49.87 5.65 L 49.87 4.65 L 49.00 4.15 L 48.13 4.65 L 48.13 5.65 Z" />
|
||||
<path d="M 53.00 6.15 L 53.87 5.65 L 53.87 4.65 L 53.00 4.15 L 52.13 4.65 L 52.13 5.65 Z" />
|
||||
<path d="M 57.00 6.15 L 57.87 5.65 L 57.87 4.65 L 57.00 4.15 L 56.13 4.65 L 56.13 5.65 Z" />
|
||||
<path d="M 59.00 6.15 L 59.87 5.65 L 59.87 4.65 L 59.00 4.15 L 58.13 4.65 L 58.13 5.65 Z" />
|
||||
<path d="M 4.00 7.89 L 4.87 7.39 L 4.87 6.39 L 4.00 5.89 L 3.13 6.39 L 3.13 7.39 Z" />
|
||||
<path d="M 8.00 7.89 L 8.87 7.39 L 8.87 6.39 L 8.00 5.89 L 7.13 6.39 L 7.13 7.39 Z" />
|
||||
<path d="M 10.00 7.89 L 10.87 7.39 L 10.87 6.39 L 10.00 5.89 L 9.13 6.39 L 9.13 7.39 Z" />
|
||||
<path d="M 12.00 7.89 L 12.87 7.39 L 12.87 6.39 L 12.00 5.89 L 11.13 6.39 L 11.13 7.39 Z" />
|
||||
<path d="M 14.00 7.89 L 14.87 7.39 L 14.87 6.39 L 14.00 5.89 L 13.13 6.39 L 13.13 7.39 Z" />
|
||||
<path d="M 16.00 7.89 L 16.87 7.39 L 16.87 6.39 L 16.00 5.89 L 15.13 6.39 L 15.13 7.39 Z" />
|
||||
<path d="M 18.00 7.89 L 18.87 7.39 L 18.87 6.39 L 18.00 5.89 L 17.13 6.39 L 17.13 7.39 Z" />
|
||||
<path d="M 20.00 7.89 L 20.87 7.39 L 20.87 6.39 L 20.00 5.89 L 19.13 6.39 L 19.13 7.39 Z" />
|
||||
<path d="M 22.00 7.89 L 22.87 7.39 L 22.87 6.39 L 22.00 5.89 L 21.13 6.39 L 21.13 7.39 Z" />
|
||||
<path d="M 24.00 7.89 L 24.87 7.39 L 24.87 6.39 L 24.00 5.89 L 23.13 6.39 L 23.13 7.39 Z" />
|
||||
<path d="M 42.00 7.89 L 42.87 7.39 L 42.87 6.39 L 42.00 5.89 L 41.13 6.39 L 41.13 7.39 Z" />
|
||||
<path d="M 46.00 7.89 L 46.87 7.39 L 46.87 6.39 L 46.00 5.89 L 45.13 6.39 L 45.13 7.39 Z" />
|
||||
<path d="M 50.00 7.89 L 50.87 7.39 L 50.87 6.39 L 50.00 5.89 L 49.13 6.39 L 49.13 7.39 Z" />
|
||||
<path d="M 54.00 7.89 L 54.87 7.39 L 54.87 6.39 L 54.00 5.89 L 53.13 6.39 L 53.13 7.39 Z" />
|
||||
<path d="M 3.00 9.62 L 3.87 9.12 L 3.87 8.12 L 3.00 7.62 L 2.13 8.12 L 2.13 9.12 Z" />
|
||||
<path d="M 5.00 9.62 L 5.87 9.12 L 5.87 8.12 L 5.00 7.62 L 4.13 8.12 L 4.13 9.12 Z" />
|
||||
<path d="M 7.00 9.62 L 7.87 9.12 L 7.87 8.12 L 7.00 7.62 L 6.13 8.12 L 6.13 9.12 Z" />
|
||||
<path d="M 13.00 9.62 L 13.87 9.12 L 13.87 8.12 L 13.00 7.62 L 12.13 8.12 L 12.13 9.12 Z" />
|
||||
<path d="M 19.00 9.62 L 19.87 9.12 L 19.87 8.12 L 19.00 7.62 L 18.13 8.12 L 18.13 9.12 Z" />
|
||||
<path d="M 21.00 9.62 L 21.87 9.12 L 21.87 8.12 L 21.00 7.62 L 20.13 8.12 L 20.13 9.12 Z" />
|
||||
<path d="M 23.00 9.62 L 23.87 9.12 L 23.87 8.12 L 23.00 7.62 L 22.13 8.12 L 22.13 9.12 Z" />
|
||||
<path d="M 29.00 9.62 L 29.87 9.12 L 29.87 8.12 L 29.00 7.62 L 28.13 8.12 L 28.13 9.12 Z" />
|
||||
<path d="M 35.00 9.62 L 35.87 9.12 L 35.87 8.12 L 35.00 7.62 L 34.13 8.12 L 34.13 9.12 Z" />
|
||||
<path d="M 37.00 9.62 L 37.87 9.12 L 37.87 8.12 L 37.00 7.62 L 36.13 8.12 L 36.13 9.12 Z" />
|
||||
<path d="M 39.00 9.62 L 39.87 9.12 L 39.87 8.12 L 39.00 7.62 L 38.13 8.12 L 38.13 9.12 Z" />
|
||||
<path d="M 45.00 9.62 L 45.87 9.12 L 45.87 8.12 L 45.00 7.62 L 44.13 8.12 L 44.13 9.12 Z" />
|
||||
<path d="M 51.00 9.62 L 51.87 9.12 L 51.87 8.12 L 51.00 7.62 L 50.13 8.12 L 50.13 9.12 Z" />
|
||||
<path d="M 53.00 9.62 L 53.87 9.12 L 53.87 8.12 L 53.00 7.62 L 52.13 8.12 L 52.13 9.12 Z" />
|
||||
<path d="M 55.00 9.62 L 55.87 9.12 L 55.87 8.12 L 55.00 7.62 L 54.13 8.12 L 54.13 9.12 Z" />
|
||||
<path d="M 57.00 9.62 L 57.87 9.12 L 57.87 8.12 L 57.00 7.62 L 56.13 8.12 L 56.13 9.12 Z" />
|
||||
<path d="M 59.00 9.62 L 59.87 9.12 L 59.87 8.12 L 59.00 7.62 L 58.13 8.12 L 58.13 9.12 Z" />
|
||||
<path d="M 4.00 11.35 L 4.87 10.85 L 4.87 9.85 L 4.00 9.35 L 3.13 9.85 L 3.13 10.85 Z" />
|
||||
<path d="M 8.00 11.35 L 8.87 10.85 L 8.87 9.85 L 8.00 9.35 L 7.13 9.85 L 7.13 10.85 Z" />
|
||||
<path d="M 12.00 11.35 L 12.87 10.85 L 12.87 9.85 L 12.00 9.35 L 11.13 9.85 L 11.13 10.85 Z" />
|
||||
<path d="M 16.00 11.35 L 16.87 10.85 L 16.87 9.85 L 16.00 9.35 L 15.13 9.85 L 15.13 10.85 Z" />
|
||||
<path d="M 20.00 11.35 L 20.87 10.85 L 20.87 9.85 L 20.00 9.35 L 19.13 9.85 L 19.13 10.85 Z" />
|
||||
<path d="M 24.00 11.35 L 24.87 10.85 L 24.87 9.85 L 24.00 9.35 L 23.13 9.85 L 23.13 10.85 Z" />
|
||||
<path d="M 28.00 11.35 L 28.87 10.85 L 28.87 9.85 L 28.00 9.35 L 27.13 9.85 L 27.13 10.85 Z" />
|
||||
<path d="M 32.00 11.35 L 32.87 10.85 L 32.87 9.85 L 32.00 9.35 L 31.13 9.85 L 31.13 10.85 Z" />
|
||||
<path d="M 36.00 11.35 L 36.87 10.85 L 36.87 9.85 L 36.00 9.35 L 35.13 9.85 L 35.13 10.85 Z" />
|
||||
<path d="M 40.00 11.35 L 40.87 10.85 L 40.87 9.85 L 40.00 9.35 L 39.13 9.85 L 39.13 10.85 Z" />
|
||||
<path d="M 44.00 11.35 L 44.87 10.85 L 44.87 9.85 L 44.00 9.35 L 43.13 9.85 L 43.13 10.85 Z" />
|
||||
<path d="M 46.00 11.35 L 46.87 10.85 L 46.87 9.85 L 46.00 9.35 L 45.13 9.85 L 45.13 10.85 Z" />
|
||||
<path d="M 50.00 11.35 L 50.87 10.85 L 50.87 9.85 L 50.00 9.35 L 49.13 9.85 L 49.13 10.85 Z" />
|
||||
<path d="M 54.00 11.35 L 54.87 10.85 L 54.87 9.85 L 54.00 9.35 L 53.13 9.85 L 53.13 10.85 Z" />
|
||||
<path d="M 58.00 11.35 L 58.87 10.85 L 58.87 9.85 L 58.00 9.35 L 57.13 9.85 L 57.13 10.85 Z" />
|
||||
<path d="M 47.00 13.08 L 47.87 12.58 L 47.87 11.58 L 47.00 11.08 L 46.13 11.58 L 46.13 12.58 Z" />
|
||||
<path d="M 51.00 13.08 L 51.87 12.58 L 51.87 11.58 L 51.00 11.08 L 50.13 11.58 L 50.13 12.58 Z" />
|
||||
<path d="M 55.00 13.08 L 55.87 12.58 L 55.87 11.58 L 55.00 11.08 L 54.13 11.58 L 54.13 12.58 Z" />
|
||||
<path d="M 57.00 13.08 L 57.87 12.58 L 57.87 11.58 L 57.00 11.08 L 56.13 11.58 L 56.13 12.58 Z" />
|
||||
<path d="M 2.00 14.81 L 2.87 14.31 L 2.87 13.31 L 2.00 12.81 L 1.13 13.31 L 1.13 14.31 Z" />
|
||||
<path d="M 6.00 14.81 L 6.87 14.31 L 6.87 13.31 L 6.00 12.81 L 5.13 13.31 L 5.13 14.31 Z" />
|
||||
<path d="M 10.00 14.81 L 10.87 14.31 L 10.87 13.31 L 10.00 12.81 L 9.13 13.31 L 9.13 14.31 Z" />
|
||||
<path d="M 14.00 14.81 L 14.87 14.31 L 14.87 13.31 L 14.00 12.81 L 13.13 13.31 L 13.13 14.31 Z" />
|
||||
<path d="M 18.00 14.81 L 18.87 14.31 L 18.87 13.31 L 18.00 12.81 L 17.13 13.31 L 17.13 14.31 Z" />
|
||||
<path d="M 22.00 14.81 L 22.87 14.31 L 22.87 13.31 L 22.00 12.81 L 21.13 13.31 L 21.13 14.31 Z" />
|
||||
<path d="M 26.00 14.81 L 26.87 14.31 L 26.87 13.31 L 26.00 12.81 L 25.13 13.31 L 25.13 14.31 Z" />
|
||||
<path d="M 30.00 14.81 L 30.87 14.31 L 30.87 13.31 L 30.00 12.81 L 29.13 13.31 L 29.13 14.31 Z" />
|
||||
<path d="M 34.00 14.81 L 34.87 14.31 L 34.87 13.31 L 34.00 12.81 L 33.13 13.31 L 33.13 14.31 Z" />
|
||||
<path d="M 38.00 14.81 L 38.87 14.31 L 38.87 13.31 L 38.00 12.81 L 37.13 13.31 L 37.13 14.31 Z" />
|
||||
<path d="M 42.00 14.81 L 42.87 14.31 L 42.87 13.31 L 42.00 12.81 L 41.13 13.31 L 41.13 14.31 Z" />
|
||||
<path d="M 48.00 14.81 L 48.87 14.31 L 48.87 13.31 L 48.00 12.81 L 47.13 13.31 L 47.13 14.31 Z" />
|
||||
<path d="M 50.00 14.81 L 50.87 14.31 L 50.87 13.31 L 50.00 12.81 L 49.13 13.31 L 49.13 14.31 Z" />
|
||||
<path d="M 3.00 16.55 L 3.87 16.05 L 3.87 15.05 L 3.00 14.55 L 2.13 15.05 L 2.13 16.05 Z" />
|
||||
<path d="M 7.00 16.55 L 7.87 16.05 L 7.87 15.05 L 7.00 14.55 L 6.13 15.05 L 6.13 16.05 Z" />
|
||||
<path d="M 11.00 16.55 L 11.87 16.05 L 11.87 15.05 L 11.00 14.55 L 10.13 15.05 L 10.13 16.05 Z" />
|
||||
<path d="M 15.00 16.55 L 15.87 16.05 L 15.87 15.05 L 15.00 14.55 L 14.13 15.05 L 14.13 16.05 Z" />
|
||||
<path d="M 19.00 16.55 L 19.87 16.05 L 19.87 15.05 L 19.00 14.55 L 18.13 15.05 L 18.13 16.05 Z" />
|
||||
<path d="M 23.00 16.55 L 23.87 16.05 L 23.87 15.05 L 23.00 14.55 L 22.13 15.05 L 22.13 16.05 Z" />
|
||||
<path d="M 27.00 16.55 L 27.87 16.05 L 27.87 15.05 L 27.00 14.55 L 26.13 15.05 L 26.13 16.05 Z" />
|
||||
<path d="M 31.00 16.55 L 31.87 16.05 L 31.87 15.05 L 31.00 14.55 L 30.13 15.05 L 30.13 16.05 Z" />
|
||||
<path d="M 35.00 16.55 L 35.87 16.05 L 35.87 15.05 L 35.00 14.55 L 34.13 15.05 L 34.13 16.05 Z" />
|
||||
<path d="M 39.00 16.55 L 39.87 16.05 L 39.87 15.05 L 39.00 14.55 L 38.13 15.05 L 38.13 16.05 Z" />
|
||||
<path d="M 43.00 16.55 L 43.87 16.05 L 43.87 15.05 L 43.00 14.55 L 42.13 15.05 L 42.13 16.05 Z" />
|
||||
<path d="M 47.00 16.55 L 47.87 16.05 L 47.87 15.05 L 47.00 14.55 L 46.13 15.05 L 46.13 16.05 Z" />
|
||||
<path d="M 51.00 16.55 L 51.87 16.05 L 51.87 15.05 L 51.00 14.55 L 50.13 15.05 L 50.13 16.05 Z" />
|
||||
<path d="M 55.00 16.55 L 55.87 16.05 L 55.87 15.05 L 55.00 14.55 L 54.13 15.05 L 54.13 16.05 Z" />
|
||||
<path d="M 57.00 16.55 L 57.87 16.05 L 57.87 15.05 L 57.00 14.55 L 56.13 15.05 L 56.13 16.05 Z" />
|
||||
<path d="M 59.00 16.55 L 59.87 16.05 L 59.87 15.05 L 59.00 14.55 L 58.13 15.05 L 58.13 16.05 Z" />
|
||||
<path d="M 1.00 20.01 L 1.87 19.51 L 1.87 18.51 L 1.00 18.01 L 0.13 18.51 L 0.13 19.51 Z" />
|
||||
<path d="M 5.00 20.01 L 5.87 19.51 L 5.87 18.51 L 5.00 18.01 L 4.13 18.51 L 4.13 19.51 Z" />
|
||||
<path d="M 9.00 20.01 L 9.87 19.51 L 9.87 18.51 L 9.00 18.01 L 8.13 18.51 L 8.13 19.51 Z" />
|
||||
<path d="M 13.00 20.01 L 13.87 19.51 L 13.87 18.51 L 13.00 18.01 L 12.13 18.51 L 12.13 19.51 Z" />
|
||||
<path d="M 17.00 20.01 L 17.87 19.51 L 17.87 18.51 L 17.00 18.01 L 16.13 18.51 L 16.13 19.51 Z" />
|
||||
<path d="M 21.00 20.01 L 21.87 19.51 L 21.87 18.51 L 21.00 18.01 L 20.13 18.51 L 20.13 19.51 Z" />
|
||||
<path d="M 25.00 20.01 L 25.87 19.51 L 25.87 18.51 L 25.00 18.01 L 24.13 18.51 L 24.13 19.51 Z" />
|
||||
<path d="M 29.00 20.01 L 29.87 19.51 L 29.87 18.51 L 29.00 18.01 L 28.13 18.51 L 28.13 19.51 Z" />
|
||||
<path d="M 33.00 20.01 L 33.87 19.51 L 33.87 18.51 L 33.00 18.01 L 32.13 18.51 L 32.13 19.51 Z" />
|
||||
<path d="M 37.00 20.01 L 37.87 19.51 L 37.87 18.51 L 37.00 18.01 L 36.13 18.51 L 36.13 19.51 Z" />
|
||||
<path d="M 41.00 20.01 L 41.87 19.51 L 41.87 18.51 L 41.00 18.01 L 40.13 18.51 L 40.13 19.51 Z" />
|
||||
<path d="M 45.00 20.01 L 45.87 19.51 L 45.87 18.51 L 45.00 18.01 L 44.13 18.51 L 44.13 19.51 Z" />
|
||||
<path d="M 49.00 20.01 L 49.87 19.51 L 49.87 18.51 L 49.00 18.01 L 48.13 18.51 L 48.13 19.51 Z" />
|
||||
<path d="M 53.00 20.01 L 53.87 19.51 L 53.87 18.51 L 53.00 18.01 L 52.13 18.51 L 52.13 19.51 Z" />
|
||||
<path d="M 57.00 20.01 L 57.87 19.51 L 57.87 18.51 L 57.00 18.01 L 56.13 18.51 L 56.13 19.51 Z" />
|
||||
<path d="M 4.00 21.74 L 4.87 21.24 L 4.87 20.24 L 4.00 19.74 L 3.13 20.24 L 3.13 21.24 Z" />
|
||||
<path d="M 8.00 21.74 L 8.87 21.24 L 8.87 20.24 L 8.00 19.74 L 7.13 20.24 L 7.13 21.24 Z" />
|
||||
<path d="M 12.00 21.74 L 12.87 21.24 L 12.87 20.24 L 12.00 19.74 L 11.13 20.24 L 11.13 21.24 Z" />
|
||||
<path d="M 16.00 21.74 L 16.87 21.24 L 16.87 20.24 L 16.00 19.74 L 15.13 20.24 L 15.13 21.24 Z" />
|
||||
<path d="M 20.00 21.74 L 20.87 21.24 L 20.87 20.24 L 20.00 19.74 L 19.13 20.24 L 19.13 21.24 Z" />
|
||||
<path d="M 22.00 21.74 L 22.87 21.24 L 22.87 20.24 L 22.00 19.74 L 21.13 20.24 L 21.13 21.24 Z" />
|
||||
<path d="M 24.00 21.74 L 24.87 21.24 L 24.87 20.24 L 24.00 19.74 L 23.13 20.24 L 23.13 21.24 Z" />
|
||||
<path d="M 42.00 21.74 L 42.87 21.24 L 42.87 20.24 L 42.00 19.74 L 41.13 20.24 L 41.13 21.24 Z" />
|
||||
<path d="M 44.00 21.74 L 44.87 21.24 L 44.87 20.24 L 44.00 19.74 L 43.13 20.24 L 43.13 21.24 Z" />
|
||||
<path d="M 48.00 21.74 L 48.87 21.24 L 48.87 20.24 L 48.00 19.74 L 47.13 20.24 L 47.13 21.24 Z" />
|
||||
<path d="M 52.00 21.74 L 52.87 21.24 L 52.87 20.24 L 52.00 19.74 L 51.13 20.24 L 51.13 21.24 Z" />
|
||||
<path d="M 56.00 21.74 L 56.87 21.24 L 56.87 20.24 L 56.00 19.74 L 55.13 20.24 L 55.13 21.24 Z" />
|
||||
<path d="M 17.00 23.47 L 17.87 22.97 L 17.87 21.97 L 17.00 21.47 L 16.13 21.97 L 16.13 22.97 Z" />
|
||||
<path d="M 21.00 23.47 L 21.87 22.97 L 21.87 21.97 L 21.00 21.47 L 20.13 21.97 L 20.13 22.97 Z" />
|
||||
<path d="M 23.00 23.47 L 23.87 22.97 L 23.87 21.97 L 23.00 21.47 L 22.13 21.97 L 22.13 22.97 Z" />
|
||||
<path d="M 29.00 23.47 L 29.87 22.97 L 29.87 21.97 L 29.00 21.47 L 28.13 21.97 L 28.13 22.97 Z" />
|
||||
<path d="M 33.00 23.47 L 33.87 22.97 L 33.87 21.97 L 33.00 21.47 L 32.13 21.97 L 32.13 22.97 Z" />
|
||||
<path d="M 39.00 23.47 L 39.87 22.97 L 39.87 21.97 L 39.00 21.47 L 38.13 21.97 L 38.13 22.97 Z" />
|
||||
<path d="M 41.00 23.47 L 41.87 22.97 L 41.87 21.97 L 41.00 21.47 L 40.13 21.97 L 40.13 22.97 Z" />
|
||||
<path d="M 59.00 23.47 L 59.87 22.97 L 59.87 21.97 L 59.00 21.47 L 58.13 21.97 L 58.13 22.97 Z" />
|
||||
<path d="M 2.00 25.21 L 2.87 24.71 L 2.87 23.71 L 2.00 23.21 L 1.13 23.71 L 1.13 24.71 Z" />
|
||||
<path d="M 6.00 25.21 L 6.87 24.71 L 6.87 23.71 L 6.00 23.21 L 5.13 23.71 L 5.13 24.71 Z" />
|
||||
<path d="M 10.00 25.21 L 10.87 24.71 L 10.87 23.71 L 10.00 23.21 L 9.13 23.71 L 9.13 24.71 Z" />
|
||||
<path d="M 14.00 25.21 L 14.87 24.71 L 14.87 23.71 L 14.00 23.21 L 13.13 23.71 L 13.13 24.71 Z" />
|
||||
<path d="M 38.00 25.21 L 38.87 24.71 L 38.87 23.71 L 38.00 23.21 L 37.13 23.71 L 37.13 24.71 Z" />
|
||||
<path d="M 40.00 25.21 L 40.87 24.71 L 40.87 23.71 L 40.00 23.21 L 39.13 23.71 L 39.13 24.71 Z" />
|
||||
<path d="M 46.00 25.21 L 46.87 24.71 L 46.87 23.71 L 46.00 23.21 L 45.13 23.71 L 45.13 24.71 Z" />
|
||||
<path d="M 50.00 25.21 L 50.87 24.71 L 50.87 23.71 L 50.00 23.21 L 49.13 23.71 L 49.13 24.71 Z" />
|
||||
<path d="M 54.00 25.21 L 54.87 24.71 L 54.87 23.71 L 54.00 23.21 L 53.13 23.71 L 53.13 24.71 Z" />
|
||||
<path d="M 3.00 26.94 L 3.87 26.44 L 3.87 25.44 L 3.00 24.94 L 2.13 25.44 L 2.13 26.44 Z" />
|
||||
<path d="M 7.00 26.94 L 7.87 26.44 L 7.87 25.44 L 7.00 24.94 L 6.13 25.44 L 6.13 26.44 Z" />
|
||||
<path d="M 11.00 26.94 L 11.87 26.44 L 11.87 25.44 L 11.00 24.94 L 10.13 25.44 L 10.13 26.44 Z" />
|
||||
<path d="M 13.00 26.94 L 13.87 26.44 L 13.87 25.44 L 13.00 24.94 L 12.13 25.44 L 12.13 26.44 Z" />
|
||||
<path d="M 21.00 26.94 L 21.87 26.44 L 21.87 25.44 L 21.00 24.94 L 20.13 25.44 L 20.13 26.44 Z" />
|
||||
<path d="M 47.00 26.94 L 47.87 26.44 L 47.87 25.44 L 47.00 24.94 L 46.13 25.44 L 46.13 26.44 Z" />
|
||||
<path d="M 51.00 26.94 L 51.87 26.44 L 51.87 25.44 L 51.00 24.94 L 50.13 25.44 L 50.13 26.44 Z" />
|
||||
<path d="M 55.00 26.94 L 55.87 26.44 L 55.87 25.44 L 55.00 24.94 L 54.13 25.44 L 54.13 26.44 Z" />
|
||||
<path d="M 57.00 26.94 L 57.87 26.44 L 57.87 25.44 L 57.00 24.94 L 56.13 25.44 L 56.13 26.44 Z" />
|
||||
<path d="M 20.00 28.67 L 20.87 28.17 L 20.87 27.17 L 20.00 26.67 L 19.13 27.17 L 19.13 28.17 Z" />
|
||||
<path d="M 38.00 28.67 L 38.87 28.17 L 38.87 27.17 L 38.00 26.67 L 37.13 27.17 L 37.13 28.17 Z" />
|
||||
<path d="M 42.00 28.67 L 42.87 28.17 L 42.87 27.17 L 42.00 26.67 L 41.13 27.17 L 41.13 28.17 Z" />
|
||||
<path d="M 44.00 28.67 L 44.87 28.17 L 44.87 27.17 L 44.00 26.67 L 43.13 27.17 L 43.13 28.17 Z" />
|
||||
<path d="M 1.00 30.40 L 1.87 29.90 L 1.87 28.90 L 1.00 28.40 L 0.13 28.90 L 0.13 29.90 Z" />
|
||||
<path d="M 5.00 30.40 L 5.87 29.90 L 5.87 28.90 L 5.00 28.40 L 4.13 28.90 L 4.13 29.90 Z" />
|
||||
<path d="M 9.00 30.40 L 9.87 29.90 L 9.87 28.90 L 9.00 28.40 L 8.13 28.90 L 8.13 29.90 Z" />
|
||||
<path d="M 13.00 30.40 L 13.87 29.90 L 13.87 28.90 L 13.00 28.40 L 12.13 28.90 L 12.13 29.90 Z" />
|
||||
<path d="M 17.00 30.40 L 17.87 29.90 L 17.87 28.90 L 17.00 28.40 L 16.13 28.90 L 16.13 29.90 Z" />
|
||||
<path d="M 39.00 30.40 L 39.87 29.90 L 39.87 28.90 L 39.00 28.40 L 38.13 28.90 L 38.13 29.90 Z" />
|
||||
<path d="M 41.00 30.40 L 41.87 29.90 L 41.87 28.90 L 41.00 28.40 L 40.13 28.90 L 40.13 29.90 Z" />
|
||||
<path d="M 43.00 30.40 L 43.87 29.90 L 43.87 28.90 L 43.00 28.40 L 42.13 28.90 L 42.13 29.90 Z" />
|
||||
<path d="M 45.00 30.40 L 45.87 29.90 L 45.87 28.90 L 45.00 28.40 L 44.13 28.90 L 44.13 29.90 Z" />
|
||||
<path d="M 49.00 30.40 L 49.87 29.90 L 49.87 28.90 L 49.00 28.40 L 48.13 28.90 L 48.13 29.90 Z" />
|
||||
<path d="M 53.00 30.40 L 53.87 29.90 L 53.87 28.90 L 53.00 28.40 L 52.13 28.90 L 52.13 29.90 Z" />
|
||||
<path d="M 57.00 30.40 L 57.87 29.90 L 57.87 28.90 L 57.00 28.40 L 56.13 28.90 L 56.13 29.90 Z" />
|
||||
<path d="M 59.00 30.40 L 59.87 29.90 L 59.87 28.90 L 59.00 28.40 L 58.13 28.90 L 58.13 29.90 Z" />
|
||||
<path d="M 4.00 32.13 L 4.87 31.63 L 4.87 30.63 L 4.00 30.13 L 3.13 30.63 L 3.13 31.63 Z" />
|
||||
<path d="M 8.00 32.13 L 8.87 31.63 L 8.87 30.63 L 8.00 30.13 L 7.13 30.63 L 7.13 31.63 Z" />
|
||||
<path d="M 12.00 32.13 L 12.87 31.63 L 12.87 30.63 L 12.00 30.13 L 11.13 30.63 L 11.13 31.63 Z" />
|
||||
<path d="M 16.00 32.13 L 16.87 31.63 L 16.87 30.63 L 16.00 30.13 L 15.13 30.63 L 15.13 31.63 Z" />
|
||||
<path d="M 48.00 32.13 L 48.87 31.63 L 48.87 30.63 L 48.00 30.13 L 47.13 30.63 L 47.13 31.63 Z" />
|
||||
<path d="M 52.00 32.13 L 52.87 31.63 L 52.87 30.63 L 52.00 30.13 L 51.13 30.63 L 51.13 31.63 Z" />
|
||||
<path d="M 56.00 32.13 L 56.87 31.63 L 56.87 30.63 L 56.00 30.13 L 55.13 30.63 L 55.13 31.63 Z" />
|
||||
<path d="M 17.00 33.87 L 17.87 33.37 L 17.87 32.37 L 17.00 31.87 L 16.13 32.37 L 16.13 33.37 Z" />
|
||||
<path d="M 41.00 33.87 L 41.87 33.37 L 41.87 32.37 L 41.00 31.87 L 40.13 32.37 L 40.13 33.37 Z" />
|
||||
<path d="M 57.00 33.87 L 57.87 33.37 L 57.87 32.37 L 57.00 31.87 L 56.13 32.37 L 56.13 33.37 Z" />
|
||||
<path d="M 2.00 35.60 L 2.87 35.10 L 2.87 34.10 L 2.00 33.60 L 1.13 34.10 L 1.13 35.10 Z" />
|
||||
<path d="M 6.00 35.60 L 6.87 35.10 L 6.87 34.10 L 6.00 33.60 L 5.13 34.10 L 5.13 35.10 Z" />
|
||||
<path d="M 10.00 35.60 L 10.87 35.10 L 10.87 34.10 L 10.00 33.60 L 9.13 34.10 L 9.13 35.10 Z" />
|
||||
<path d="M 16.00 35.60 L 16.87 35.10 L 16.87 34.10 L 16.00 33.60 L 15.13 34.10 L 15.13 35.10 Z" />
|
||||
<path d="M 42.00 35.60 L 42.87 35.10 L 42.87 34.10 L 42.00 33.60 L 41.13 34.10 L 41.13 35.10 Z" />
|
||||
<path d="M 46.00 35.60 L 46.87 35.10 L 46.87 34.10 L 46.00 33.60 L 45.13 34.10 L 45.13 35.10 Z" />
|
||||
<path d="M 50.00 35.60 L 50.87 35.10 L 50.87 34.10 L 50.00 33.60 L 49.13 34.10 L 49.13 35.10 Z" />
|
||||
<path d="M 54.00 35.60 L 54.87 35.10 L 54.87 34.10 L 54.00 33.60 L 53.13 34.10 L 53.13 35.10 Z" />
|
||||
<path d="M 3.00 37.33 L 3.87 36.83 L 3.87 35.83 L 3.00 35.33 L 2.13 35.83 L 2.13 36.83 Z" />
|
||||
<path d="M 7.00 37.33 L 7.87 36.83 L 7.87 35.83 L 7.00 35.33 L 6.13 35.83 L 6.13 36.83 Z" />
|
||||
<path d="M 11.00 37.33 L 11.87 36.83 L 11.87 35.83 L 11.00 35.33 L 10.13 35.83 L 10.13 36.83 Z" />
|
||||
<path d="M 15.00 37.33 L 15.87 36.83 L 15.87 35.83 L 15.00 35.33 L 14.13 35.83 L 14.13 36.83 Z" />
|
||||
<path d="M 41.00 37.33 L 41.87 36.83 L 41.87 35.83 L 41.00 35.33 L 40.13 35.83 L 40.13 36.83 Z" />
|
||||
<path d="M 43.00 37.33 L 43.87 36.83 L 43.87 35.83 L 43.00 35.33 L 42.13 35.83 L 42.13 36.83 Z" />
|
||||
<path d="M 47.00 37.33 L 47.87 36.83 L 47.87 35.83 L 47.00 35.33 L 46.13 35.83 L 46.13 36.83 Z" />
|
||||
<path d="M 51.00 37.33 L 51.87 36.83 L 51.87 35.83 L 51.00 35.33 L 50.13 35.83 L 50.13 36.83 Z" />
|
||||
<path d="M 55.00 37.33 L 55.87 36.83 L 55.87 35.83 L 55.00 35.33 L 54.13 35.83 L 54.13 36.83 Z" />
|
||||
<path d="M 16.00 39.06 L 16.87 38.56 L 16.87 37.56 L 16.00 37.06 L 15.13 37.56 L 15.13 38.56 Z" />
|
||||
<path d="M 40.00 39.06 L 40.87 38.56 L 40.87 37.56 L 40.00 37.06 L 39.13 37.56 L 39.13 38.56 Z" />
|
||||
<path d="M 44.00 39.06 L 44.87 38.56 L 44.87 37.56 L 44.00 37.06 L 43.13 37.56 L 43.13 38.56 Z" />
|
||||
<path d="M 1.00 40.79 L 1.87 40.29 L 1.87 39.29 L 1.00 38.79 L 0.13 39.29 L 0.13 40.29 Z" />
|
||||
<path d="M 5.00 40.79 L 5.87 40.29 L 5.87 39.29 L 5.00 38.79 L 4.13 39.29 L 4.13 40.29 Z" />
|
||||
<path d="M 9.00 40.79 L 9.87 40.29 L 9.87 39.29 L 9.00 38.79 L 8.13 39.29 L 8.13 40.29 Z" />
|
||||
<path d="M 15.00 40.79 L 15.87 40.29 L 15.87 39.29 L 15.00 38.79 L 14.13 39.29 L 14.13 40.29 Z" />
|
||||
<path d="M 19.00 40.79 L 19.87 40.29 L 19.87 39.29 L 19.00 38.79 L 18.13 39.29 L 18.13 40.29 Z" />
|
||||
<path d="M 45.00 40.79 L 45.87 40.29 L 45.87 39.29 L 45.00 38.79 L 44.13 39.29 L 44.13 40.29 Z" />
|
||||
<path d="M 49.00 40.79 L 49.87 40.29 L 49.87 39.29 L 49.00 38.79 L 48.13 39.29 L 48.13 40.29 Z" />
|
||||
<path d="M 53.00 40.79 L 53.87 40.29 L 53.87 39.29 L 53.00 38.79 L 52.13 39.29 L 52.13 40.29 Z" />
|
||||
<path d="M 57.00 40.79 L 57.87 40.29 L 57.87 39.29 L 57.00 38.79 L 56.13 39.29 L 56.13 40.29 Z" />
|
||||
<path d="M 4.00 42.53 L 4.87 42.03 L 4.87 41.03 L 4.00 40.53 L 3.13 41.03 L 3.13 42.03 Z" />
|
||||
<path d="M 8.00 42.53 L 8.87 42.03 L 8.87 41.03 L 8.00 40.53 L 7.13 41.03 L 7.13 42.03 Z" />
|
||||
<path d="M 12.00 42.53 L 12.87 42.03 L 12.87 41.03 L 12.00 40.53 L 11.13 41.03 L 11.13 42.03 Z" />
|
||||
<path d="M 16.00 42.53 L 16.87 42.03 L 16.87 41.03 L 16.00 40.53 L 15.13 41.03 L 15.13 42.03 Z" />
|
||||
<path d="M 18.00 42.53 L 18.87 42.03 L 18.87 41.03 L 18.00 40.53 L 17.13 41.03 L 17.13 42.03 Z" />
|
||||
<path d="M 20.00 42.53 L 20.87 42.03 L 20.87 41.03 L 20.00 40.53 L 19.13 41.03 L 19.13 42.03 Z" />
|
||||
<path d="M 40.00 42.53 L 40.87 42.03 L 40.87 41.03 L 40.00 40.53 L 39.13 41.03 L 39.13 42.03 Z" />
|
||||
<path d="M 42.00 42.53 L 42.87 42.03 L 42.87 41.03 L 42.00 40.53 L 41.13 41.03 L 41.13 42.03 Z" />
|
||||
<path d="M 44.00 42.53 L 44.87 42.03 L 44.87 41.03 L 44.00 40.53 L 43.13 41.03 L 43.13 42.03 Z" />
|
||||
<path d="M 48.00 42.53 L 48.87 42.03 L 48.87 41.03 L 48.00 40.53 L 47.13 41.03 L 47.13 42.03 Z" />
|
||||
<path d="M 52.00 42.53 L 52.87 42.03 L 52.87 41.03 L 52.00 40.53 L 51.13 41.03 L 51.13 42.03 Z" />
|
||||
<path d="M 56.00 42.53 L 56.87 42.03 L 56.87 41.03 L 56.00 40.53 L 55.13 41.03 L 55.13 42.03 Z" />
|
||||
<path d="M 58.00 42.53 L 58.87 42.03 L 58.87 41.03 L 58.00 40.53 L 57.13 41.03 L 57.13 42.03 Z" />
|
||||
<path d="M 19.00 44.26 L 19.87 43.76 L 19.87 42.76 L 19.00 42.26 L 18.13 42.76 L 18.13 43.76 Z" />
|
||||
<path d="M 21.00 44.26 L 21.87 43.76 L 21.87 42.76 L 21.00 42.26 L 20.13 42.76 L 20.13 43.76 Z" />
|
||||
<path d="M 29.00 44.26 L 29.87 43.76 L 29.87 42.76 L 29.00 42.26 L 28.13 42.76 L 28.13 43.76 Z" />
|
||||
<path d="M 33.00 44.26 L 33.87 43.76 L 33.87 42.76 L 33.00 42.26 L 32.13 42.76 L 32.13 43.76 Z" />
|
||||
<path d="M 35.00 44.26 L 35.87 43.76 L 35.87 42.76 L 35.00 42.26 L 34.13 42.76 L 34.13 43.76 Z" />
|
||||
<path d="M 59.00 44.26 L 59.87 43.76 L 59.87 42.76 L 59.00 42.26 L 58.13 42.76 L 58.13 43.76 Z" />
|
||||
<path d="M 2.00 45.99 L 2.87 45.49 L 2.87 44.49 L 2.00 43.99 L 1.13 44.49 L 1.13 45.49 Z" />
|
||||
<path d="M 6.00 45.99 L 6.87 45.49 L 6.87 44.49 L 6.00 43.99 L 5.13 44.49 L 5.13 45.49 Z" />
|
||||
<path d="M 10.00 45.99 L 10.87 45.49 L 10.87 44.49 L 10.00 43.99 L 9.13 44.49 L 9.13 45.49 Z" />
|
||||
<path d="M 14.00 45.99 L 14.87 45.49 L 14.87 44.49 L 14.00 43.99 L 13.13 44.49 L 13.13 45.49 Z" />
|
||||
<path d="M 18.00 45.99 L 18.87 45.49 L 18.87 44.49 L 18.00 43.99 L 17.13 44.49 L 17.13 45.49 Z" />
|
||||
<path d="M 20.00 45.99 L 20.87 45.49 L 20.87 44.49 L 20.00 43.99 L 19.13 44.49 L 19.13 45.49 Z" />
|
||||
<path d="M 22.00 45.99 L 22.87 45.49 L 22.87 44.49 L 22.00 43.99 L 21.13 44.49 L 21.13 45.49 Z" />
|
||||
<path d="M 24.00 45.99 L 24.87 45.49 L 24.87 44.49 L 24.00 43.99 L 23.13 44.49 L 23.13 45.49 Z" />
|
||||
<path d="M 36.00 45.99 L 36.87 45.49 L 36.87 44.49 L 36.00 43.99 L 35.13 44.49 L 35.13 45.49 Z" />
|
||||
<path d="M 38.00 45.99 L 38.87 45.49 L 38.87 44.49 L 38.00 43.99 L 37.13 44.49 L 37.13 45.49 Z" />
|
||||
<path d="M 40.00 45.99 L 40.87 45.49 L 40.87 44.49 L 40.00 43.99 L 39.13 44.49 L 39.13 45.49 Z" />
|
||||
<path d="M 42.00 45.99 L 42.87 45.49 L 42.87 44.49 L 42.00 43.99 L 41.13 44.49 L 41.13 45.49 Z" />
|
||||
<path d="M 44.00 45.99 L 44.87 45.49 L 44.87 44.49 L 44.00 43.99 L 43.13 44.49 L 43.13 45.49 Z" />
|
||||
<path d="M 46.00 45.99 L 46.87 45.49 L 46.87 44.49 L 46.00 43.99 L 45.13 44.49 L 45.13 45.49 Z" />
|
||||
<path d="M 50.00 45.99 L 50.87 45.49 L 50.87 44.49 L 50.00 43.99 L 49.13 44.49 L 49.13 45.49 Z" />
|
||||
<path d="M 54.00 45.99 L 54.87 45.49 L 54.87 44.49 L 54.00 43.99 L 53.13 44.49 L 53.13 45.49 Z" />
|
||||
<path d="M 3.00 47.72 L 3.87 47.22 L 3.87 46.22 L 3.00 45.72 L 2.13 46.22 L 2.13 47.22 Z" />
|
||||
<path d="M 7.00 47.72 L 7.87 47.22 L 7.87 46.22 L 7.00 45.72 L 6.13 46.22 L 6.13 47.22 Z" />
|
||||
<path d="M 11.00 47.72 L 11.87 47.22 L 11.87 46.22 L 11.00 45.72 L 10.13 46.22 L 10.13 47.22 Z" />
|
||||
<path d="M 15.00 47.72 L 15.87 47.22 L 15.87 46.22 L 15.00 45.72 L 14.13 46.22 L 14.13 47.22 Z" />
|
||||
<path d="M 19.00 47.72 L 19.87 47.22 L 19.87 46.22 L 19.00 45.72 L 18.13 46.22 L 18.13 47.22 Z" />
|
||||
<path d="M 23.00 47.72 L 23.87 47.22 L 23.87 46.22 L 23.00 45.72 L 22.13 46.22 L 22.13 47.22 Z" />
|
||||
<path d="M 27.00 47.72 L 27.87 47.22 L 27.87 46.22 L 27.00 45.72 L 26.13 46.22 L 26.13 47.22 Z" />
|
||||
<path d="M 31.00 47.72 L 31.87 47.22 L 31.87 46.22 L 31.00 45.72 L 30.13 46.22 L 30.13 47.22 Z" />
|
||||
<path d="M 35.00 47.72 L 35.87 47.22 L 35.87 46.22 L 35.00 45.72 L 34.13 46.22 L 34.13 47.22 Z" />
|
||||
<path d="M 39.00 47.72 L 39.87 47.22 L 39.87 46.22 L 39.00 45.72 L 38.13 46.22 L 38.13 47.22 Z" />
|
||||
<path d="M 43.00 47.72 L 43.87 47.22 L 43.87 46.22 L 43.00 45.72 L 42.13 46.22 L 42.13 47.22 Z" />
|
||||
<path d="M 45.00 47.72 L 45.87 47.22 L 45.87 46.22 L 45.00 45.72 L 44.13 46.22 L 44.13 47.22 Z" />
|
||||
<path d="M 49.00 47.72 L 49.87 47.22 L 49.87 46.22 L 49.00 45.72 L 48.13 46.22 L 48.13 47.22 Z" />
|
||||
<path d="M 51.00 47.72 L 51.87 47.22 L 51.87 46.22 L 51.00 45.72 L 50.13 46.22 L 50.13 47.22 Z" />
|
||||
<path d="M 53.00 47.72 L 53.87 47.22 L 53.87 46.22 L 53.00 45.72 L 52.13 46.22 L 52.13 47.22 Z" />
|
||||
<path d="M 57.00 47.72 L 57.87 47.22 L 57.87 46.22 L 57.00 45.72 L 56.13 46.22 L 56.13 47.22 Z" />
|
||||
<path d="M 59.00 47.72 L 59.87 47.22 L 59.87 46.22 L 59.00 45.72 L 58.13 46.22 L 58.13 47.22 Z" />
|
||||
<path d="M 46.00 49.45 L 46.87 48.95 L 46.87 47.95 L 46.00 47.45 L 45.13 47.95 L 45.13 48.95 Z" />
|
||||
<path d="M 52.00 49.45 L 52.87 48.95 L 52.87 47.95 L 52.00 47.45 L 51.13 47.95 L 51.13 48.95 Z" />
|
||||
<path d="M 54.00 49.45 L 54.87 48.95 L 54.87 47.95 L 54.00 47.45 L 53.13 47.95 L 53.13 48.95 Z" />
|
||||
<path d="M 56.00 49.45 L 56.87 48.95 L 56.87 47.95 L 56.00 47.45 L 55.13 47.95 L 55.13 48.95 Z" />
|
||||
<path d="M 1.00 51.19 L 1.87 50.69 L 1.87 49.69 L 1.00 49.19 L 0.13 49.69 L 0.13 50.69 Z" />
|
||||
<path d="M 5.00 51.19 L 5.87 50.69 L 5.87 49.69 L 5.00 49.19 L 4.13 49.69 L 4.13 50.69 Z" />
|
||||
<path d="M 9.00 51.19 L 9.87 50.69 L 9.87 49.69 L 9.00 49.19 L 8.13 49.69 L 8.13 50.69 Z" />
|
||||
<path d="M 13.00 51.19 L 13.87 50.69 L 13.87 49.69 L 13.00 49.19 L 12.13 49.69 L 12.13 50.69 Z" />
|
||||
<path d="M 17.00 51.19 L 17.87 50.69 L 17.87 49.69 L 17.00 49.19 L 16.13 49.69 L 16.13 50.69 Z" />
|
||||
<path d="M 21.00 51.19 L 21.87 50.69 L 21.87 49.69 L 21.00 49.19 L 20.13 49.69 L 20.13 50.69 Z" />
|
||||
<path d="M 25.00 51.19 L 25.87 50.69 L 25.87 49.69 L 25.00 49.19 L 24.13 49.69 L 24.13 50.69 Z" />
|
||||
<path d="M 29.00 51.19 L 29.87 50.69 L 29.87 49.69 L 29.00 49.19 L 28.13 49.69 L 28.13 50.69 Z" />
|
||||
<path d="M 33.00 51.19 L 33.87 50.69 L 33.87 49.69 L 33.00 49.19 L 32.13 49.69 L 32.13 50.69 Z" />
|
||||
<path d="M 37.00 51.19 L 37.87 50.69 L 37.87 49.69 L 37.00 49.19 L 36.13 49.69 L 36.13 50.69 Z" />
|
||||
<path d="M 41.00 51.19 L 41.87 50.69 L 41.87 49.69 L 41.00 49.19 L 40.13 49.69 L 40.13 50.69 Z" />
|
||||
<path d="M 43.00 51.19 L 43.87 50.69 L 43.87 49.69 L 43.00 49.19 L 42.13 49.69 L 42.13 50.69 Z" />
|
||||
<path d="M 45.00 51.19 L 45.87 50.69 L 45.87 49.69 L 45.00 49.19 L 44.13 49.69 L 44.13 50.69 Z" />
|
||||
<path d="M 51.00 51.19 L 51.87 50.69 L 51.87 49.69 L 51.00 49.19 L 50.13 49.69 L 50.13 50.69 Z" />
|
||||
<path d="M 53.00 51.19 L 53.87 50.69 L 53.87 49.69 L 53.00 49.19 L 52.13 49.69 L 52.13 50.69 Z" />
|
||||
<path d="M 57.00 51.19 L 57.87 50.69 L 57.87 49.69 L 57.00 49.19 L 56.13 49.69 L 56.13 50.69 Z" />
|
||||
<path d="M 4.00 52.92 L 4.87 52.42 L 4.87 51.42 L 4.00 50.92 L 3.13 51.42 L 3.13 52.42 Z" />
|
||||
<path d="M 8.00 52.92 L 8.87 52.42 L 8.87 51.42 L 8.00 50.92 L 7.13 51.42 L 7.13 52.42 Z" />
|
||||
<path d="M 10.00 52.92 L 10.87 52.42 L 10.87 51.42 L 10.00 50.92 L 9.13 51.42 L 9.13 52.42 Z" />
|
||||
<path d="M 12.00 52.92 L 12.87 52.42 L 12.87 51.42 L 12.00 50.92 L 11.13 51.42 L 11.13 52.42 Z" />
|
||||
<path d="M 14.00 52.92 L 14.87 52.42 L 14.87 51.42 L 14.00 50.92 L 13.13 51.42 L 13.13 52.42 Z" />
|
||||
<path d="M 16.00 52.92 L 16.87 52.42 L 16.87 51.42 L 16.00 50.92 L 15.13 51.42 L 15.13 52.42 Z" />
|
||||
<path d="M 26.00 52.92 L 26.87 52.42 L 26.87 51.42 L 26.00 50.92 L 25.13 51.42 L 25.13 52.42 Z" />
|
||||
<path d="M 28.00 52.92 L 28.87 52.42 L 28.87 51.42 L 28.00 50.92 L 27.13 51.42 L 27.13 52.42 Z" />
|
||||
<path d="M 32.00 52.92 L 32.87 52.42 L 32.87 51.42 L 32.00 50.92 L 31.13 51.42 L 31.13 52.42 Z" />
|
||||
<path d="M 36.00 52.92 L 36.87 52.42 L 36.87 51.42 L 36.00 50.92 L 35.13 51.42 L 35.13 52.42 Z" />
|
||||
<path d="M 40.00 52.92 L 40.87 52.42 L 40.87 51.42 L 40.00 50.92 L 39.13 51.42 L 39.13 52.42 Z" />
|
||||
<path d="M 42.00 52.92 L 42.87 52.42 L 42.87 51.42 L 42.00 50.92 L 41.13 51.42 L 41.13 52.42 Z" />
|
||||
<path d="M 46.00 52.92 L 46.87 52.42 L 46.87 51.42 L 46.00 50.92 L 45.13 51.42 L 45.13 52.42 Z" />
|
||||
<path d="M 50.00 52.92 L 50.87 52.42 L 50.87 51.42 L 50.00 50.92 L 49.13 51.42 L 49.13 52.42 Z" />
|
||||
<path d="M 54.00 52.92 L 54.87 52.42 L 54.87 51.42 L 54.00 50.92 L 53.13 51.42 L 53.13 52.42 Z" />
|
||||
<path d="M 56.00 52.92 L 56.87 52.42 L 56.87 51.42 L 56.00 50.92 L 55.13 51.42 L 55.13 52.42 Z" />
|
||||
<path d="M 58.00 52.92 L 58.87 52.42 L 58.87 51.42 L 58.00 50.92 L 57.13 51.42 L 57.13 52.42 Z" />
|
||||
<path d="M 1.00 54.65 L 1.87 54.15 L 1.87 53.15 L 1.00 52.65 L 0.13 53.15 L 0.13 54.15 Z" />
|
||||
<path d="M 5.00 54.65 L 5.87 54.15 L 5.87 53.15 L 5.00 52.65 L 4.13 53.15 L 4.13 54.15 Z" />
|
||||
<path d="M 7.00 54.65 L 7.87 54.15 L 7.87 53.15 L 7.00 52.65 L 6.13 53.15 L 6.13 54.15 Z" />
|
||||
<path d="M 9.00 54.65 L 9.87 54.15 L 9.87 53.15 L 9.00 52.65 L 8.13 53.15 L 8.13 54.15 Z" />
|
||||
<path d="M 11.00 54.65 L 11.87 54.15 L 11.87 53.15 L 11.00 52.65 L 10.13 53.15 L 10.13 54.15 Z" />
|
||||
<path d="M 19.00 54.65 L 19.87 54.15 L 19.87 53.15 L 19.00 52.65 L 18.13 53.15 L 18.13 54.15 Z" />
|
||||
<path d="M 21.00 54.65 L 21.87 54.15 L 21.87 53.15 L 21.00 52.65 L 20.13 53.15 L 20.13 54.15 Z" />
|
||||
<path d="M 23.00 54.65 L 23.87 54.15 L 23.87 53.15 L 23.00 52.65 L 22.13 53.15 L 22.13 54.15 Z" />
|
||||
<path d="M 25.00 54.65 L 25.87 54.15 L 25.87 53.15 L 25.00 52.65 L 24.13 53.15 L 24.13 54.15 Z" />
|
||||
<path d="M 37.00 54.65 L 37.87 54.15 L 37.87 53.15 L 37.00 52.65 L 36.13 53.15 L 36.13 54.15 Z" />
|
||||
<path d="M 43.00 54.65 L 43.87 54.15 L 43.87 53.15 L 43.00 52.65 L 42.13 53.15 L 42.13 54.15 Z" />
|
||||
<path d="M 53.00 54.65 L 53.87 54.15 L 53.87 53.15 L 53.00 52.65 L 52.13 53.15 L 52.13 54.15 Z" />
|
||||
<path d="M 59.00 54.65 L 59.87 54.15 L 59.87 53.15 L 59.00 52.65 L 58.13 53.15 L 58.13 54.15 Z" />
|
||||
<path d="M 2.00 56.38 L 2.87 55.88 L 2.87 54.88 L 2.00 54.38 L 1.13 54.88 L 1.13 55.88 Z" />
|
||||
<path d="M 4.00 56.38 L 4.87 55.88 L 4.87 54.88 L 4.00 54.38 L 3.13 54.88 L 3.13 55.88 Z" />
|
||||
<path d="M 8.00 56.38 L 8.87 55.88 L 8.87 54.88 L 8.00 54.38 L 7.13 54.88 L 7.13 55.88 Z" />
|
||||
<path d="M 14.00 56.38 L 14.87 55.88 L 14.87 54.88 L 14.00 54.38 L 13.13 54.88 L 13.13 55.88 Z" />
|
||||
<path d="M 18.00 56.38 L 18.87 55.88 L 18.87 54.88 L 18.00 54.38 L 17.13 54.88 L 17.13 55.88 Z" />
|
||||
<path d="M 20.00 56.38 L 20.87 55.88 L 20.87 54.88 L 20.00 54.38 L 19.13 54.88 L 19.13 55.88 Z" />
|
||||
<path d="M 24.00 56.38 L 24.87 55.88 L 24.87 54.88 L 24.00 54.38 L 23.13 54.88 L 23.13 55.88 Z" />
|
||||
<path d="M 28.00 56.38 L 28.87 55.88 L 28.87 54.88 L 28.00 54.38 L 27.13 54.88 L 27.13 55.88 Z" />
|
||||
<path d="M 34.00 56.38 L 34.87 55.88 L 34.87 54.88 L 34.00 54.38 L 33.13 54.88 L 33.13 55.88 Z" />
|
||||
<path d="M 38.00 56.38 L 38.87 55.88 L 38.87 54.88 L 38.00 54.38 L 37.13 54.88 L 37.13 55.88 Z" />
|
||||
<path d="M 48.00 56.38 L 48.87 55.88 L 48.87 54.88 L 48.00 54.38 L 47.13 54.88 L 47.13 55.88 Z" />
|
||||
<path d="M 52.00 56.38 L 52.87 55.88 L 52.87 54.88 L 52.00 54.38 L 51.13 54.88 L 51.13 55.88 Z" />
|
||||
<path d="M 1.00 58.11 L 1.87 57.61 L 1.87 56.61 L 1.00 56.11 L 0.13 56.61 L 0.13 57.61 Z" />
|
||||
<path d="M 3.00 58.11 L 3.87 57.61 L 3.87 56.61 L 3.00 56.11 L 2.13 56.61 L 2.13 57.61 Z" />
|
||||
<path d="M 5.00 58.11 L 5.87 57.61 L 5.87 56.61 L 5.00 56.11 L 4.13 56.61 L 4.13 57.61 Z" />
|
||||
<path d="M 7.00 58.11 L 7.87 57.61 L 7.87 56.61 L 7.00 56.11 L 6.13 56.61 L 6.13 57.61 Z" />
|
||||
<path d="M 13.00 58.11 L 13.87 57.61 L 13.87 56.61 L 13.00 56.11 L 12.13 56.61 L 12.13 57.61 Z" />
|
||||
<path d="M 17.00 58.11 L 17.87 57.61 L 17.87 56.61 L 17.00 56.11 L 16.13 56.61 L 16.13 57.61 Z" />
|
||||
<path d="M 19.00 58.11 L 19.87 57.61 L 19.87 56.61 L 19.00 56.11 L 18.13 56.61 L 18.13 57.61 Z" />
|
||||
<path d="M 21.00 58.11 L 21.87 57.61 L 21.87 56.61 L 21.00 56.11 L 20.13 56.61 L 20.13 57.61 Z" />
|
||||
<path d="M 23.00 58.11 L 23.87 57.61 L 23.87 56.61 L 23.00 56.11 L 22.13 56.61 L 22.13 57.61 Z" />
|
||||
<path d="M 25.00 58.11 L 25.87 57.61 L 25.87 56.61 L 25.00 56.11 L 24.13 56.61 L 24.13 57.61 Z" />
|
||||
<path d="M 31.00 58.11 L 31.87 57.61 L 31.87 56.61 L 31.00 56.11 L 30.13 56.61 L 30.13 57.61 Z" />
|
||||
<path d="M 35.00 58.11 L 35.87 57.61 L 35.87 56.61 L 35.00 56.11 L 34.13 56.61 L 34.13 57.61 Z" />
|
||||
<path d="M 37.00 58.11 L 37.87 57.61 L 37.87 56.61 L 37.00 56.11 L 36.13 56.61 L 36.13 57.61 Z" />
|
||||
<path d="M 43.00 58.11 L 43.87 57.61 L 43.87 56.61 L 43.00 56.11 L 42.13 56.61 L 42.13 57.61 Z" />
|
||||
<path d="M 53.00 58.11 L 53.87 57.61 L 53.87 56.61 L 53.00 56.11 L 52.13 56.61 L 52.13 57.61 Z" />
|
||||
<path d="M 55.00 58.11 L 55.87 57.61 L 55.87 56.61 L 55.00 56.11 L 54.13 56.61 L 54.13 57.61 Z" />
|
||||
<path d="M 57.00 58.11 L 57.87 57.61 L 57.87 56.61 L 57.00 56.11 L 56.13 56.61 L 56.13 57.61 Z" />
|
||||
<path d="M 59.00 58.11 L 59.87 57.61 L 59.87 56.61 L 59.00 56.11 L 58.13 56.61 L 58.13 57.61 Z" />
|
||||
<path d="M 2.00 59.85 L 2.87 59.35 L 2.87 58.35 L 2.00 57.85 L 1.13 58.35 L 1.13 59.35 Z" />
|
||||
<path d="M 4.00 59.85 L 4.87 59.35 L 4.87 58.35 L 4.00 57.85 L 3.13 58.35 L 3.13 59.35 Z" />
|
||||
<path d="M 6.00 59.85 L 6.87 59.35 L 6.87 58.35 L 6.00 57.85 L 5.13 58.35 L 5.13 59.35 Z" />
|
||||
<path d="M 8.00 59.85 L 8.87 59.35 L 8.87 58.35 L 8.00 57.85 L 7.13 58.35 L 7.13 59.35 Z" />
|
||||
<path d="M 10.00 59.85 L 10.87 59.35 L 10.87 58.35 L 10.00 57.85 L 9.13 58.35 L 9.13 59.35 Z" />
|
||||
<path d="M 12.00 59.85 L 12.87 59.35 L 12.87 58.35 L 12.00 57.85 L 11.13 58.35 L 11.13 59.35 Z" />
|
||||
<path d="M 16.00 59.85 L 16.87 59.35 L 16.87 58.35 L 16.00 57.85 L 15.13 58.35 L 15.13 59.35 Z" />
|
||||
<path d="M 20.00 59.85 L 20.87 59.35 L 20.87 58.35 L 20.00 57.85 L 19.13 58.35 L 19.13 59.35 Z" />
|
||||
<path d="M 22.00 59.85 L 22.87 59.35 L 22.87 58.35 L 22.00 57.85 L 21.13 58.35 L 21.13 59.35 Z" />
|
||||
<path d="M 24.00 59.85 L 24.87 59.35 L 24.87 58.35 L 24.00 57.85 L 23.13 58.35 L 23.13 59.35 Z" />
|
||||
<path d="M 30.00 59.85 L 30.87 59.35 L 30.87 58.35 L 30.00 57.85 L 29.13 58.35 L 29.13 59.35 Z" />
|
||||
<path d="M 32.00 59.85 L 32.87 59.35 L 32.87 58.35 L 32.00 57.85 L 31.13 58.35 L 31.13 59.35 Z" />
|
||||
<path d="M 36.00 59.85 L 36.87 59.35 L 36.87 58.35 L 36.00 57.85 L 35.13 58.35 L 35.13 59.35 Z" />
|
||||
<path d="M 38.00 59.85 L 38.87 59.35 L 38.87 58.35 L 38.00 57.85 L 37.13 58.35 L 37.13 59.35 Z" />
|
||||
<path d="M 42.00 59.85 L 42.87 59.35 L 42.87 58.35 L 42.00 57.85 L 41.13 58.35 L 41.13 59.35 Z" />
|
||||
<path d="M 48.00 59.85 L 48.87 59.35 L 48.87 58.35 L 48.00 57.85 L 47.13 58.35 L 47.13 59.35 Z" />
|
||||
<path d="M 50.00 59.85 L 50.87 59.35 L 50.87 58.35 L 50.00 57.85 L 49.13 58.35 L 49.13 59.35 Z" />
|
||||
<path d="M 52.00 59.85 L 52.87 59.35 L 52.87 58.35 L 52.00 57.85 L 51.13 58.35 L 51.13 59.35 Z" />
|
||||
<path d="M 54.00 59.85 L 54.87 59.35 L 54.87 58.35 L 54.00 57.85 L 53.13 58.35 L 53.13 59.35 Z" />
|
||||
<path d="M 56.00 59.85 L 56.87 59.35 L 56.87 58.35 L 56.00 57.85 L 55.13 58.35 L 55.13 59.35 Z" />
|
||||
<path d="M 58.00 59.85 L 58.87 59.35 L 58.87 58.35 L 58.00 57.85 L 57.13 58.35 L 57.13 59.35 Z" />
|
||||
<path d="M 1.00 61.58 L 1.87 61.08 L 1.87 60.08 L 1.00 59.58 L 0.13 60.08 L 0.13 61.08 Z" />
|
||||
<path d="M 7.00 61.58 L 7.87 61.08 L 7.87 60.08 L 7.00 59.58 L 6.13 60.08 L 6.13 61.08 Z" />
|
||||
<path d="M 17.00 61.58 L 17.87 61.08 L 17.87 60.08 L 17.00 59.58 L 16.13 60.08 L 16.13 61.08 Z" />
|
||||
<path d="M 21.00 61.58 L 21.87 61.08 L 21.87 60.08 L 21.00 59.58 L 20.13 60.08 L 20.13 61.08 Z" />
|
||||
<path d="M 23.00 61.58 L 23.87 61.08 L 23.87 60.08 L 23.00 59.58 L 22.13 60.08 L 22.13 61.08 Z" />
|
||||
<path d="M 31.00 61.58 L 31.87 61.08 L 31.87 60.08 L 31.00 59.58 L 30.13 60.08 L 30.13 61.08 Z" />
|
||||
<path d="M 33.00 61.58 L 33.87 61.08 L 33.87 60.08 L 33.00 59.58 L 32.13 60.08 L 32.13 61.08 Z" />
|
||||
<path d="M 37.00 61.58 L 37.87 61.08 L 37.87 60.08 L 37.00 59.58 L 36.13 60.08 L 36.13 61.08 Z" />
|
||||
<path d="M 39.00 61.58 L 39.87 61.08 L 39.87 60.08 L 39.00 59.58 L 38.13 60.08 L 38.13 61.08 Z" />
|
||||
<path d="M 51.00 61.58 L 51.87 61.08 L 51.87 60.08 L 51.00 59.58 L 50.13 60.08 L 50.13 61.08 Z" />
|
||||
<path d="M 59.00 61.58 L 59.87 61.08 L 59.87 60.08 L 59.00 59.58 L 58.13 60.08 L 58.13 61.08 Z" />
|
||||
<circle cx="29.00" cy="32.87" r="9.00" />
|
||||
<circle cx="29.00" cy="32.87" r="7.43" fill="#FFFFFF" />
|
||||
<circle cx="29.00" cy="32.87" r="5.86" />
|
||||
<circle cx="29.00" cy="32.87" r="4.29" fill="#FFFFFF" />
|
||||
<circle cx="29.00" cy="32.87" r="2.72" />
|
||||
<circle cx="29.00" cy="32.87" r="1.15" fill="#FFFFFF" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 37 KiB |
@ -1,6 +1,6 @@
|
||||
/*
|
||||
libzint - the open source barcode library
|
||||
Copyright (C) 2020 Robin Stuart <rstuart114@gmail.com>
|
||||
Copyright (C) 2020 - 2021 Robin Stuart <rstuart114@gmail.com>
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -120,6 +120,7 @@ static void test_print(int index, int generate, int debug) {
|
||||
struct item {
|
||||
int symbology;
|
||||
int whitespace_width;
|
||||
int whitespace_height;
|
||||
int option_1;
|
||||
int option_2;
|
||||
char *fgcolour;
|
||||
@ -128,8 +129,9 @@ static void test_print(int index, int generate, int debug) {
|
||||
char* expected_file;
|
||||
};
|
||||
struct item data[] = {
|
||||
/* 0*/ { BARCODE_PDF417, 5, -1, -1, "147AD0", "FC9630", "123", "../data/bmp/pdf417_fg_bg.bmp" },
|
||||
/* 1*/ { BARCODE_ULTRA, 5, -1, -1, "147AD0", "FC9630", "123", "../data/bmp/ultracode_fg_bg.bmp" },
|
||||
/* 0*/ { BARCODE_PDF417, 5, -1, -1, -1, "147AD0", "FC9630", "123", "../data/bmp/pdf417_fg_bg.bmp" },
|
||||
/* 1*/ { BARCODE_ULTRA, 5, -1, -1, -1, "147AD0", "FC9630", "123", "../data/bmp/ultracode_fg_bg.bmp" },
|
||||
/* 2*/ { BARCODE_PDF417COMP, 2, 2, -1, -1, "", "", "123", "../data/bmp/pdf417comp_hvwsp2.bmp" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
|
||||
@ -156,6 +158,9 @@ static void test_print(int index, int generate, int debug) {
|
||||
if (data[i].whitespace_width != -1) {
|
||||
symbol->whitespace_width = data[i].whitespace_width;
|
||||
}
|
||||
if (data[i].whitespace_height != -1) {
|
||||
symbol->whitespace_height = data[i].whitespace_height;
|
||||
}
|
||||
if (*data[i].fgcolour) {
|
||||
strcpy(symbol->fgcolour, data[i].fgcolour);
|
||||
}
|
||||
@ -171,8 +176,9 @@ static void test_print(int index, int generate, int debug) {
|
||||
assert_zero(ret, "i:%d %s ZBarcode_Print %s ret %d != 0\n", i, testUtilBarcodeName(data[i].symbology), symbol->outfile, ret);
|
||||
|
||||
if (generate) {
|
||||
printf(" /*%3d*/ { %s, %d, %d, %d, \"%s\", \"%s\", \"%s\", \"%s\"},\n",
|
||||
i, testUtilBarcodeName(data[i].symbology), data[i].whitespace_width, data[i].option_1, data[i].option_2, data[i].fgcolour, data[i].bgcolour,
|
||||
printf(" /*%3d*/ { %s, %d, %d, %d, %d, \"%s\", \"%s\", \"%s\", \"%s\"},\n",
|
||||
i, testUtilBarcodeName(data[i].symbology), data[i].whitespace_width, data[i].whitespace_height,
|
||||
data[i].option_1, data[i].option_2, data[i].fgcolour, data[i].bgcolour,
|
||||
testUtilEscape(data[i].data, length, escaped, escaped_size), data[i].expected_file);
|
||||
ret = rename(symbol->outfile, data[i].expected_file);
|
||||
assert_zero(ret, "i:%d rename(%s, %s) ret %d != 0\n", i, symbol->outfile, data[i].expected_file, ret);
|
||||
|
@ -120,6 +120,7 @@ static void test_print(int index, int generate, int debug) {
|
||||
int border_width;
|
||||
int output_options;
|
||||
int whitespace_width;
|
||||
int whitespace_height;
|
||||
int show_hrt;
|
||||
int option_1;
|
||||
int option_2;
|
||||
@ -133,49 +134,56 @@ static void test_print(int index, int generate, int debug) {
|
||||
char *comment;
|
||||
};
|
||||
struct item data[] = {
|
||||
/* 0*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, -1, -1, -1, -1, 0, 0, "", "", "Égjpqy", "", "../data/png/code128_egrave_bold.png", "" },
|
||||
/* 1*/ { BARCODE_CODE128, UNICODE_MODE, 3, BOLD_TEXT | BARCODE_BOX, -1, -1, -1, -1, 0, 0, "", "", "Égjpqy", "", "../data/png/code128_egrave_bold_box3.png", "" },
|
||||
/* 2*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, -1, 3, -1, 0, 0, "", "", "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", "../data/png/gs1_128_cc_fig12.png", "" },
|
||||
/* 3*/ { BARCODE_CODABLOCKF, -1, 3, -1, -1, -1, 3, -1, 0, 0, "", "", "AAAAAAAAA", "", "../data/png/codablockf_3rows.png", "" },
|
||||
/* 4*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "9771384524017+12", "", "../data/png/ean13_2addon_ggs_5.2.2.5.1-2.png", "" },
|
||||
/* 5*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "9780877799306+54321", "", "../data/png/ean13_5addon_ggs_5.2.2.5.2-2.png", "" },
|
||||
/* 6*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, 1, -1, 0, 0, "", "", "123456789012+12", "[91]123456789012345678901", "../data/png/ean13_cc_2addon_cca_4x4.png", "" },
|
||||
/* 7*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, 2, -1, 0, 0, "", "", "123456789012+54321", "[91]1234567890", "../data/png/ean13_cc_5addon_ccb_3x4.png", "" },
|
||||
/* 8*/ { BARCODE_EANX_CC, -1, -1, -1, -1, 0, 2, -1, 0, 0, "", "", "123456789012+54321", "[91]1234567890", "../data/png/ean13_cc_5addon_ccb_3x4_notext.png", "" },
|
||||
/* 9*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "012345678905+24", "", "../data/png/upca_2addon_ggs_5.2.6.6-5.png", "" },
|
||||
/* 10*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "614141234417+12345", "", "../data/png/upca_5addon.png", "" },
|
||||
/* 11*/ { BARCODE_UPCA, -1, -1, -1, -1, 0, -1, -1, 0, 0, "", "", "614141234417+12345", "", "../data/png/upca_5addon_notext.png", "" },
|
||||
/* 12*/ { BARCODE_UPCA, -1, 3, BARCODE_BIND, -1, -1, -1, -1, 0, 0, "", "", "614141234417+12345", "", "../data/png/upca_5addon_bind3.png", "" },
|
||||
/* 13*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, 1, -1, 0, 0, "", "", "12345678901+12", "[91]123456789", "../data/png/upca_cc_2addon_cca_3x4.png", "" },
|
||||
/* 14*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, 2, -1, 0, 0, "", "", "12345678901+12121", "[91]1234567890123", "../data/png/upca_cc_5addon_ccb_4x4.png", "" },
|
||||
/* 15*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, 0, 2, -1, 0, 0, "", "", "12345678901+12121", "[91]1234567890123", "../data/png/upca_cc_5addon_ccb_4x4_notext.png", "" },
|
||||
/* 16*/ { BARCODE_UPCA_CC, -1, 3, BARCODE_BIND, -1, -1, 2, -1, 0, 0, "", "", "12345678901+12121", "[91]1234567890123", "../data/png/upca_cc_5addon_ccb_4x4_bind3.png", "" },
|
||||
/* 17*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "1234567+12", "", "../data/png/upce_2addon.png", "" },
|
||||
/* 18*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "1234567+12345", "", "../data/png/upce_5addon.png", "" },
|
||||
/* 19*/ { BARCODE_UPCE, -1, -1, SMALL_TEXT, -1, -1, -1, -1, 0, 0, "", "", "1234567+12345", "", "../data/png/upce_5addon_small.png", "" },
|
||||
/* 20*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, 1, -1, 0, 0, "", "", "0654321+89", "[91]1", "../data/png/upce_cc_2addon_cca_5x2.png", "" },
|
||||
/* 21*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, 2, -1, 0, 0, "", "", "1876543+56789", "[91]12345", "../data/png/upce_cc_5addon_ccb_8x2.png", "" },
|
||||
/* 22*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, 0, 2, -1, 0, 0, "", "", "1876543+56789", "[91]12345", "../data/png/upce_cc_5addon_ccb_8x2_notext.png", "" },
|
||||
/* 23*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "1234567+12", "", "../data/png/ean8_2addon.png", "" },
|
||||
/* 24*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "1234567+12345", "", "../data/png/ean8_5addon.png", "" },
|
||||
/* 25*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "9876543+65", "[91]1234567", "../data/png/ean8_cc_2addon_cca_4x3.png", "" },
|
||||
/* 26*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "9876543+74083", "[91]123456789012345678", "../data/png/ean8_cc_5addon_ccb_8x3.png", "" },
|
||||
/* 27*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "12345", "", "../data/png/ean5.png", "" },
|
||||
/* 28*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "12", "", "../data/png/ean2.png", "" },
|
||||
/* 29*/ { BARCODE_CODE39, -1, -1, SMALL_TEXT, -1, -1, -1, -1, 0, 0, "", "", "123", "", "../data/png/code39_small.png", "" },
|
||||
/* 30*/ { BARCODE_POSTNET, -1, -1, -1, -1, -1, -1, -1, 0, 3.5, "", "", "12345", "", "../data/png/postnet_zip.png", "300 dpi, using 1/43in X, 300 / 43 / 2 = ~3.5 scale" },
|
||||
/* 31*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "CFCECDCC", "12345", "", "../data/png/pdf417_bgalpha.png", "" },
|
||||
/* 32*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, 0, 0, "30313233", "", "12345", "", "../data/png/pdf417_fgalpha.png", "" },
|
||||
/* 33*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, 0, 0, "20212244", "CFCECDCC", "12345", "", "../data/png/pdf417_bgfgalpha.png", "" },
|
||||
/* 34*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, 0, 0, "0000007F", "FF000033", "12345", "", "../data/png/ultra_bgfgalpha.png", "" },
|
||||
/* 35*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, 0, 0, "", "FF000033", "12345", "", "../data/png/ultra_bgalpha.png", "" },
|
||||
/* 36*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, 0, 0, "0000007F", "FF0000", "12345", "", "../data/png/ultra_fgalpha.png", "" },
|
||||
/* 37*/ { BARCODE_ULTRA, -1, -1, -1, -1, -1, -1, -1, 0, 0, "0000007F", "", "12345", "", "../data/png/ultra_fgalpha_nobg.png", "" },
|
||||
/* 38*/ { BARCODE_ULTRA, -1, -1, -1, -1, -1, -1, -1, 0, 0.5f, "", "", "1", "", "../data/png/ultra_odd.png", "" },
|
||||
/* 39*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, 0, 0.5f, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_0.5.png", "6 dpmm, 150 dpi" },
|
||||
/* 40*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BOX, 3, -1, -1, -1, 0, 0.7f, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_0.7_wsp3_box1.png", "8 dpmm, 200 dpi" },
|
||||
/* 41*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, 0, 1.4f, "1111117F", "EEEEEEEE", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_1.4_bgfgalpha.png", "16 dpmm, 400 dpi" },
|
||||
/* 42*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, 0, 2.1f, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_2.1.png", "24 dpmm, 600 dpi" },
|
||||
/* 0*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, -1, -1, -1, -1, -1, 0, 0, "", "", "Égjpqy", "", "../data/png/code128_egrave_bold.png", "" },
|
||||
/* 1*/ { BARCODE_CODE128, UNICODE_MODE, 3, BOLD_TEXT | BARCODE_BOX, -1, -1, -1, -1, -1, 0, 0, "", "", "Égjpqy", "", "../data/png/code128_egrave_bold_box3.png", "" },
|
||||
/* 2*/ { BARCODE_CODE128, UNICODE_MODE, 2, BOLD_TEXT | BARCODE_BOX, 2, 2, -1, -1, -1, 0, 0, "", "", "Égjpqy", "", "../data/png/code128_egrave_bold_hvwsp2_box2.png", "" },
|
||||
/* 3*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, -1, -1, 3, -1, 0, 0, "", "", "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", "../data/png/gs1_128_cc_fig12.png", "" },
|
||||
/* 4*/ { BARCODE_CODABLOCKF, -1, 3, -1, -1, -1, -1, 3, -1, 0, 0, "", "", "AAAAAAAAA", "", "../data/png/codablockf_3rows.png", "" },
|
||||
/* 5*/ { BARCODE_CODABLOCKF, -1, -1, -1, 2, 2, -1, -1, -1, 0, 0, "", "", "AAAAAAAAA", "", "../data/png/codablockf_hvwsp2.png", "" },
|
||||
/* 6*/ { BARCODE_CODABLOCKF, -1, 2, BARCODE_BOX, 2, 2, -1, -1, -1, 0, 0, "", "", "AAAAAAAAA", "", "../data/png/codablockf_hvwsp2_box2.png", "" },
|
||||
/* 7*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "9771384524017+12", "", "../data/png/ean13_2addon_ggs_5.2.2.5.1-2.png", "" },
|
||||
/* 8*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "9780877799306+54321", "", "../data/png/ean13_5addon_ggs_5.2.2.5.2-2.png", "" },
|
||||
/* 9*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 1, -1, 0, 0, "", "", "123456789012+12", "[91]123456789012345678901", "../data/png/ean13_cc_2addon_cca_4x4.png", "" },
|
||||
/* 10*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 2, -1, 0, 0, "", "", "123456789012+54321", "[91]1234567890", "../data/png/ean13_cc_5addon_ccb_3x4.png", "" },
|
||||
/* 11*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, 0, 2, -1, 0, 0, "", "", "123456789012+54321", "[91]1234567890", "../data/png/ean13_cc_5addon_ccb_3x4_notext.png", "" },
|
||||
/* 12*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "012345678905+24", "", "../data/png/upca_2addon_ggs_5.2.6.6-5.png", "" },
|
||||
/* 13*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "614141234417+12345", "", "../data/png/upca_5addon.png", "" },
|
||||
/* 14*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, 0, -1, -1, 0, 0, "", "", "614141234417+12345", "", "../data/png/upca_5addon_notext.png", "" },
|
||||
/* 15*/ { BARCODE_UPCA, -1, 3, BARCODE_BIND, -1, -1, -1, -1, -1, 0, 0, "", "", "614141234417+12345", "", "../data/png/upca_5addon_bind3.png", "" },
|
||||
/* 16*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 1, -1, 0, 0, "", "", "12345678901+12", "[91]123456789", "../data/png/upca_cc_2addon_cca_3x4.png", "" },
|
||||
/* 17*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 2, -1, 0, 0, "", "", "12345678901+12121", "[91]1234567890123", "../data/png/upca_cc_5addon_ccb_4x4.png", "" },
|
||||
/* 18*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, 0, 2, -1, 0, 0, "", "", "12345678901+12121", "[91]1234567890123", "../data/png/upca_cc_5addon_ccb_4x4_notext.png", "" },
|
||||
/* 19*/ { BARCODE_UPCA_CC, -1, 3, BARCODE_BIND, -1, -1, -1, 2, -1, 0, 0, "", "", "12345678901+12121", "[91]1234567890123", "../data/png/upca_cc_5addon_ccb_4x4_bind3.png", "" },
|
||||
/* 20*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "1234567+12", "", "../data/png/upce_2addon.png", "" },
|
||||
/* 21*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "1234567+12345", "", "../data/png/upce_5addon.png", "" },
|
||||
/* 22*/ { BARCODE_UPCE, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, 0, 0, "", "", "1234567+12345", "", "../data/png/upce_5addon_small.png", "" },
|
||||
/* 23*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, 0, 0, "", "", "0654321+89", "[91]1", "../data/png/upce_cc_2addon_cca_5x2.png", "" },
|
||||
/* 24*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 2, -1, 0, 0, "", "", "1876543+56789", "[91]12345", "../data/png/upce_cc_5addon_ccb_8x2.png", "" },
|
||||
/* 25*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, 0, 2, -1, 0, 0, "", "", "1876543+56789", "[91]12345", "../data/png/upce_cc_5addon_ccb_8x2_notext.png", "" },
|
||||
/* 26*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "1234567+12", "", "../data/png/ean8_2addon.png", "" },
|
||||
/* 27*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "1234567+12345", "", "../data/png/ean8_5addon.png", "" },
|
||||
/* 28*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "9876543+65", "[91]1234567", "../data/png/ean8_cc_2addon_cca_4x3.png", "" },
|
||||
/* 29*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "9876543+74083", "[91]123456789012345678", "../data/png/ean8_cc_5addon_ccb_8x3.png", "" },
|
||||
/* 30*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "12345", "", "../data/png/ean5.png", "" },
|
||||
/* 31*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "", "", "12", "", "../data/png/ean2.png", "" },
|
||||
/* 32*/ { BARCODE_CODE39, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, 0, 0, "", "", "123", "", "../data/png/code39_small.png", "" },
|
||||
/* 33*/ { BARCODE_POSTNET, -1, -1, -1, -1, -1, -1, -1, -1, 0, 3.5, "", "", "12345", "", "../data/png/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, "", "CFCECDCC", "12345", "", "../data/png/pdf417_bgalpha.png", "" },
|
||||
/* 35*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "30313233", "", "12345", "", "../data/png/pdf417_fgalpha.png", "" },
|
||||
/* 36*/ { BARCODE_PDF417, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "20212244", "CFCECDCC", "12345", "", "../data/png/pdf417_bgfgalpha.png", "" },
|
||||
/* 37*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, -1, 0, 0, "0000007F", "FF000033", "12345", "", "../data/png/ultra_bgfgalpha.png", "" },
|
||||
/* 38*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, -1, 0, 0, "", "FF000033", "12345", "", "../data/png/ultra_bgalpha.png", "" },
|
||||
/* 39*/ { BARCODE_ULTRA, -1, -1, -1, 2, -1, -1, -1, -1, 0, 0, "0000007F", "FF0000", "12345", "", "../data/png/ultra_fgalpha.png", "" },
|
||||
/* 40*/ { BARCODE_ULTRA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, "0000007F", "", "12345", "", "../data/png/ultra_fgalpha_nobg.png", "" },
|
||||
/* 41*/ { BARCODE_ULTRA, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0.5f, "", "", "1", "", "../data/png/ultra_odd.png", "" },
|
||||
/* 42*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0.5f, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_0.5.png", "6 dpmm, 150 dpi" },
|
||||
/* 43*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BOX, 3, -1, -1, -1, -1, 0, 0.7f, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_0.7_wsp3_box1.png", "8 dpmm, 200 dpi" },
|
||||
/* 44*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1.4f, "1111117F", "EEEEEEEE", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_1.4_bgfgalpha.png", "16 dpmm, 400 dpi" },
|
||||
/* 45*/ { BARCODE_MAXICODE, -1, -1, -1, -1, -1, -1, -1, -1, 0, 2.1f, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_2.1.png", "24 dpmm, 600 dpi" },
|
||||
/* 46*/ { BARCODE_MAXICODE, -1, 2, BARCODE_BOX, 1, 1, -1, -1, -1, 0, 0, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_hvwsp1_box2.png", "" },
|
||||
/* 47*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BIND, -1, 1, -1, -1, -1, 0, 0, "", "", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/png/maxicode_vwsp1_bind1.png", "" },
|
||||
/* 48*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, -1, -1, -1, -1, -1, 0, 2.0f, "", "", "1234", "", "../data/png/datamatrix_2.0_bind1_dotty.png", "" },
|
||||
/* 49*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, 1, 1, -1, -1, -1, 0, 2.0f, "", "", "1234", "", "../data/png/datamatrix_2.0_hvwsp1_bind1_dotty.png", "" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
|
||||
@ -215,6 +223,9 @@ static void test_print(int index, int generate, int debug) {
|
||||
if (data[i].whitespace_width != -1) {
|
||||
symbol->whitespace_width = data[i].whitespace_width;
|
||||
}
|
||||
if (data[i].whitespace_height != -1) {
|
||||
symbol->whitespace_height = data[i].whitespace_height;
|
||||
}
|
||||
if (*data[i].fgcolour) {
|
||||
strcpy(symbol->fgcolour, data[i].fgcolour);
|
||||
}
|
||||
@ -237,9 +248,9 @@ static void test_print(int index, int generate, int debug) {
|
||||
assert_zero(ret, "i:%d %s ZBarcode_Print %s ret %d != 0\n", i, testUtilBarcodeName(data[i].symbology), symbol->outfile, ret);
|
||||
|
||||
if (generate) {
|
||||
printf(" /*%3d*/ { %s, %s, %d, %s, %d, %d, %d, %d, %d, %.5g, \"%s\",\"%s\", \"%s\", \"%s\", \"%s\", \"%s\" },\n",
|
||||
printf(" /*%3d*/ { %s, %s, %d, %s, %d, %d, %d, %d, %d, %d, %.5g, \"%s\",\"%s\", \"%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].show_hrt, data[i].option_1, data[i].option_2, data[i].height, data[i].scale, data[i].fgcolour, data[i].bgcolour,
|
||||
data[i].whitespace_width, data[i].whitespace_height, data[i].show_hrt, data[i].option_1, data[i].option_2, data[i].height, data[i].scale, data[i].fgcolour, data[i].bgcolour,
|
||||
testUtilEscape(data[i].data, length, escaped, escaped_size), data[i].composite, data[i].expected_file, data[i].comment);
|
||||
ret = rename(symbol->outfile, data[i].expected_file);
|
||||
assert_zero(ret, "i:%d rename(%s, %s) ret %d != 0\n", i, symbol->outfile, data[i].expected_file, ret);
|
||||
|
@ -257,7 +257,7 @@ static void test_buffer(int index, int generate, int debug) {
|
||||
for (int i = 0; i < data_size; i++) {
|
||||
|
||||
if (index != -1 && i != index) continue;
|
||||
if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i);
|
||||
if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i); // ZINT_DEBUG_TEST_PRINT 16
|
||||
|
||||
struct zint_symbol *symbol = ZBarcode_Create();
|
||||
assert_nonnull(symbol, "Symbol not created\n");
|
||||
@ -281,7 +281,7 @@ static void test_buffer(int index, int generate, int debug) {
|
||||
assert_zero(ret, "i:%d ZBarcode_Buffer(%s) ret %d != 0 (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, symbol->errtxt);
|
||||
assert_nonnull(symbol->bitmap, "i:%d ZBarcode_Buffer(%s) bitmap NULL\n", i, testUtilBarcodeName(data[i].symbology));
|
||||
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL);
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16
|
||||
|
||||
if (generate) {
|
||||
printf(" /*%3d*/ { %s, \"%s\", \"%s\", %d, %d, %d, %d, %d },\n",
|
||||
@ -366,7 +366,7 @@ static void test_upcean_hrt(int index, int debug) {
|
||||
for (int i = 0; i < data_size; i++) {
|
||||
|
||||
if (index != -1 && i != index) continue;
|
||||
if ((debug & ZINT_DEBUG_TEST_PRINT) && !(debug & ZINT_DEBUG_TEST_LESS_NOISY)) printf("i:%d\n", i);
|
||||
if ((debug & ZINT_DEBUG_TEST_PRINT) && !(debug & ZINT_DEBUG_TEST_LESS_NOISY)) printf("i:%d\n", i); // ZINT_DEBUG_TEST_PRINT 16
|
||||
|
||||
struct zint_symbol *symbol = ZBarcode_Create();
|
||||
assert_nonnull(symbol, "Symbol not created\n");
|
||||
@ -383,7 +383,7 @@ static void test_upcean_hrt(int index, int debug) {
|
||||
assert_equal(ret, data[i].ret, "i:%d ret %d != %d\n", i, ret, data[i].ret);
|
||||
assert_nonnull(symbol->bitmap, "i:%d (%d) symbol->bitmap NULL\n", i, data[i].symbology);
|
||||
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL);
|
||||
if (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 (%s) symbol->height %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->height, data[i].expected_height);
|
||||
assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%s) symbol->rows %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->rows, data[i].expected_rows);
|
||||
@ -500,7 +500,7 @@ static void test_row_separator(int index, int debug) {
|
||||
|
||||
int j, separator_bits_set;
|
||||
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL);
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16
|
||||
|
||||
for (j = data[i].expected_separator_row; j < data[i].expected_separator_row + data[i].expected_separator_height; j++) {
|
||||
separator_bits_set = is_row_column_black(symbol, j, data[i].expected_separator_col);
|
||||
@ -580,7 +580,7 @@ static void test_stacking(int index, int debug) {
|
||||
|
||||
int j, separator_bits_set;
|
||||
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL);
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16
|
||||
|
||||
if (data[i].expected_separator_row != -1) {
|
||||
for (j = data[i].expected_separator_row; j < data[i].expected_separator_row + data[i].expected_separator_height; j++) {
|
||||
@ -613,6 +613,7 @@ static void test_output_options(int index, int debug) {
|
||||
struct item {
|
||||
int symbology;
|
||||
int whitespace_width;
|
||||
int whitespace_height;
|
||||
int border_width;
|
||||
int output_options;
|
||||
int rotate_angle;
|
||||
@ -630,78 +631,84 @@ static void test_output_options(int index, int debug) {
|
||||
};
|
||||
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
|
||||
struct item data[] = {
|
||||
/* 0*/ { BARCODE_CODE128, -1, -1, -1, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 4 },
|
||||
/* 1*/ { BARCODE_CODE128, -1, -1, -1, 180, "A123", 0, 50, 1, 79, 158, 116, 0, 115, 4 },
|
||||
/* 2*/ { BARCODE_CODE128, -1, 2, -1, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 4 },
|
||||
/* 3*/ { BARCODE_CODE128, -1, 2, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 158, 124, 1, 0, 4 },
|
||||
/* 4*/ { BARCODE_CODE128, -1, 2, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 158, 124, 0, 4, 4 },
|
||||
/* 5*/ { BARCODE_CODE128, -1, 2, BARCODE_BOX, 0, "A123", 0, 50, 1, 79, 166, 124, 1, 4, 4 },
|
||||
/* 6*/ { BARCODE_CODE128, -1, 0, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 4 },
|
||||
/* 7*/ { BARCODE_CODE128, -1, 0, BARCODE_BOX, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 4, 4 },
|
||||
/* 8*/ { BARCODE_CODE128, -1, -1, -1, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 8 },
|
||||
/* 9*/ { BARCODE_CODE128, 3, -1, -1, 0, "A123", 0, 50, 1, 79, 170, 116, 1, 0, 8 },
|
||||
/* 10*/ { BARCODE_CODE128, 3, 4, -1, 0, "A123", 0, 50, 1, 79, 170, 116, 1, 0, 8 },
|
||||
/* 11*/ { BARCODE_CODE128, 3, 4, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 170, 132, 1, 0, 0 },
|
||||
/* 12*/ { BARCODE_CODE128, 3, 4, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 170, 132, 0, 8, 0 },
|
||||
/* 13*/ { BARCODE_CODE128, 3, 4, BARCODE_BOX, 0, "A123", 0, 50, 1, 79, 186, 132, 1, 8, 0 },
|
||||
/* 14*/ { BARCODE_CODE128, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1, -1, -1, -1, -1 },
|
||||
/* 15*/ { BARCODE_CODE128, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 4 },
|
||||
/* 16*/ { BARCODE_CODE128, -1, -1, OUT_BUFFER_INTERMEDIATE, 180, "A123", 0, 50, 1, 79, 158, 116, 0, 115, 4 },
|
||||
/* 17*/ { BARCODE_CODE128, 3, 4, BARCODE_BOX | OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 50, 1, 79, 186, 132, 1, 8, 0 },
|
||||
/* 18*/ { BARCODE_QRCODE, -1, -1, -1, 0, "A123", 0, 21, 21, 21, 42, 42, 0, 2, 2 },
|
||||
/* 19*/ { BARCODE_QRCODE, -1, -1, -1, 180, "A123", 0, 21, 21, 21, 42, 42, 0, 39, 2 },
|
||||
/* 20*/ { BARCODE_QRCODE, -1, 3, -1, 0, "A123", 0, 21, 21, 21, 42, 42, 0, 2, 2 },
|
||||
/* 21*/ { BARCODE_QRCODE, -1, 3, BARCODE_BIND, 0, "A123", 0, 21, 21, 21, 42, 54, 1, 2, 2 },
|
||||
/* 22*/ { BARCODE_QRCODE, -1, 3, BARCODE_BIND, 0, "A123", 0, 21, 21, 21, 42, 54, 0, 20, 0 },
|
||||
/* 23*/ { BARCODE_QRCODE, -1, 3, BARCODE_BOX, 0, "A123", 0, 21, 21, 21, 54, 54, 1, 20, 0 },
|
||||
/* 24*/ { BARCODE_QRCODE, -1, -1, -1, 0, "A123", 0, 21, 21, 21, 42, 42, 1, 0, 0 },
|
||||
/* 25*/ { BARCODE_QRCODE, 5, -1, -1, 0, "A123", 0, 21, 21, 21, 62, 42, 0, 0, 0 },
|
||||
/* 26*/ { BARCODE_QRCODE, 5, 6, -1, 0, "A123", 0, 21, 21, 21, 62, 42, 0, 0, 0 },
|
||||
/* 27*/ { BARCODE_QRCODE, 5, 6, BARCODE_BIND, 0, "A123", 0, 21, 21, 21, 62, 66, 1, 0, 0 },
|
||||
/* 28*/ { BARCODE_QRCODE, 5, 6, BARCODE_BIND, 0, "A123", 0, 21, 21, 21, 62, 66, 0, 12, 0 },
|
||||
/* 29*/ { BARCODE_QRCODE, 5, 6, BARCODE_BOX, 0, "A123", 0, 21, 21, 21, 86, 66, 1, 12, 0 },
|
||||
/* 30*/ { BARCODE_QRCODE, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 1, 1 },
|
||||
/* 31*/ { BARCODE_QRCODE, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 2, 2 },
|
||||
/* 32*/ { BARCODE_QRCODE, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 41, 1 },
|
||||
/* 33*/ { BARCODE_QRCODE, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 40, 2 },
|
||||
/* 34*/ { BARCODE_QRCODE, -1, 4, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 1, 1 },
|
||||
/* 35*/ { BARCODE_QRCODE, -1, 4, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 2, 2 },
|
||||
/* 36*/ { BARCODE_QRCODE, -1, 4, BARCODE_BIND | BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 59, -1, -1, -1 }, // TODO: fix (bind/box in dotty mode)
|
||||
/* 37*/ { BARCODE_QRCODE, 1, 4, BARCODE_BOX | BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 63, 59, -1, -1, -1 }, // TODO: fix (bind/box in dotty mode)
|
||||
/* 38*/ { BARCODE_QRCODE, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 21, 21, 21, 42, 42, 1, 1, 1 },
|
||||
/* 39*/ { BARCODE_QRCODE, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 21, 21, 21, 42, 42, 0, 2, 2 },
|
||||
/* 40*/ { BARCODE_QRCODE, -1, -1, BARCODE_DOTTY_MODE | OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 1, 1 },
|
||||
/* 41*/ { BARCODE_QRCODE, -1, -1, BARCODE_DOTTY_MODE | OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 2, 2 },
|
||||
/* 42*/ { BARCODE_QRCODE, -1, -1, BARCODE_DOTTY_MODE | OUT_BUFFER_INTERMEDIATE, 180, "A123", 0, 21, 21, 21, 43, 43, 1, 41, 1 },
|
||||
/* 43*/ { BARCODE_QRCODE, -1, -1, BARCODE_DOTTY_MODE | OUT_BUFFER_INTERMEDIATE, 180, "A123", 0, 21, 21, 21, 43, 43, 0, 40, 2 },
|
||||
/* 44*/ { BARCODE_MAXICODE, -1, -1, -1, 0, "A123", 0, 165, 33, 30, 299, 298, 0, 4, 4 },
|
||||
/* 45*/ { BARCODE_MAXICODE, -1, -1, -1, 0, "A123", 0, 165, 33, 30, 299, 298, 1, 4, 14 },
|
||||
/* 46*/ { BARCODE_MAXICODE, -1, -1, -1, 270, "A123", 0, 165, 33, 30, 298, 299, 1, 4, 4 },
|
||||
/* 47*/ { BARCODE_MAXICODE, -1, -1, -1, 270, "A123", 0, 165, 33, 30, 298, 299, 0, 4, 14 },
|
||||
/* 48*/ { BARCODE_MAXICODE, -1, 5, -1, 0, "A123", 0, 165, 33, 30, 299, 298, 0, 0, 0 },
|
||||
/* 49*/ { BARCODE_MAXICODE, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299, 298 + 50 * 2, 1, 0, 0 },
|
||||
/* 50*/ { BARCODE_MAXICODE, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299, 298 + 50 * 2, 0, 50, 0 },
|
||||
/* 51*/ { BARCODE_MAXICODE, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299, 298 + 50 * 2, 0, 347, 50 },
|
||||
/* 52*/ { BARCODE_MAXICODE, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299, 298 + 50 * 2, 1, 348, 50 },
|
||||
/* 53*/ { BARCODE_MAXICODE, -1, 5, BARCODE_BOX, 0, "A123", 0, 165, 33, 30, 299 + 50 * 2, 298 + 50 * 2, 1, 50, 0 },
|
||||
/* 54*/ { BARCODE_MAXICODE, -1, 5, BARCODE_BOX, 0, "A123", 0, 165, 33, 30, 299 + 50 * 2, 298 + 50 * 2, 0, 347, 50 },
|
||||
/* 55*/ { BARCODE_MAXICODE, -1, -1, -1, 0, "A123", 0, 165, 33, 30, 299, 298, 1, 0, 14 },
|
||||
/* 56*/ { BARCODE_MAXICODE, 6, -1, -1, 0, "A123", 0, 165, 33, 30, 299 + 60 * 2, 298, 0, 0, 14 },
|
||||
/* 57*/ { BARCODE_MAXICODE, 6, -1, -1, 0, "A123", 0, 165, 33, 30, 299 + 60 * 2, 298, 0, 0, 47 },
|
||||
/* 58*/ { BARCODE_MAXICODE, 6, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299 + 60 * 2, 298 + 50 * 2, 1, 0, 47 },
|
||||
/* 59*/ { BARCODE_MAXICODE, 6, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299 + 60 * 2, 298 + 50 * 2, 0, 50, 0 },
|
||||
/* 60*/ { BARCODE_MAXICODE, 6, 5, BARCODE_BOX, 0, "A123", 0, 165, 33, 30, 299 + (60 + 50) * 2, 298 + 50 * 2, 1, 50, 0 },
|
||||
/* 61*/ { BARCODE_MAXICODE, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1, -1, -1, -1, -1 },
|
||||
/* 62*/ { BARCODE_MAXICODE, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 165, 33, 30, 299, 298, 0, 4, 4 },
|
||||
/* 63*/ { BARCODE_MAXICODE, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 165, 33, 30, 299, 298, 1, 4, 14 },
|
||||
/* 64*/ { BARCODE_MAXICODE, -1, -1, OUT_BUFFER_INTERMEDIATE, 270, "A123", 0, 165, 33, 30, 298, 299, 1, 4, 4 },
|
||||
/* 65*/ { BARCODE_MAXICODE, -1, -1, OUT_BUFFER_INTERMEDIATE, 270, "A123", 0, 165, 33, 30, 298, 299, 0, 4, 14 },
|
||||
/* 66*/ { BARCODE_ITF14, -1, -1, -1, 0, "123", 0, 50, 1, 135, 330, 136, 1, 110, 0 },
|
||||
/* 67*/ { BARCODE_ITF14, -1, -1, -1, 90, "123", 0, 50, 1, 135, 136, 330, 1, 0, 110 },
|
||||
/* 68*/ { BARCODE_ITF14, -1, 0, -1, 0, "123", 0, 50, 1, 135, 330, 136, 1, 110, 0 },
|
||||
/* 69*/ { BARCODE_ITF14, -1, 0, BARCODE_BOX, 0, "123", 0, 50, 1, 135, 310, 116, 0, 100, 0 },
|
||||
/* 70*/ { BARCODE_ITF14, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "123", 0, 50, 1, 135, 330, 136, 1, 110, 0 },
|
||||
/* 71*/ { BARCODE_ITF14, -1, -1, OUT_BUFFER_INTERMEDIATE, 90, "123", 0, 50, 1, 135, 136, 330, 1, 0, 110 },
|
||||
/* 0*/ { BARCODE_CODE128, -1, -1, -1, -1, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 4 },
|
||||
/* 1*/ { BARCODE_CODE128, -1, -1, -1, -1, 180, "A123", 0, 50, 1, 79, 158, 116, 0, 115, 4 },
|
||||
/* 2*/ { BARCODE_CODE128, -1, -1, 2, -1, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 4 },
|
||||
/* 3*/ { BARCODE_CODE128, -1, -1, 2, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 158, 124, 1, 0, 4 },
|
||||
/* 4*/ { BARCODE_CODE128, -1, -1, 2, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 158, 124, 0, 4, 4 },
|
||||
/* 5*/ { BARCODE_CODE128, -1, -1, 2, BARCODE_BOX, 0, "A123", 0, 50, 1, 79, 166, 124, 1, 4, 4 },
|
||||
/* 6*/ { BARCODE_CODE128, -1, -1, 0, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 4 },
|
||||
/* 7*/ { BARCODE_CODE128, -1, -1, 0, BARCODE_BOX, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 4, 4 },
|
||||
/* 8*/ { BARCODE_CODE128, -1, -1, -1, -1, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 8 },
|
||||
/* 9*/ { BARCODE_CODE128, 3, -1, -1, -1, 0, "A123", 0, 50, 1, 79, 170, 116, 1, 0, 8 },
|
||||
/* 10*/ { BARCODE_CODE128, 3, 1, -1, -1, 0, "A123", 0, 50, 1, 79, 170, 120, 0, 0, 8 },
|
||||
/* 11*/ { BARCODE_CODE128, 3, -1, 4, -1, 0, "A123", 0, 50, 1, 79, 170, 116, 1, 0, 8 },
|
||||
/* 12*/ { BARCODE_CODE128, 3, -1, 4, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 170, 132, 1, 0, 0 },
|
||||
/* 13*/ { BARCODE_CODE128, 3, -1, 4, BARCODE_BIND, 0, "A123", 0, 50, 1, 79, 170, 132, 0, 8, 0 },
|
||||
/* 14*/ { BARCODE_CODE128, 3, -1, 4, BARCODE_BOX, 0, "A123", 0, 50, 1, 79, 186, 132, 1, 8, 0 },
|
||||
/* 15*/ { BARCODE_CODE128, -1, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1, -1, -1, -1, -1 },
|
||||
/* 16*/ { BARCODE_CODE128, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 50, 1, 79, 158, 116, 0, 0, 4 },
|
||||
/* 17*/ { BARCODE_CODE128, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 180, "A123", 0, 50, 1, 79, 158, 116, 0, 115, 4 },
|
||||
/* 18*/ { BARCODE_CODE128, 3, -1, 4, BARCODE_BOX | OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 50, 1, 79, 186, 132, 1, 8, 0 },
|
||||
/* 19*/ { BARCODE_QRCODE, -1, -1, -1, -1, 0, "A123", 0, 21, 21, 21, 42, 42, 0, 2, 2 },
|
||||
/* 20*/ { BARCODE_QRCODE, -1, -1, -1, -1, 180, "A123", 0, 21, 21, 21, 42, 42, 0, 39, 2 },
|
||||
/* 21*/ { BARCODE_QRCODE, -1, -1, 3, -1, 0, "A123", 0, 21, 21, 21, 42, 42, 0, 2, 2 },
|
||||
/* 22*/ { BARCODE_QRCODE, -1, -1, 3, BARCODE_BIND, 0, "A123", 0, 21, 21, 21, 42, 54, 1, 2, 2 },
|
||||
/* 23*/ { BARCODE_QRCODE, -1, -1, 3, BARCODE_BIND, 0, "A123", 0, 21, 21, 21, 42, 54, 0, 20, 0 },
|
||||
/* 24*/ { BARCODE_QRCODE, -1, -1, 3, BARCODE_BOX, 0, "A123", 0, 21, 21, 21, 54, 54, 1, 20, 0 },
|
||||
/* 25*/ { BARCODE_QRCODE, -1, -1, -1, -1, 0, "A123", 0, 21, 21, 21, 42, 42, 1, 0, 0 },
|
||||
/* 26*/ { BARCODE_QRCODE, 5, -1, -1, -1, 0, "A123", 0, 21, 21, 21, 62, 42, 0, 0, 0 },
|
||||
/* 27*/ { BARCODE_QRCODE, 5, -1, 6, -1, 0, "A123", 0, 21, 21, 21, 62, 42, 0, 0, 0 },
|
||||
/* 28*/ { BARCODE_QRCODE, 5, -1, 6, BARCODE_BIND, 0, "A123", 0, 21, 21, 21, 62, 66, 1, 0, 0 },
|
||||
/* 29*/ { BARCODE_QRCODE, 5, -1, 6, BARCODE_BIND, 0, "A123", 0, 21, 21, 21, 62, 66, 0, 12, 0 },
|
||||
/* 30*/ { BARCODE_QRCODE, 5, -1, 6, BARCODE_BOX, 0, "A123", 0, 21, 21, 21, 86, 66, 1, 12, 0 },
|
||||
/* 31*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 1, 1 },
|
||||
/* 32*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 2, 2 },
|
||||
/* 33*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 41, 1 },
|
||||
/* 34*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 40, 2 },
|
||||
/* 35*/ { BARCODE_QRCODE, -1, -1, 4, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 1, 1 },
|
||||
/* 36*/ { BARCODE_QRCODE, -1, -1, 4, BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 2, 2 },
|
||||
/* 37*/ { BARCODE_QRCODE, -1, -1, 4, BARCODE_BIND | BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 43, 59, 1, 2, 2 },
|
||||
/* 38*/ { BARCODE_QRCODE, -1, -1, 4, BARCODE_BOX | BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 59, 59, 1, 9, 9 },
|
||||
/* 39*/ { BARCODE_QRCODE, 1, -1, 4, BARCODE_BOX | BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 63, 59, 0, 9, 9 },
|
||||
/* 40*/ { BARCODE_QRCODE, 1, -1, 4, BARCODE_BOX | BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 63, 59, 1, 0, 0 },
|
||||
/* 41*/ { BARCODE_QRCODE, 1, -1, 4, BARCODE_BOX | BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 63, 59, 1, 9, 11 },
|
||||
/* 42*/ { BARCODE_QRCODE, 1, 1, 4, BARCODE_BOX | BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 63, 63, 0, 0, 0 },
|
||||
/* 43*/ { BARCODE_QRCODE, 1, 1, 4, BARCODE_BOX | BARCODE_DOTTY_MODE, 0, "A123", 0, 21, 21, 21, 63, 63, 1, 9, 13 },
|
||||
/* 44*/ { BARCODE_QRCODE, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 21, 21, 21, 42, 42, 1, 1, 1 },
|
||||
/* 45*/ { BARCODE_QRCODE, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 21, 21, 21, 42, 42, 0, 2, 2 },
|
||||
/* 46*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE | OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 21, 21, 21, 43, 43, 1, 1, 1 },
|
||||
/* 47*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE | OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 21, 21, 21, 43, 43, 0, 2, 2 },
|
||||
/* 48*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE | OUT_BUFFER_INTERMEDIATE, 180, "A123", 0, 21, 21, 21, 43, 43, 1, 41, 1 },
|
||||
/* 49*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE | OUT_BUFFER_INTERMEDIATE, 180, "A123", 0, 21, 21, 21, 43, 43, 0, 40, 2 },
|
||||
/* 50*/ { BARCODE_MAXICODE, -1, -1, -1, -1, 0, "A123", 0, 165, 33, 30, 299, 298, 0, 4, 4 },
|
||||
/* 51*/ { BARCODE_MAXICODE, -1, -1, -1, -1, 0, "A123", 0, 165, 33, 30, 299, 298, 1, 4, 14 },
|
||||
/* 52*/ { BARCODE_MAXICODE, -1, -1, -1, -1, 270, "A123", 0, 165, 33, 30, 298, 299, 1, 4, 4 },
|
||||
/* 53*/ { BARCODE_MAXICODE, -1, -1, -1, -1, 270, "A123", 0, 165, 33, 30, 298, 299, 0, 4, 14 },
|
||||
/* 54*/ { BARCODE_MAXICODE, -1, -1, 5, -1, 0, "A123", 0, 165, 33, 30, 299, 298, 0, 0, 0 },
|
||||
/* 55*/ { BARCODE_MAXICODE, -1, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299, 298 + 50 * 2, 1, 0, 0 },
|
||||
/* 56*/ { BARCODE_MAXICODE, -1, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299, 298 + 50 * 2, 0, 50, 0 },
|
||||
/* 57*/ { BARCODE_MAXICODE, -1, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299, 298 + 50 * 2, 0, 347, 50 },
|
||||
/* 58*/ { BARCODE_MAXICODE, -1, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299, 298 + 50 * 2, 1, 348, 50 },
|
||||
/* 59*/ { BARCODE_MAXICODE, -1, -1, 5, BARCODE_BOX, 0, "A123", 0, 165, 33, 30, 299 + 50 * 2, 298 + 50 * 2, 1, 50, 0 },
|
||||
/* 60*/ { BARCODE_MAXICODE, -1, -1, 5, BARCODE_BOX, 0, "A123", 0, 165, 33, 30, 299 + 50 * 2, 298 + 50 * 2, 0, 347, 50 },
|
||||
/* 61*/ { BARCODE_MAXICODE, -1, -1, -1, -1, 0, "A123", 0, 165, 33, 30, 299, 298, 1, 0, 14 },
|
||||
/* 62*/ { BARCODE_MAXICODE, 6, -1, -1, -1, 0, "A123", 0, 165, 33, 30, 299 + 60 * 2, 298, 0, 0, 14 },
|
||||
/* 63*/ { BARCODE_MAXICODE, 6, -1, -1, -1, 0, "A123", 0, 165, 33, 30, 299 + 60 * 2, 298, 0, 0, 47 },
|
||||
/* 64*/ { BARCODE_MAXICODE, 6, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299 + 60 * 2, 298 + 50 * 2, 1, 0, 47 },
|
||||
/* 65*/ { BARCODE_MAXICODE, 6, -1, 5, BARCODE_BIND, 0, "A123", 0, 165, 33, 30, 299 + 60 * 2, 298 + 50 * 2, 0, 50, 0 },
|
||||
/* 66*/ { BARCODE_MAXICODE, 6, -1, 5, BARCODE_BOX, 0, "A123", 0, 165, 33, 30, 299 + (60 + 50) * 2, 298 + 50 * 2, 1, 50, 0 },
|
||||
/* 67*/ { BARCODE_MAXICODE, -1, -1, -1, BARCODE_DOTTY_MODE, 0, "A123", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1, -1, -1, -1, -1 },
|
||||
/* 68*/ { BARCODE_MAXICODE, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 165, 33, 30, 299, 298, 0, 4, 4 },
|
||||
/* 69*/ { BARCODE_MAXICODE, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "A123", 0, 165, 33, 30, 299, 298, 1, 4, 14 },
|
||||
/* 70*/ { BARCODE_MAXICODE, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 270, "A123", 0, 165, 33, 30, 298, 299, 1, 4, 4 },
|
||||
/* 71*/ { BARCODE_MAXICODE, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 270, "A123", 0, 165, 33, 30, 298, 299, 0, 4, 14 },
|
||||
/* 72*/ { BARCODE_ITF14, -1, -1, -1, -1, 0, "123", 0, 50, 1, 135, 330, 136, 1, 110, 0 },
|
||||
/* 73*/ { BARCODE_ITF14, -1, -1, -1, -1, 90, "123", 0, 50, 1, 135, 136, 330, 1, 0, 110 },
|
||||
/* 74*/ { BARCODE_ITF14, -1, -1, 0, -1, 0, "123", 0, 50, 1, 135, 330, 136, 1, 110, 0 },
|
||||
/* 75*/ { BARCODE_ITF14, -1, -1, 0, BARCODE_BOX, 0, "123", 0, 50, 1, 135, 310, 116, 0, 100, 0 },
|
||||
/* 76*/ { BARCODE_ITF14, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 0, "123", 0, 50, 1, 135, 330, 136, 1, 110, 0 },
|
||||
/* 77*/ { BARCODE_ITF14, -1, -1, -1, OUT_BUFFER_INTERMEDIATE, 90, "123", 0, 50, 1, 135, 136, 330, 1, 0, 110 },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
|
||||
@ -716,6 +723,9 @@ static void test_output_options(int index, int debug) {
|
||||
if (data[i].whitespace_width != -1) {
|
||||
symbol->whitespace_width = data[i].whitespace_width;
|
||||
}
|
||||
if (data[i].whitespace_height != -1) {
|
||||
symbol->whitespace_height = data[i].whitespace_height;
|
||||
}
|
||||
if (data[i].border_width != -1) {
|
||||
symbol->border_width = data[i].border_width;
|
||||
}
|
||||
@ -729,7 +739,7 @@ static void test_output_options(int index, int debug) {
|
||||
if (ret < 5) {
|
||||
assert_nonnull(symbol->bitmap, "i:%d (%s) symbol->bitmap NULL\n", i, testUtilBarcodeName(data[i].symbology));
|
||||
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL);
|
||||
if (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 (%s) symbol->height %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->height, data[i].expected_height);
|
||||
assert_equal(symbol->rows, data[i].expected_rows, "i:%d (%s) symbol->rows %d != %d\n", i, testUtilBarcodeName(data[i].symbology), symbol->rows, data[i].expected_rows);
|
||||
@ -809,7 +819,7 @@ static void test_draw_string_wrap(int index, int debug) {
|
||||
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);
|
||||
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL);
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16
|
||||
|
||||
ret = ZBarcode_Print(symbol, 0);
|
||||
assert_zero(ret, "i:%d ZBarcode_Print(%d) ret %d != 0\n", i, data[i].symbology, ret);
|
||||
@ -875,7 +885,7 @@ static void test_code128_utf8(int index, int debug) {
|
||||
assert_equal(symbol->bitmap_width, data[i].expected_bitmap_width, "i:%d (%d) symbol->bitmap_width %d != %d\n", i, BARCODE_CODE128, 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, BARCODE_CODE128, symbol->bitmap_height, data[i].expected_bitmap_height);
|
||||
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL);
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16
|
||||
|
||||
ret = ZBarcode_Print(symbol, 0);
|
||||
assert_zero(ret, "i:%d ZBarcode_Print(%d) ret %d != 0\n", i, BARCODE_CODE128, ret);
|
||||
@ -979,7 +989,7 @@ static void test_scale(int index, int debug) {
|
||||
assert_zero(ret, "i:%d ZBarcode_Buffer(%d) ret %d != 0\n", i, data[i].symbology, ret);
|
||||
assert_nonnull(symbol->bitmap, "i:%d (%d) symbol->bitmap NULL\n", i, data[i].symbology);
|
||||
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL);
|
||||
if (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 %d != %d\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);
|
||||
@ -1129,7 +1139,7 @@ static void test_buffer_plot(int index, int generate, int debug) {
|
||||
for (int i = 0; i < data_size; i++) {
|
||||
|
||||
if (index != -1 && i != index) continue;
|
||||
if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i);
|
||||
if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d\n", i); // ZINT_DEBUG_TEST_PRINT 16
|
||||
|
||||
struct zint_symbol *symbol = ZBarcode_Create();
|
||||
assert_nonnull(symbol, "Symbol not created\n");
|
||||
@ -1156,7 +1166,7 @@ static void test_buffer_plot(int index, int generate, int debug) {
|
||||
assert_zero(ret, "i:%d ZBarcode_Buffer(%s) ret %d != 0 (%s)\n", i, testUtilBarcodeName(data[i].symbology), ret, symbol->errtxt);
|
||||
assert_nonnull(symbol->bitmap, "i:%d ZBarcode_Buffer(%s) bitmap NULL\n", i, testUtilBarcodeName(data[i].symbology));
|
||||
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL);
|
||||
if (index != -1 && (debug & ZINT_DEBUG_TEST_PRINT)) testUtilBitmapPrint(symbol, NULL, NULL); // ZINT_DEBUG_TEST_PRINT 16
|
||||
|
||||
if (generate) {
|
||||
printf(" /*%3d*/ { %s, %d, %d, %d, %s, \"%s\", \"%s\", \"%s\", %d, %d, %d, %d, %d,\n",
|
||||
|
@ -49,6 +49,8 @@ static void test_print(int index, int generate, int debug) {
|
||||
int input_mode;
|
||||
int border_width;
|
||||
int output_options;
|
||||
int whitespace_width;
|
||||
int whitespace_height;
|
||||
int show_hrt;
|
||||
int option_1;
|
||||
int option_2;
|
||||
@ -57,40 +59,47 @@ static void test_print(int index, int generate, int debug) {
|
||||
char *expected_file;
|
||||
};
|
||||
struct item data[] = {
|
||||
/* 0*/ { BARCODE_CODE128, -1, -1, -1, -1, -1, -1, "<>\"&'", "", "../data/svg/code128_amperands.svg" },
|
||||
/* 1*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, -1, -1, -1, "Égjpqy", "", "../data/svg/code128_egrave_bold.svg" },
|
||||
/* 2*/ { BARCODE_CODE128, UNICODE_MODE, 3, BOLD_TEXT | BARCODE_BOX, -1, -1, -1, "Égjpqy", "", "../data/svg/code128_egrave_bold_box3.svg" },
|
||||
/* 3*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, 3, -1, "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", "../data/svg/gs1_128_cc_fig12.svg" },
|
||||
/* 4*/ { BARCODE_CODABLOCKF, -1, -1, -1, -1, 3, -1, "AAAAAAAAA", "", "../data/svg/codablockf_3rows.svg" },
|
||||
/* 5*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, "9771384524017+12", "", "../data/svg/ean13_2addon_ggs_5.2.2.5.1-2.svg" },
|
||||
/* 6*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, "9780877799306+54321", "", "../data/svg/ean13_5addon_ggs_5.2.2.5.2-2.svg" },
|
||||
/* 7*/ { BARCODE_EANX_CC, -1, -1, -1, -1, 1, -1, "123456789012+12", "[91]123456789012345678901", "../data/svg/ean13_cc_2addon_cca_4x4.svg" },
|
||||
/* 8*/ { BARCODE_EANX_CC, -1, -1, -1, -1, 2, -1, "123456789012+54321", "[91]1234567890", "../data/svg/ean13_cc_5addon_ccb_3x4.svg" },
|
||||
/* 9*/ { BARCODE_EANX_CC, -1, -1, -1, 0, 2, -1, "123456789012+54321", "[91]1234567890", "../data/svg/ean13_cc_5addon_ccb_3x4_notext.svg" },
|
||||
/* 10*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, "012345678905+24", "", "../data/svg/upca_2addon_ggs_5.2.6.6-5.svg" },
|
||||
/* 11*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, "614141234417+12345", "", "../data/svg/upca_5addon.svg" },
|
||||
/* 12*/ { BARCODE_UPCA, -1, 3, BARCODE_BIND, -1, -1, -1, "614141234417+12345", "", "../data/svg/upca_5addon_bind3.svg" },
|
||||
/* 13*/ { BARCODE_UPCA, -1, -1, SMALL_TEXT | BOLD_TEXT, -1, -1, -1, "614141234417+12345", "", "../data/svg/upca_5addon_small_bold.svg" },
|
||||
/* 14*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, 1, -1, "12345678901+12", "[91]123456789", "../data/svg/upca_cc_2addon_cca_3x4.svg" },
|
||||
/* 15*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, 2, -1, "12345678901+12121", "[91]1234567890123", "../data/svg/upca_cc_5addon_ccb_4x4.svg" },
|
||||
/* 16*/ { BARCODE_UPCA_CC, -1, -1, -1, 0, 2, -1, "12345678901+12121", "[91]1234567890123", "../data/svg/upca_cc_5addon_ccb_4x4_notext.svg" },
|
||||
/* 17*/ { BARCODE_UPCA_CC, -1, 3, BARCODE_BIND, -1, 2, -1, "12345678901+12121", "[91]1234567890123", "../data/svg/upca_cc_5addon_ccb_4x4_bind3.svg" },
|
||||
/* 18*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, "1234567+12", "", "../data/svg/upce_2addon.svg" },
|
||||
/* 19*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, "1234567+12345", "", "../data/svg/upce_5addon.svg" },
|
||||
/* 20*/ { BARCODE_UPCE, -1, -1, SMALL_TEXT, -1, -1, -1, "1234567+12345", "", "../data/svg/upce_5addon_small.svg" },
|
||||
/* 21*/ { BARCODE_UPCE, -1, -1, -1, 0, -1, -1, "1234567+12345", "", "../data/svg/upce_5addon_notext.svg" },
|
||||
/* 22*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, 1, -1, "0654321+89", "[91]1", "../data/svg/upce_cc_2addon_cca_5x2.svg" },
|
||||
/* 23*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, 2, -1, "1876543+56789", "[91]12345", "../data/svg/upce_cc_5addon_ccb_8x2.svg" },
|
||||
/* 24*/ { BARCODE_UPCE_CC, -1, -1, -1, 0, 2, -1, "1876543+56789", "[91]12345", "../data/svg/upce_cc_5addon_ccb_8x2_notext.svg" },
|
||||
/* 25*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, "1234567+12", "", "../data/svg/ean8_2addon.svg" },
|
||||
/* 26*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, "1234567+12345", "", "../data/svg/ean8_5addon.svg" },
|
||||
/* 27*/ { BARCODE_EANX_CC, -1, -1, -1, -1, 1, -1, "9876543+65", "[91]1234567", "../data/svg/ean8_cc_2addon_cca_4x3.svg" },
|
||||
/* 28*/ { BARCODE_EANX_CC, -1, -1, -1, -1, 2, -1, "9876543+74083", "[91]123456789012345678", "../data/svg/ean8_cc_5addon_ccb_8x3.svg" },
|
||||
/* 29*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, "12345", "", "../data/svg/ean5.svg" },
|
||||
/* 30*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, "12", "", "../data/svg/ean2.svg" },
|
||||
/* 31*/ { BARCODE_CODE39, -1, -1, SMALL_TEXT, -1, -1, -1, "123", "", "../data/svg/code39_small.svg" },
|
||||
/* 32*/ { BARCODE_POSTNET, -1, -1, -1, -1, -1, -1, "12345", "", "../data/svg/postnet_zip.svg" },
|
||||
/* 33*/ { BARCODE_MAXICODE, -1, 2, BARCODE_BOX, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/svg/maxicode_box2.svg" },
|
||||
/* 0*/ { BARCODE_CODE128, -1, -1, -1, -1, -1, -1, -1, -1, "<>\"&'", "", "../data/svg/code128_amperands.svg" },
|
||||
/* 1*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, -1, -1, -1, -1, -1, "Égjpqy", "", "../data/svg/code128_egrave_bold.svg" },
|
||||
/* 2*/ { BARCODE_CODE128, UNICODE_MODE, 3, BOLD_TEXT | BARCODE_BOX, -1, -1, -1, -1, -1, "Égjpqy", "", "../data/svg/code128_egrave_bold_box3.svg" },
|
||||
/* 3*/ { BARCODE_CODE128, UNICODE_MODE, 2, BOLD_TEXT | BARCODE_BOX, 2, 2, -1, -1, -1, "Égjpqy", "", "../data/svg/code128_egrave_bold_hvwsp2_box2.svg" },
|
||||
/* 4*/ { BARCODE_CODE128, UNICODE_MODE, -1, BOLD_TEXT, 3, 3, -1, -1, -1, "Égjpqy", "", "../data/svg/code128_egrave_bold_hvwsp3.svg" },
|
||||
/* 5*/ { BARCODE_GS1_128_CC, -1, -1, -1, -1, -1, -1, 3, -1, "[00]030123456789012340", "[02]13012345678909[37]24[10]1234567ABCDEFG", "../data/svg/gs1_128_cc_fig12.svg" },
|
||||
/* 6*/ { BARCODE_CODABLOCKF, -1, -1, -1, -1, -1, -1, 3, -1, "AAAAAAAAA", "", "../data/svg/codablockf_3rows.svg" },
|
||||
/* 7*/ { BARCODE_CODABLOCKF, -1, -1, -1, 2, 2, -1, 3, -1, "AAAAAAAAA", "", "../data/svg/codablockf_hvwsp2.svg" },
|
||||
/* 8*/ { BARCODE_CODABLOCKF, -1, 2, BARCODE_BOX, 2, 2, -1, -1, -1, "AAAAAAAAA", "", "../data/svg/codablockf_hvwsp2_box2.svg" },
|
||||
/* 9*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, "9771384524017+12", "", "../data/svg/ean13_2addon_ggs_5.2.2.5.1-2.svg" },
|
||||
/* 10*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, "9780877799306+54321", "", "../data/svg/ean13_5addon_ggs_5.2.2.5.2-2.svg" },
|
||||
/* 11*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 1, -1, "123456789012+12", "[91]123456789012345678901", "../data/svg/ean13_cc_2addon_cca_4x4.svg" },
|
||||
/* 12*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 2, -1, "123456789012+54321", "[91]1234567890", "../data/svg/ean13_cc_5addon_ccb_3x4.svg" },
|
||||
/* 13*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, 0, 2, -1, "123456789012+54321", "[91]1234567890", "../data/svg/ean13_cc_5addon_ccb_3x4_notext.svg" },
|
||||
/* 14*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, "012345678905+24", "", "../data/svg/upca_2addon_ggs_5.2.6.6-5.svg" },
|
||||
/* 15*/ { BARCODE_UPCA, -1, -1, -1, -1, -1, -1, -1, -1, "614141234417+12345", "", "../data/svg/upca_5addon.svg" },
|
||||
/* 16*/ { BARCODE_UPCA, -1, 3, BARCODE_BIND, -1, -1, -1, -1, -1, "614141234417+12345", "", "../data/svg/upca_5addon_bind3.svg" },
|
||||
/* 17*/ { BARCODE_UPCA, -1, -1, SMALL_TEXT | BOLD_TEXT, -1, -1, -1, -1, -1, "614141234417+12345", "", "../data/svg/upca_5addon_small_bold.svg" },
|
||||
/* 18*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 1, -1, "12345678901+12", "[91]123456789", "../data/svg/upca_cc_2addon_cca_3x4.svg" },
|
||||
/* 19*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, -1, 2, -1, "12345678901+12121", "[91]1234567890123", "../data/svg/upca_cc_5addon_ccb_4x4.svg" },
|
||||
/* 20*/ { BARCODE_UPCA_CC, -1, -1, -1, -1, -1, 0, 2, -1, "12345678901+12121", "[91]1234567890123", "../data/svg/upca_cc_5addon_ccb_4x4_notext.svg" },
|
||||
/* 21*/ { BARCODE_UPCA_CC, -1, 3, BARCODE_BIND, -1, -1, -1, 2, -1, "12345678901+12121", "[91]1234567890123", "../data/svg/upca_cc_5addon_ccb_4x4_bind3.svg" },
|
||||
/* 22*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, "1234567+12", "", "../data/svg/upce_2addon.svg" },
|
||||
/* 23*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, -1, -1, -1, "1234567+12345", "", "../data/svg/upce_5addon.svg" },
|
||||
/* 24*/ { BARCODE_UPCE, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, "1234567+12345", "", "../data/svg/upce_5addon_small.svg" },
|
||||
/* 25*/ { BARCODE_UPCE, -1, -1, -1, -1, -1, 0, -1, -1, "1234567+12345", "", "../data/svg/upce_5addon_notext.svg" },
|
||||
/* 26*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 1, -1, "0654321+89", "[91]1", "../data/svg/upce_cc_2addon_cca_5x2.svg" },
|
||||
/* 27*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, -1, 2, -1, "1876543+56789", "[91]12345", "../data/svg/upce_cc_5addon_ccb_8x2.svg" },
|
||||
/* 28*/ { BARCODE_UPCE_CC, -1, -1, -1, -1, -1, 0, 2, -1, "1876543+56789", "[91]12345", "../data/svg/upce_cc_5addon_ccb_8x2_notext.svg" },
|
||||
/* 29*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, "1234567+12", "", "../data/svg/ean8_2addon.svg" },
|
||||
/* 30*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, "1234567+12345", "", "../data/svg/ean8_5addon.svg" },
|
||||
/* 31*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 1, -1, "9876543+65", "[91]1234567", "../data/svg/ean8_cc_2addon_cca_4x3.svg" },
|
||||
/* 32*/ { BARCODE_EANX_CC, -1, -1, -1, -1, -1, -1, 2, -1, "9876543+74083", "[91]123456789012345678", "../data/svg/ean8_cc_5addon_ccb_8x3.svg" },
|
||||
/* 33*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, "12345", "", "../data/svg/ean5.svg" },
|
||||
/* 34*/ { BARCODE_EANX, -1, -1, -1, -1, -1, -1, -1, -1, "12", "", "../data/svg/ean2.svg" },
|
||||
/* 35*/ { BARCODE_CODE39, -1, -1, SMALL_TEXT, -1, -1, -1, -1, -1, "123", "", "../data/svg/code39_small.svg" },
|
||||
/* 36*/ { BARCODE_POSTNET, -1, -1, -1, -1, -1, -1, -1, -1, "12345", "", "../data/svg/postnet_zip.svg" },
|
||||
/* 37*/ { BARCODE_MAXICODE, -1, 2, BARCODE_BOX, -1, -1, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/svg/maxicode_box2.svg" },
|
||||
/* 38*/ { BARCODE_MAXICODE, -1, 1, BARCODE_BIND, -1, 1, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/svg/maxicode_vwsp1_bind1.svg" },
|
||||
/* 39*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, -1, 1, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/svg/datamatrix_vwsp1_bind1_dotty.svg" },
|
||||
/* 40*/ { BARCODE_DATAMATRIX, -1, 1, BARCODE_BIND | BARCODE_DOTTY_MODE, 1, 1, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "", "../data/svg/datamatrix_hvwsp1_bind1_dotty.svg" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
|
||||
@ -121,6 +130,12 @@ static void test_print(int index, int generate, int debug) {
|
||||
if (data[i].border_width != -1) {
|
||||
symbol->border_width = data[i].border_width;
|
||||
}
|
||||
if (data[i].whitespace_width != -1) {
|
||||
symbol->whitespace_width = data[i].whitespace_width;
|
||||
}
|
||||
if (data[i].whitespace_height != -1) {
|
||||
symbol->whitespace_height = data[i].whitespace_height;
|
||||
}
|
||||
if (strlen(data[i].composite)) {
|
||||
text = data[i].composite;
|
||||
strcpy(symbol->primary, data[i].data);
|
||||
@ -137,9 +152,10 @@ static void test_print(int index, int generate, int debug) {
|
||||
assert_zero(ret, "i:%d %s ZBarcode_Print %s ret %d != 0\n", i, testUtilBarcodeName(data[i].symbology), symbol->outfile, ret);
|
||||
|
||||
if (generate) {
|
||||
printf(" /*%3d*/ { %s, %s, %d, %s, %d, %d, %d, \"%s\", \"%s\", \"%s\" },\n",
|
||||
printf(" /*%3d*/ { %s, %s, %d, %s, %d, %d, %d, %d, %d, \"%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].show_hrt, data[i].option_1, data[i].option_2, testUtilEscape(data[i].data, length, escaped, escaped_size), data[i].composite, data[i].expected_file);
|
||||
data[i].whitespace_width, data[i].whitespace_height, data[i].show_hrt, data[i].option_1, data[i].option_2,
|
||||
testUtilEscape(data[i].data, length, escaped, escaped_size), data[i].composite, data[i].expected_file);
|
||||
ret = rename(symbol->outfile, data[i].expected_file);
|
||||
assert_zero(ret, "i:%d rename(%s, %s) ret %d != 0\n", i, symbol->outfile, data[i].expected_file, ret);
|
||||
if (have_libreoffice) {
|
||||
|
@ -592,6 +592,7 @@ static void test_output_options(int index, int debug) {
|
||||
struct item {
|
||||
int symbology;
|
||||
int whitespace_width;
|
||||
int whitespace_height;
|
||||
int border_width;
|
||||
int output_options;
|
||||
char *data;
|
||||
@ -608,45 +609,49 @@ static void test_output_options(int index, int debug) {
|
||||
};
|
||||
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
|
||||
struct item data[] = {
|
||||
/* 0*/ { BARCODE_CODE128, -1, -1, -1, "A123", 0, 50, 1, 79, 158, 118.9, 0, 0, 4 },
|
||||
/* 1*/ { BARCODE_CODE128, -1, 2, -1, "A123", 0, 50, 1, 79, 158, 118.9, 0, 0, 4 },
|
||||
/* 2*/ { BARCODE_CODE128, -1, 2, BARCODE_BIND, "A123", 0, 50, 1, 79, 158, 126.9, 1, 0, 4 },
|
||||
/* 3*/ { BARCODE_CODE128, -1, 2, BARCODE_BIND, "A123", 0, 50, 1, 79, 158, 126.9, 0, 4, 4 },
|
||||
/* 4*/ { BARCODE_CODE128, -1, 2, BARCODE_BOX, "A123", 0, 50, 1, 79, 166, 126.9, 1, 4, 4 },
|
||||
/* 5*/ { BARCODE_CODE128, -1, 0, BARCODE_BIND, "A123", 0, 50, 1, 79, 158, 118.9, 0, 0, 4 },
|
||||
/* 6*/ { BARCODE_CODE128, -1, 0, BARCODE_BOX, "A123", 0, 50, 1, 79, 158, 118.9, 0, 4, 4 },
|
||||
/* 7*/ { BARCODE_CODE128, -1, -1, -1, "A123", 0, 50, 1, 79, 158, 118.9, 0, 6, 8 },
|
||||
/* 8*/ { BARCODE_CODE128, 3, 4, BARCODE_BIND, "A123", 0, 50, 1, 79, 170, 134.89999, 1, 6, 8 },
|
||||
/* 9*/ { BARCODE_CODE128, 3, 4, BARCODE_BIND, "A123", 0, 50, 1, 79, 170, 134.89999, 0, 14, 8 },
|
||||
/* 10*/ { BARCODE_CODE128, 3, 4, BARCODE_BOX, "A123", 0, 50, 1, 79, 186, 134.89999, 1, 14, 8 },
|
||||
/* 11*/ { BARCODE_CODE128, -1, -1, BARCODE_DOTTY_MODE, "A123", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1, -1, -1, -1, -1 },
|
||||
/* 12*/ { BARCODE_QRCODE, -1, -1, -1, "A123", 0, 21, 21, 21, 42, 42, 0, 0, 6 },
|
||||
/* 13*/ { BARCODE_QRCODE, -1, 3, -1, "A123", 0, 21, 21, 21, 42, 42, 0, 0, 6 },
|
||||
/* 14*/ { BARCODE_QRCODE, -1, 3, BARCODE_BIND, "A123", 0, 21, 21, 21, 42, 54, 1, 0, 6 },
|
||||
/* 15*/ { BARCODE_QRCODE, -1, 3, BARCODE_BIND, "A123", 0, 21, 21, 21, 42, 54, 0, 22, 8 },
|
||||
/* 16*/ { BARCODE_QRCODE, -1, 3, BARCODE_BOX, "A123", 0, 21, 21, 21, 54, 54, 1, 22, 8 },
|
||||
/* 17*/ { BARCODE_QRCODE, -1, -1, -1, "A123", 0, 21, 21, 21, 42, 42, 0, 10, 12 },
|
||||
/* 18*/ { BARCODE_QRCODE, 5, 6, BARCODE_BIND, "A123", 0, 21, 21, 21, 62, 66, 1, 10, 12 },
|
||||
/* 19*/ { BARCODE_QRCODE, 5, 6, BARCODE_BIND, "A123", 0, 21, 21, 21, 62, 66, 0, 22, 12 },
|
||||
/* 20*/ { BARCODE_QRCODE, 5, 6, BARCODE_BOX, "A123", 0, 21, 21, 21, 86, 66, 1, 22, 12 },
|
||||
/* 21*/ { BARCODE_QRCODE, -1, -1, BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 42, 42, 0, 0, 50 },
|
||||
/* 22*/ { BARCODE_QRCODE, -1, 4, BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 42, 42, 0, 0, 50 },
|
||||
/* 23*/ { BARCODE_QRCODE, -1, 4, BARCODE_BIND | BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 42, 58, 1, 0, 50 },
|
||||
/* 24*/ { BARCODE_QRCODE, -1, 4, BARCODE_BIND | BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 42, 58, 0, 54, 0 },
|
||||
/* 25*/ { BARCODE_QRCODE, 1, 4, BARCODE_BOX | BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 62, 58, 1, 54, 0 },
|
||||
/* 26*/ { BARCODE_MAXICODE, -1, -1, -1, "A123", 0, 165, 33, 30, 60, 57.733398, 0, 0, 67.7334 },
|
||||
/* 27*/ { BARCODE_MAXICODE, -1, 5, -1, "A123", 0, 165, 33, 30, 60, 57.733398, 0, 0, 67.7334 },
|
||||
/* 28*/ { BARCODE_MAXICODE, -1, 5, BARCODE_BIND, "A123", 0, 165, 33, 30, 60, 77.733398, 1, 0, 67.7334 },
|
||||
/* 29*/ { BARCODE_MAXICODE, -1, 5, BARCODE_BIND, "A123", 0, 165, 33, 30, 60, 77.733398, 0, 70, 0 },
|
||||
/* 30*/ { BARCODE_MAXICODE, -1, 5, BARCODE_BOX, "A123", 0, 165, 33, 30, 80, 77.733398, 1, 70, 0 },
|
||||
/* 31*/ { BARCODE_MAXICODE, -1, -1, -1, "A123", 0, 165, 33, 30, 60, 57.733398, 0, 0, 67.7334 },
|
||||
/* 32*/ { BARCODE_MAXICODE, 6, 5, BARCODE_BIND, "A123", 0, 165, 33, 30, 84, 77.733398, 1, 0, 67.7334 },
|
||||
/* 33*/ { BARCODE_MAXICODE, 6, 5, BARCODE_BIND, "A123", 0, 165, 33, 30, 84, 77.733398, 0, 94, 0 },
|
||||
/* 34*/ { BARCODE_MAXICODE, 6, 5, BARCODE_BOX, "A123", 0, 165, 33, 30, 104, 77.733398, 1, 94, 0 },
|
||||
/* 35*/ { BARCODE_MAXICODE, -1, -1, BARCODE_DOTTY_MODE, "A123", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1, -1, -1, -1, -1 },
|
||||
/* 36*/ { BARCODE_ITF14, -1, -1, -1, "123", 0, 50, 1, 135, 330, 138.89999, 1, 320, 0 },
|
||||
/* 37*/ { BARCODE_ITF14, -1, 0, -1, "123", 0, 50, 1, 135, 330, 138.89999, 1, 320, 0 },
|
||||
/* 38*/ { BARCODE_ITF14, -1, 0, BARCODE_BOX, "123", 0, 50, 1, 135, 310, 118.9, 0, 300, 0 }, // No zero-width/height rectangles
|
||||
/* 0*/ { BARCODE_CODE128, -1, -1, -1, -1, "A123", 0, 50, 1, 79, 158, 118.9, 0, 0, 4 },
|
||||
/* 1*/ { BARCODE_CODE128, -1, -1, 2, -1, "A123", 0, 50, 1, 79, 158, 118.9, 0, 0, 4 },
|
||||
/* 2*/ { BARCODE_CODE128, -1, -1, 2, BARCODE_BIND, "A123", 0, 50, 1, 79, 158, 126.9, 1, 0, 4 },
|
||||
/* 3*/ { BARCODE_CODE128, -1, -1, 2, BARCODE_BIND, "A123", 0, 50, 1, 79, 158, 126.9, 0, 4, 4 },
|
||||
/* 4*/ { BARCODE_CODE128, -1, -1, 2, BARCODE_BOX, "A123", 0, 50, 1, 79, 166, 126.9, 1, 4, 4 },
|
||||
/* 5*/ { BARCODE_CODE128, -1, -1, 0, BARCODE_BIND, "A123", 0, 50, 1, 79, 158, 118.9, 0, 0, 4 },
|
||||
/* 6*/ { BARCODE_CODE128, -1, -1, 0, BARCODE_BOX, "A123", 0, 50, 1, 79, 158, 118.9, 0, 4, 4 },
|
||||
/* 7*/ { BARCODE_CODE128, -1, -1, -1, -1, "A123", 0, 50, 1, 79, 158, 118.9, 0, 2, 0 },
|
||||
/* 8*/ { BARCODE_CODE128, 1, -1, -1, -1, "A123", 0, 50, 1, 79, 162, 118.9, 1, 2, 0 },
|
||||
/* 9*/ { BARCODE_CODE128, 1, 2, -1, -1, "A123", 0, 50, 1, 79, 162, 126.9, 0, 2, 0 },
|
||||
/* 10*/ { BARCODE_CODE128, 1, 2, -1, -1, "A123", 0, 50, 1, 79, 162, 126.9, 1, 2, 4 },
|
||||
/* 11*/ { BARCODE_CODE128, -1, -1, -1, -1, "A123", 0, 50, 1, 79, 158, 118.9, 0, 6, 8 },
|
||||
/* 12*/ { BARCODE_CODE128, 3, -1, 4, BARCODE_BIND, "A123", 0, 50, 1, 79, 170, 134.89999, 1, 6, 8 },
|
||||
/* 13*/ { BARCODE_CODE128, 3, -1, 4, BARCODE_BIND, "A123", 0, 50, 1, 79, 170, 134.89999, 0, 14, 8 },
|
||||
/* 14*/ { BARCODE_CODE128, 3, -1, 4, BARCODE_BOX, "A123", 0, 50, 1, 79, 186, 134.89999, 1, 14, 8 },
|
||||
/* 15*/ { BARCODE_CODE128, -1, -1, -1, BARCODE_DOTTY_MODE, "A123", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1, -1, -1, -1, -1 },
|
||||
/* 16*/ { BARCODE_QRCODE, -1, -1, -1, -1, "A123", 0, 21, 21, 21, 42, 42, 0, 0, 6 },
|
||||
/* 17*/ { BARCODE_QRCODE, -1, -1, 3, -1, "A123", 0, 21, 21, 21, 42, 42, 0, 0, 6 },
|
||||
/* 18*/ { BARCODE_QRCODE, -1, -1, 3, BARCODE_BIND, "A123", 0, 21, 21, 21, 42, 54, 1, 0, 6 },
|
||||
/* 19*/ { BARCODE_QRCODE, -1, -1, 3, BARCODE_BIND, "A123", 0, 21, 21, 21, 42, 54, 0, 22, 8 },
|
||||
/* 20*/ { BARCODE_QRCODE, -1, -1, 3, BARCODE_BOX, "A123", 0, 21, 21, 21, 54, 54, 1, 22, 8 },
|
||||
/* 21*/ { BARCODE_QRCODE, -1, -1, -1, -1, "A123", 0, 21, 21, 21, 42, 42, 0, 10, 12 },
|
||||
/* 22*/ { BARCODE_QRCODE, 5, -1, 6, BARCODE_BIND, "A123", 0, 21, 21, 21, 62, 66, 1, 10, 12 },
|
||||
/* 23*/ { BARCODE_QRCODE, 5, -1, 6, BARCODE_BIND, "A123", 0, 21, 21, 21, 62, 66, 0, 22, 12 },
|
||||
/* 24*/ { BARCODE_QRCODE, 5, -1, 6, BARCODE_BOX, "A123", 0, 21, 21, 21, 86, 66, 1, 22, 12 },
|
||||
/* 25*/ { BARCODE_QRCODE, -1, -1, -1, BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 42, 42, 0, 0, 50 },
|
||||
/* 26*/ { BARCODE_QRCODE, -1, -1, 4, BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 42, 42, 0, 0, 50 },
|
||||
/* 27*/ { BARCODE_QRCODE, -1, -1, 4, BARCODE_BIND | BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 42, 58, 1, 0, 50 },
|
||||
/* 28*/ { BARCODE_QRCODE, -1, -1, 4, BARCODE_BIND | BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 42, 58, 0, 54, 8 },
|
||||
/* 29*/ { BARCODE_QRCODE, 1, -1, 4, BARCODE_BOX | BARCODE_DOTTY_MODE, "A123", 0, 21, 21, 21, 62, 58, 1, 54, 8 },
|
||||
/* 30*/ { BARCODE_MAXICODE, -1, -1, -1, -1, "A123", 0, 165, 33, 30, 60, 57.733398, 0, 0, 67.7334 },
|
||||
/* 31*/ { BARCODE_MAXICODE, -1, -1, 5, -1, "A123", 0, 165, 33, 30, 60, 57.733398, 0, 0, 67.7334 },
|
||||
/* 32*/ { BARCODE_MAXICODE, -1, -1, 5, BARCODE_BIND, "A123", 0, 165, 33, 30, 60, 77.733398, 1, 0, 67.7334 },
|
||||
/* 33*/ { BARCODE_MAXICODE, -1, -1, 5, BARCODE_BIND, "A123", 0, 165, 33, 30, 60, 77.733398, 0, 70, 10 },
|
||||
/* 34*/ { BARCODE_MAXICODE, -1, -1, 5, BARCODE_BOX, "A123", 0, 165, 33, 30, 80, 77.733398, 1, 70, 10 },
|
||||
/* 35*/ { BARCODE_MAXICODE, -1, -1, -1, -1, "A123", 0, 165, 33, 30, 60, 57.733398, 0, 0, 67.7334 },
|
||||
/* 36*/ { BARCODE_MAXICODE, 6, -1, 5, BARCODE_BIND, "A123", 0, 165, 33, 30, 84, 77.733398, 1, 0, 67.7334 },
|
||||
/* 37*/ { BARCODE_MAXICODE, 6, -1, 5, BARCODE_BIND, "A123", 0, 165, 33, 30, 84, 77.733398, 0, 94, 10 },
|
||||
/* 38*/ { BARCODE_MAXICODE, 6, -1, 5, BARCODE_BOX, "A123", 0, 165, 33, 30, 104, 77.733398, 1, 94, 10 },
|
||||
/* 39*/ { BARCODE_MAXICODE, -1, -1, -1, BARCODE_DOTTY_MODE, "A123", ZINT_ERROR_INVALID_OPTION, -1, -1, -1, -1, -1, -1, -1, -1 },
|
||||
/* 40*/ { BARCODE_ITF14, -1, -1, -1, -1, "123", 0, 50, 1, 135, 330, 138.89999, 1, 320, 10 },
|
||||
/* 41*/ { BARCODE_ITF14, -1, -1, 0, -1, "123", 0, 50, 1, 135, 330, 138.89999, 1, 320, 10 },
|
||||
/* 42*/ { BARCODE_ITF14, -1, -1, 0, BARCODE_BOX, "123", 0, 50, 1, 135, 310, 118.9, 0, 300, 0 }, // No zero-width/height rectangles
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
|
||||
@ -663,6 +668,9 @@ static void test_output_options(int index, int debug) {
|
||||
if (data[i].whitespace_width != -1) {
|
||||
symbol->whitespace_width = data[i].whitespace_width;
|
||||
}
|
||||
if (data[i].whitespace_height != -1) {
|
||||
symbol->whitespace_height = data[i].whitespace_height;
|
||||
}
|
||||
if (data[i].border_width != -1) {
|
||||
symbol->border_width = data[i].border_width;
|
||||
}
|
||||
|
@ -36,6 +36,12 @@
|
||||
#ifndef TESTCOMMON_H
|
||||
#define TESTCOMMON_H
|
||||
|
||||
#define ZINT_DEBUG_TEST_PRINT 16
|
||||
#define ZINT_DEBUG_TEST_LESS_NOISY 32
|
||||
#define ZINT_DEBUG_TEST_KEEP_OUTFILE 64
|
||||
#define ZINT_DEBUG_TEST_BWIPP 128
|
||||
#define ZINT_DEBUG_TEST_PERFORMANCE 256
|
||||
|
||||
#include <stdio.h>
|
||||
#include "../common.h"
|
||||
|
||||
@ -73,12 +79,6 @@ void testRun(int argc, char *argv[], testFunction funcs[], int funcs_size);
|
||||
#define assert_fail(...) assert_exp(0, __VA_ARGS__)
|
||||
#define assert_nothing(__exp__, ...) {printf(__VA_ARGS__); __exp__;}
|
||||
|
||||
#define ZINT_DEBUG_TEST_PRINT 16
|
||||
#define ZINT_DEBUG_TEST_LESS_NOISY 32
|
||||
#define ZINT_DEBUG_TEST_KEEP_OUTFILE 64
|
||||
#define ZINT_DEBUG_TEST_BWIPP 128
|
||||
#define ZINT_DEBUG_TEST_PERFORMANCE 256
|
||||
|
||||
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);
|
||||
|
@ -487,10 +487,11 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
|
||||
vector->width = symbol->width + dot_overspill + (xoffset + roffset);
|
||||
vector->height = symbol->height + textoffset + dot_overspill + (yoffset + boffset);
|
||||
|
||||
if (symbol->border_width > 0 && ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND))) {
|
||||
default_text_posn = symbol->height + text_height + text_gap + symbol->border_width + symbol->border_width;
|
||||
if (symbol->border_width > 0 && (symbol->output_options & (BARCODE_BOX | BARCODE_BIND))) {
|
||||
default_text_posn = symbol->height + text_height + text_gap + symbol->whitespace_height
|
||||
+ symbol->border_width * 2;
|
||||
} else {
|
||||
default_text_posn = symbol->height + text_height + text_gap;
|
||||
default_text_posn = symbol->height + text_height + text_gap + symbol->whitespace_height;
|
||||
}
|
||||
|
||||
// Plot Maxicode symbols
|
||||
@ -807,7 +808,7 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
|
||||
}
|
||||
|
||||
// Binding and boxes
|
||||
if ((symbol->output_options & BARCODE_BIND) != 0) {
|
||||
if (symbol->output_options & BARCODE_BIND) {
|
||||
if ((symbol->rows > 1) && (is_stackable(symbol->symbology) == 1)) {
|
||||
float sep_height = 1.0f;
|
||||
if (symbol->option_3 > 0 && symbol->option_3 <= 4) {
|
||||
@ -831,28 +832,35 @@ INTERNAL int plot_vector(struct zint_symbol *symbol, int rotate_angle, int file_
|
||||
}
|
||||
}
|
||||
if (symbol->border_width > 0) {
|
||||
if ((symbol->output_options & BARCODE_BOX) || (symbol->output_options & BARCODE_BIND)) {
|
||||
if (symbol->output_options & (BARCODE_BOX | BARCODE_BIND)) {
|
||||
float ybind_bottom = vector->height - symbol->border_width - textoffset - symbol->whitespace_height;
|
||||
// Top
|
||||
rectangle = vector_plot_create_rect(0.0f, 0.0f, vector->width, symbol->border_width);
|
||||
if (!(symbol->output_options & BARCODE_BOX) && (symbol->symbology == BARCODE_CODABLOCKF || symbol->symbology == BARCODE_HIBC_BLOCKF)) {
|
||||
rectangle = vector_plot_create_rect(0.0f, symbol->whitespace_height, vector->width, symbol->border_width);
|
||||
if (!(symbol->output_options & BARCODE_BOX)
|
||||
&& (symbol->symbology == BARCODE_CODABLOCKF || symbol->symbology == BARCODE_HIBC_BLOCKF)) {
|
||||
/* CodaBlockF bind - does not extend over horizontal whitespace */
|
||||
rectangle->x = xoffset;
|
||||
rectangle->width -= (2.0f * xoffset);
|
||||
}
|
||||
vector_plot_add_rect(symbol, rectangle, &last_rectangle);
|
||||
// Bottom
|
||||
rectangle = vector_plot_create_rect(0.0f, vector->height - symbol->border_width - textoffset, vector->width, symbol->border_width);
|
||||
if (!(symbol->output_options & BARCODE_BOX) && (symbol->symbology == BARCODE_CODABLOCKF || symbol->symbology == BARCODE_HIBC_BLOCKF)) {
|
||||
rectangle = vector_plot_create_rect(0.0f, ybind_bottom, vector->width, symbol->border_width);
|
||||
if (!(symbol->output_options & BARCODE_BOX)
|
||||
&& (symbol->symbology == BARCODE_CODABLOCKF || symbol->symbology == BARCODE_HIBC_BLOCKF)) {
|
||||
/* CodaBlockF bind - does not extend over horizontal whitespace */
|
||||
rectangle->x = xoffset;
|
||||
rectangle->width -= (2.0f * xoffset);
|
||||
}
|
||||
vector_plot_add_rect(symbol, rectangle, &last_rectangle);
|
||||
}
|
||||
if (symbol->output_options & BARCODE_BOX) {
|
||||
float xbox_right = vector->width - symbol->border_width;
|
||||
float box_height = vector->height - textoffset - (symbol->whitespace_height + symbol->border_width) * 2;
|
||||
// Left
|
||||
rectangle = vector_plot_create_rect(0.0f, 0.0f, symbol->border_width, vector->height - textoffset);
|
||||
rectangle = vector_plot_create_rect(0.0f, yoffset, symbol->border_width, box_height);
|
||||
vector_plot_add_rect(symbol, rectangle, &last_rectangle);
|
||||
// Right
|
||||
rectangle = vector_plot_create_rect(vector->width - symbol->border_width, 0.0f, symbol->border_width, vector->height - textoffset);
|
||||
rectangle = vector_plot_create_rect(xbox_right, yoffset, symbol->border_width, box_height);
|
||||
vector_plot_add_rect(symbol, rectangle, &last_rectangle);
|
||||
}
|
||||
}
|
||||
|
@ -77,6 +77,7 @@ extern "C" {
|
||||
int symbology;
|
||||
int height; /* Height in X-dims (ignored for fixed-width barcodes) */
|
||||
int whitespace_width; /* Width in X-dims of whitespace to left/right of barcode */
|
||||
int whitespace_height; /* Height in X-dims of whitespace above and below the barcode */
|
||||
int border_width; /* Size of border in X-dims */
|
||||
int output_options;
|
||||
char fgcolour[10]; /* Foreground as RGB/RGBA hexadecimal string */
|
||||
|
@ -113,6 +113,8 @@
|
||||
- -cols maximum changed from 67 to 108 (DotCode)
|
||||
2021-05-10 GL
|
||||
- Added -gs1parens option
|
||||
2021-05-22 GL
|
||||
- Added -vwhitesp option
|
||||
*/
|
||||
|
||||
#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32)
|
||||
@ -473,6 +475,7 @@ static char help_message[] = "zint tcl(stub,obj) dll\n"
|
||||
" -square bool: force Data Matrix symbols to be square\n"
|
||||
/* cli option --types not supported */
|
||||
" -vers integer: Symbology option\n"
|
||||
" -vwhitesp integer: vertical quiet zone in modules\n"
|
||||
" -whitesp integer: horizontal quiet zone in modules\n"
|
||||
" -werror bool: Convert all warnings into errors\n"
|
||||
" -wzpl bool: ZPL compatibility mode (allows non-standard symbols)\n"
|
||||
@ -685,6 +688,7 @@ static int Encode(Tcl_Interp *interp, int objc,
|
||||
/*------------------------------------------------------------------------*/
|
||||
/* >>> Prepare zint object */
|
||||
my_symbol = ZBarcode_Create();
|
||||
my_symbol->debug = ZINT_DEBUG_PRINT;
|
||||
my_symbol->input_mode = UNICODE_MODE;
|
||||
my_symbol->option_3 = 0;
|
||||
/*------------------------------------------------------------------------*/
|
||||
@ -698,7 +702,7 @@ static int Encode(Tcl_Interp *interp, int objc,
|
||||
"-fullmultibyte", "-gs1parens", "-gssep", "-height", "-init", "-mask", "-mode",
|
||||
"-nobackground", "-notext", "-primary", "-reverse", "-rotate",
|
||||
"-rows", "-scale", "-scmvv", "-secure", "-separator", "-smalltext",
|
||||
"-square", "-to", "-vers", "-werror", "-whitesp", "-wzpl",
|
||||
"-square", "-to", "-vers", "-vwhitesp", "-werror", "-whitesp", "-wzpl",
|
||||
NULL};
|
||||
enum iOption {
|
||||
iAddonGap, iBarcode, iBG, iBind, iBold, iBorder, iBox,
|
||||
@ -706,7 +710,7 @@ static int Encode(Tcl_Interp *interp, int objc,
|
||||
iFullMultiByte, iGS1Parens, iGSSep, iHeight, iInit, iMask, iMode,
|
||||
iNoBackground, iNoText, iPrimary, iReverse, iRotate,
|
||||
iRows, iScale, iSCMvv, iSecure, iSeparator, iSmallText,
|
||||
iSquare, iTo, iVers, iWError, iWhiteSp, iWZPL
|
||||
iSquare, iTo, iVers, iVWhiteSp, iWError, iWhiteSp, iWZPL
|
||||
};
|
||||
int optionIndex;
|
||||
int intValue;
|
||||
@ -769,15 +773,16 @@ static int Encode(Tcl_Interp *interp, int objc,
|
||||
case iBorder:
|
||||
case iCols:
|
||||
case iHeight:
|
||||
case iMask:
|
||||
case iMode:
|
||||
case iRotate:
|
||||
case iRows:
|
||||
case iSecure:
|
||||
case iVers:
|
||||
case iWhiteSp:
|
||||
case iSeparator:
|
||||
case iMask:
|
||||
case iSCMvv:
|
||||
case iVers:
|
||||
case iVWhiteSp:
|
||||
case iWhiteSp:
|
||||
/* >> Int */
|
||||
if (TCL_OK != Tcl_GetIntFromObj(interp, objv[optionPos+1],
|
||||
&intValue))
|
||||
@ -1052,6 +1057,9 @@ static int Encode(Tcl_Interp *interp, int objc,
|
||||
my_symbol->symbology = s_code_number[intValue];
|
||||
}
|
||||
break;
|
||||
case iVWhiteSp:
|
||||
my_symbol->whitespace_height = intValue;
|
||||
break;
|
||||
case iWhiteSp:
|
||||
my_symbol->whitespace_width = intValue;
|
||||
break;
|
||||
|
@ -384,12 +384,24 @@ This specifies a symbol height of 100 times the X-dimension of the symbol.
|
||||
|
||||
4.5 Adjusting whitespace
|
||||
------------------------
|
||||
The amount of whitespace to the left and right of the generated barcode can be
|
||||
altered using the –w switch. For example:
|
||||
The amount of horizontal whitespace to the left and right of the generated
|
||||
barcode can be altered using the –w or --whitesp switch. For example:
|
||||
|
||||
zint -w 10 -d "This Text"
|
||||
|
||||
This specifies a whitespace width of 10 times the X-dimension of the symbol.
|
||||
This specifies a whitespace width of 10 times the X-dimension of the symbol
|
||||
both to the left and to the right of the barcode.
|
||||
|
||||
The amount of vertical whitespace above and below the barcode can be altered
|
||||
using the --vwhitesp switch. For example for 3 times the X-dimension:
|
||||
|
||||
zint --vwhitesp 3 -d "This Text"
|
||||
|
||||
Note that the whitespace at the bottom appears below the text, if any.
|
||||
|
||||
Horizontal and vertical whitespace can of course be used together:
|
||||
|
||||
zint -b DATAMATRIX --whitesp 1 --vwhitesp 1 -d "This Text"
|
||||
|
||||
4.6 Adding boundary bars and boxes
|
||||
----------------------------------
|
||||
@ -397,17 +409,20 @@ Zint allows the symbol to be bound with 'boundary bars' (also known as 'bearer
|
||||
bars') using the option --bind. These bars help to prevent misreading of the
|
||||
symbol by corrupting a scan if the scanning beam strays off the top or bottom of
|
||||
the symbol. Zint can also put a border right around the symbol and its
|
||||
whitespace with the --box option.
|
||||
horizontal whitespace with the --box option.
|
||||
|
||||
The width of the boundary or box can be specified using the --border switch.
|
||||
For example:
|
||||
|
||||
zint --box --border=10 -d "This"
|
||||
zint --box --border=10 -w 10 -d "This"
|
||||
|
||||
gives a box with a width 10 times the X-dimension of the symbol.
|
||||
gives a box with a width 10 times the X-dimension of the symbol. Note that when
|
||||
specifying a box, horizontal whitespace is usually required in order to create a
|
||||
quiet zone between the barcode and the sides of the box.
|
||||
|
||||
These options are ignored for Code 16k, Code 49 and Codablock-F. Special
|
||||
considerations apply to ITF-14 - see the specific section for that symbology.
|
||||
Code 16k, Code 49 and Codablock-F always have boundary bars, and default to
|
||||
particular horizontal whitespace values. Special considerations apply to ITF-14
|
||||
- see the specific section 6.1.2.6 for that symbology.
|
||||
|
||||
4.7 Using colour
|
||||
----------------
|
||||
@ -465,14 +480,14 @@ multiple of the default X-dimension. The scale is multiplied by 2 before being
|
||||
applied. The default scale is 1.
|
||||
|
||||
For raster output, the default X-dimension is 2 pixels (except for MaxiCode, see
|
||||
4.9.2 below, and dotty mode, see 4.14). For example for PNG images a scale of 5
|
||||
will increase the X-dimension to 10 pixels. Scales should be given in increments
|
||||
of 0.5, i.e. 0.5, 1, 1.5, 2, 2.5, 3, 3.5, etc., to avoid the X-dimension
|
||||
varying across the symbol due to interpolation. 0.5 increments are also faster
|
||||
to render.
|
||||
4.9.2 below). For example for PNG images a scale of 5 will increase the
|
||||
X-dimension to 10 pixels. Scales should be given in increments of 0.5, i.e. 0.5,
|
||||
1, 1.5, 2, 2.5, 3, 3.5, etc., to avoid the X-dimension varying across the symbol
|
||||
due to interpolation. 0.5 increments are also faster to render.
|
||||
|
||||
The minimum scale for non-dotty raster output is 0.5, giving a minimum
|
||||
X-dimension of 1 pixel, and text will not be printed for scales less than 1.
|
||||
The minimum scale for raster output in dotty mode is 1 (see 4.14).
|
||||
|
||||
The minimum scale for vector output is 0.1, giving a minimum X-dimension of 0.2.
|
||||
|
||||
@ -762,7 +777,7 @@ matrix symbologies, and is automatically selected for DotCode. The size of
|
||||
the dots can be adjusted using the --dotsize= option followed by the radius
|
||||
of the dot, where that radius is given as a multiple of the X-dimension. The
|
||||
minimum dot size is 0.01, the maximum is 20. The default and minimum scale for
|
||||
raster output in dotty mode is 2.
|
||||
raster output in dotty mode is 1.
|
||||
|
||||
4.15 Help options
|
||||
-----------------
|
||||
@ -966,7 +981,8 @@ Variable Name | Type | Meaning | Default Value
|
||||
symbology | integer | Symbol to use (see section | BARCODE_CODE128
|
||||
| | 5.7). |
|
||||
height | integer | Symbol height. [1] | 50
|
||||
whitespace_width | integer | Whitespace width. | 0
|
||||
whitespace_width | integer | Horizontal whitespace width.| 0
|
||||
whitespace_height | integer | Vertical whitespace height. | 0
|
||||
border_width | integer | Border width. | 0
|
||||
output_options | integer | Set various output file | 0 (none)
|
||||
| | parameters (see section |
|
||||
|
@ -117,13 +117,13 @@ static void usage(void) {
|
||||
" -b, --barcode=TYPE Number or name of barcode type. Default is 20 (CODE128)\n"
|
||||
" --addongap=NUMBER Set add-on gap in multiples of X-dimension for UPC/EAN\n"
|
||||
" --batch Treat each line of input file as a separate data set\n"
|
||||
" --bg=COLOUR Specify a background colour (in hex)\n"
|
||||
" --bg=COLOUR Specify a background colour (in hex RGB/RGBA)\n"
|
||||
" --binary Treat input as raw binary data\n"
|
||||
" --bind Add boundary bars\n"
|
||||
" --bold Use bold text\n"
|
||||
" --border=NUMBER Set width of border in multiples of X-dimension\n"
|
||||
" --box Add a box around the symbol\n"
|
||||
" --cmyk Use CMYK colour space in EPS symbols\n"
|
||||
" --cmyk Use CMYK colour space in EPS/TIF symbols\n"
|
||||
" --cols=NUMBER Set the number of data columns in symbol\n"
|
||||
" -d, --data=DATA Set the symbol content\n"
|
||||
" --direct Send output to stdout\n"
|
||||
@ -134,7 +134,7 @@ static void usage(void) {
|
||||
" -e, --ecinos Display table of ECI character encodings\n"
|
||||
" --eci=NUMBER Set the ECI (Extended Channel Interpretation) code\n"
|
||||
" --esc Process escape characters in input data\n"
|
||||
" --fg=COLOUR Specify a foreground colour (in hex)\n"
|
||||
" --fg=COLOUR Specify a foreground colour (in hex RGB/RGBA)\n"
|
||||
" --filetype=TYPE Set output file type BMP/EMF/EPS/GIF/PCX/PNG/SVG/TIF/TXT\n"
|
||||
" --fullmultibyte Use multibyte for binary/Latin (QR/Han Xin/Grid Matrix)\n"
|
||||
" --gs1 Treat input as GS1 compatible data\n"
|
||||
@ -147,7 +147,7 @@ static void usage(void) {
|
||||
" --mask=NUMBER Set masking pattern to use (QR/Han Xin/DotCode)\n"
|
||||
" --mirror Use batch data to determine filename\n"
|
||||
" --mode=NUMBER Set encoding mode (MaxiCode/Composite)\n"
|
||||
" --nobackground Remove background (PNG/SVG/EPS only)\n"
|
||||
" --nobackground Remove background (EMF/EPS/GIF/PNG/SVG/TIF only)\n"
|
||||
" --notext Remove human readable text\n"
|
||||
" -o, --output=FILE Send output to FILE. Default is out.png\n"
|
||||
" --primary=STRING Set structured primary message (MaxiCode/Composite)\n"
|
||||
@ -162,7 +162,8 @@ static void usage(void) {
|
||||
" --square Force Data Matrix symbols to be square\n"
|
||||
" -t, --types Display table of barcode types\n"
|
||||
" --vers=NUMBER Set symbol version (size, check digits, other options)\n"
|
||||
" -w, --whitesp=NUMBER Set width of whitespace in multiples of X-dimension\n"
|
||||
" --vwhitesp=NUMBER Set height of vertical whitespace in multiples of X-dim\n"
|
||||
" -w, --whitesp=NUMBER Set width of horizontal whitespace in multiples of X-dim\n"
|
||||
" --werror Convert all warnings into errors\n"
|
||||
" --wzpl ZPL compatibility mode (allows non-standard symbols)\n"
|
||||
);
|
||||
@ -798,7 +799,7 @@ int main(int argc, char **argv) {
|
||||
OPT_GS1, OPT_GS1PARENS, OPT_GSSEP, OPT_HEIGHT, OPT_INIT, OPT_MIRROR, OPT_MASK, OPT_MODE,
|
||||
OPT_NOBACKGROUND, OPT_NOTEXT, OPT_PRIMARY, OPT_ROTATE, OPT_ROWS, OPT_SCALE,
|
||||
OPT_SCMVV, OPT_SECURE, OPT_SEPARATOR, OPT_SMALL, OPT_SQUARE, OPT_VERBOSE, OPT_VERS,
|
||||
OPT_WERROR, OPT_WZPL,
|
||||
OPT_VWHITESP, OPT_WERROR, OPT_WZPL,
|
||||
};
|
||||
int option_index = 0;
|
||||
static struct option long_options[] = {
|
||||
@ -852,6 +853,7 @@ int main(int argc, char **argv) {
|
||||
{"types", 0, NULL, 't'},
|
||||
{"verbose", 0, NULL, OPT_VERBOSE}, // Currently undocumented, output some debug info
|
||||
{"vers", 1, NULL, OPT_VERS},
|
||||
{"vwhitesp", 1, NULL, OPT_VWHITESP},
|
||||
{"werror", 0, NULL, OPT_WERROR},
|
||||
{"whitesp", 1, NULL, 'w'},
|
||||
{"wzpl", 0, NULL, OPT_WZPL},
|
||||
@ -1163,6 +1165,18 @@ int main(int argc, char **argv) {
|
||||
fflush(stderr);
|
||||
}
|
||||
break;
|
||||
case OPT_VWHITESP:
|
||||
if (!validate_int(optarg, &val)) {
|
||||
fprintf(stderr, "Error 153: Invalid vertical whitespace value '%s'\n", optarg);
|
||||
return do_exit(1);
|
||||
}
|
||||
if (val <= 1000) { /* `val` >= 0 always */
|
||||
my_symbol->whitespace_height = val;
|
||||
} else {
|
||||
fprintf(stderr, "Warning 154: Vertical whitespace value out of range\n");
|
||||
fflush(stderr);
|
||||
}
|
||||
break;
|
||||
case OPT_WERROR:
|
||||
my_symbol->warn_level = WARN_FAIL_ALL;
|
||||
break;
|
||||
@ -1195,13 +1209,13 @@ int main(int argc, char **argv) {
|
||||
|
||||
case 'w':
|
||||
if (!validate_int(optarg, &val)) {
|
||||
fprintf(stderr, "Error 120: Invalid whitespace value '%s'\n", optarg);
|
||||
fprintf(stderr, "Error 120: Invalid horizontal whitespace value '%s'\n", optarg);
|
||||
return do_exit(1);
|
||||
}
|
||||
if (val <= 1000) { /* `val` >= 0 always */
|
||||
my_symbol->whitespace_width = val;
|
||||
} else {
|
||||
fprintf(stderr, "Warning 121: Whitespace value out of range\n");
|
||||
fprintf(stderr, "Warning 121: Horizontal whitespace value out of range\n");
|
||||
fflush(stderr);
|
||||
}
|
||||
break;
|
||||
|
@ -545,44 +545,47 @@ static void test_checks(int index, int debug) {
|
||||
int secure;
|
||||
int separator;
|
||||
int vers;
|
||||
int vwhitesp;
|
||||
int w;
|
||||
|
||||
char *expected;
|
||||
};
|
||||
// s/\/\*[ 0-9]*\*\//\=printf("\/*%3d*\/", line(".") - line("'<"))
|
||||
struct item data[] = {
|
||||
/* 0*/ { -2, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 139: Invalid add-on gap value" },
|
||||
/* 1*/ { 6, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 140: Invalid add-on gap value" },
|
||||
/* 2*/ { 13, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 140: Invalid add-on gap value" },
|
||||
/* 3*/ { -1, -2, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 107: Invalid border width value" },
|
||||
/* 4*/ { -1, 1001, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 108: Border width out of range" },
|
||||
/* 5*/ { -1, -1, -1, 0.009, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 106: Invalid dot radius value" },
|
||||
/* 6*/ { -1, -1, -2, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 131: Invalid columns value" },
|
||||
/* 7*/ { -1, -1, 109, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 111: Number of columns out of range" },
|
||||
/* 8*/ { -1, -1, -1, -1, -2, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 138: Invalid ECI value" },
|
||||
/* 9*/ { -1, -1, -1, -1, 1000000, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 118: Invalid ECI code" },
|
||||
/* 10*/ { -1, -1, -1, -1, -1, "jpg", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 142: File type 'jpg' not supported, ignoring" },
|
||||
/* 11*/ { -1, -1, -1, -1, -1, NULL, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 109: Invalid symbol height value" },
|
||||
/* 12*/ { -1, -1, -1, -1, -1, NULL, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 110: Symbol height out of range" },
|
||||
/* 13*/ { -1, -1, -1, -1, -1, NULL, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 148: Invalid mask value" },
|
||||
/* 14*/ { -1, -1, -1, -1, -1, NULL, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 147: Invalid mask value" },
|
||||
/* 15*/ { -1, -1, -1, -1, -1, NULL, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 116: Invalid mode" },
|
||||
/* 16*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1, "Error 117: Invalid rotation value" },
|
||||
/* 17*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, "Warning 137: Invalid rotation parameter" },
|
||||
/* 18*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, "Error 132: Invalid rows value" },
|
||||
/* 19*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, "Warning 112: Number of rows out of range" },
|
||||
/* 20*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, "Warning 105: Invalid scale value" },
|
||||
/* 21*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, 0.49, -1, -1, -1, -1, -1, "Warning 146: Scaling less than 0.5 will be set to 0.5 for 'png' output" },
|
||||
/* 22*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, "Error 149: Invalid Structured Carrier Message version value" },
|
||||
/* 22*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, "Warning 150: Invalid version (vv) for Structured Carrier Message, ignoring" },
|
||||
/* 22*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, "Error 134: Invalid ECC value" },
|
||||
/* 23*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, "Warning 114: ECC level out of range" },
|
||||
/* 24*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, "Error 128: Invalid separator value" },
|
||||
/* 25*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, "Warning 127: Invalid separator value" },
|
||||
/* 26*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, "Error 133: Invalid version value" },
|
||||
/* 27*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, "Warning 113: Invalid version" },
|
||||
/* 28*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, "Error 120: Invalid whitespace value '-2'" },
|
||||
/* 29*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1001, "Warning 121: Whitespace value out of range" },
|
||||
/* 0*/ { -2, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 139: Invalid add-on gap value" },
|
||||
/* 1*/ { 6, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 140: Invalid add-on gap value" },
|
||||
/* 2*/ { 13, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 140: Invalid add-on gap value" },
|
||||
/* 3*/ { -1, -2, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 107: Invalid border width value" },
|
||||
/* 4*/ { -1, 1001, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 108: Border width out of range" },
|
||||
/* 5*/ { -1, -1, -1, 0.009, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 106: Invalid dot radius value" },
|
||||
/* 6*/ { -1, -1, -2, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 131: Invalid columns value" },
|
||||
/* 7*/ { -1, -1, 109, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 111: Number of columns out of range" },
|
||||
/* 8*/ { -1, -1, -1, -1, -2, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 138: Invalid ECI value" },
|
||||
/* 9*/ { -1, -1, -1, -1, 1000000, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 118: Invalid ECI code" },
|
||||
/* 10*/ { -1, -1, -1, -1, -1, "jpg", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 142: File type 'jpg' not supported, ignoring" },
|
||||
/* 11*/ { -1, -1, -1, -1, -1, NULL, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 109: Invalid symbol height value" },
|
||||
/* 12*/ { -1, -1, -1, -1, -1, NULL, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 110: Symbol height out of range" },
|
||||
/* 13*/ { -1, -1, -1, -1, -1, NULL, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Error 148: Invalid mask value" },
|
||||
/* 14*/ { -1, -1, -1, -1, -1, NULL, -1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 147: Invalid mask value" },
|
||||
/* 15*/ { -1, -1, -1, -1, -1, NULL, -1, -1, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 116: Invalid mode" },
|
||||
/* 16*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1, -1, "Error 117: Invalid rotation value" },
|
||||
/* 17*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, "Warning 137: Invalid rotation parameter" },
|
||||
/* 18*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, -1, "Error 132: Invalid rows value" },
|
||||
/* 19*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, "Warning 112: Number of rows out of range" },
|
||||
/* 20*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, -1, "Warning 105: Invalid scale value" },
|
||||
/* 21*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, 0.49, -1, -1, -1, -1, -1, -1, "Warning 146: Scaling less than 0.5 will be set to 0.5 for 'png' output" },
|
||||
/* 22*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, -1, "Error 149: Invalid Structured Carrier Message version value" },
|
||||
/* 23*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, 100, -1, -1, -1, -1, -1, "Warning 150: Invalid version (vv) for Structured Carrier Message, ignoring" },
|
||||
/* 24*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, -1, "Error 134: Invalid ECC value" },
|
||||
/* 25*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, 9, -1, -1, -1, -1, "Warning 114: ECC level out of range" },
|
||||
/* 26*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -1, "Error 128: Invalid separator value" },
|
||||
/* 27*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, "Warning 127: Invalid separator value" },
|
||||
/* 28*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, "Error 133: Invalid version value" },
|
||||
/* 29*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, "Warning 113: Invalid version" },
|
||||
/* 30*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, "Error 153: Invalid vertical whitespace value '-2'" },
|
||||
/* 31*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1001, -1, "Warning 154: Vertical whitespace value out of range" },
|
||||
/* 32*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, "Error 120: Invalid horizontal whitespace value '-2'" },
|
||||
/* 33*/ { -1, -1, -1, -1, -1, NULL, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1001, "Warning 121: Horizontal whitespace value out of range" },
|
||||
};
|
||||
int data_size = ARRAY_SIZE(data);
|
||||
|
||||
@ -615,6 +618,7 @@ static void test_checks(int index, int debug) {
|
||||
arg_int(cmd, "--secure=", data[i].secure);
|
||||
arg_int(cmd, "--separator=", data[i].separator);
|
||||
arg_int(cmd, "--vers=", data[i].vers);
|
||||
arg_int(cmd, "--vwhitesp=", data[i].vwhitesp);
|
||||
arg_int(cmd, "-w ", data[i].w);
|
||||
|
||||
strcat(cmd, " 2>&1");
|
||||
|
@ -21,7 +21,7 @@
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>420</width>
|
||||
<width>400</width>
|
||||
<height>460</height>
|
||||
</size>
|
||||
</property>
|
||||
@ -248,7 +248,7 @@ or import from file</string>
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Component &Type:</string>
|
||||
<string>&Type:</string>
|
||||
</property>
|
||||
<property name="buddy">
|
||||
<cstring>cmbCompType</cstring>
|
||||
@ -260,6 +260,12 @@ or import from file</string>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cmbCompType">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
@ -379,7 +385,7 @@ p, li { white-space: pre-wrap; }
|
||||
<widget class="QComboBox" name="cmbECI">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>66</width>
|
||||
<width>64</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
@ -660,7 +666,8 @@ to delimit GS1 application identifiers
|
||||
<cstring>heightb</cstring>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Overall symbol height</string>
|
||||
<string>Overall symbol height
|
||||
(ignored if disabled)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -670,7 +677,8 @@ to delimit GS1 application identifiers
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Overall symbol height</string>
|
||||
<string>Overall symbol height
|
||||
(ignored if disabled)</string>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> X</string>
|
||||
@ -768,7 +776,7 @@ to delimit GS1 application identifiers
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="lblWhitespace">
|
||||
<property name="text">
|
||||
<string>Hori&zontal Whitespace:</string>
|
||||
<string>&Whitespace:</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
@ -777,20 +785,34 @@ to delimit GS1 application identifiers
|
||||
<cstring>spnWhitespace</cstring>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Width of whitespace on either side of barcode</string>
|
||||
<string>Horizontal whitespace, Vertical whitespace</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<layout class="QGridLayout" name="gridLayoutWhitespace">
|
||||
<item row="0" column="0">
|
||||
<widget class="QSpinBox" name="spnWhitespace">
|
||||
<property name="toolTip">
|
||||
<string>Width of whitespace on either side of barcode</string>
|
||||
<string>Width of horizontal whitespace on either side of barcode</string>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> X</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="spnVWhitespace">
|
||||
<property name="toolTip">
|
||||
<string>Height of vertical whitespace above and below the barcode</string>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> X</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="lblScale">
|
||||
<property name="text">
|
||||
@ -844,14 +866,16 @@ to delimit GS1 application identifiers
|
||||
<cstring>cmbFontSetting</cstring>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Set font characteristics</string>
|
||||
<string>Set font characteristics
|
||||
(ignored if disabled)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QComboBox" name="cmbFontSetting">
|
||||
<property name="toolTip">
|
||||
<string>Set font characteristics</string>
|
||||
<string>Set font characteristics
|
||||
(ignored if disabled)</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
@ -1033,14 +1057,16 @@ to delimit GS1 application identifiers
|
||||
<cstring>spnDotSize</cstring>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Size of dots</string>
|
||||
<string>Size of dots
|
||||
(ignored if disabled)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="3">
|
||||
<widget class="QDoubleSpinBox" name="spnDotSize">
|
||||
<property name="toolTip">
|
||||
<string>Size of dots</string>
|
||||
<string>Size of dots
|
||||
(ignored if disabled)</string>
|
||||
</property>
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
|
@ -168,6 +168,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags fl)
|
||||
heightb->setValue(settings.value("studio/appearance/height", 50).toInt());
|
||||
bwidth->setValue(settings.value("studio/appearance/border", 0).toInt());
|
||||
spnWhitespace->setValue(settings.value("studio/appearance/whitespace", 0).toInt());
|
||||
spnVWhitespace->setValue(settings.value("studio/appearance/vwhitespace", 0).toInt());
|
||||
spnScale->setValue(settings.value("studio/appearance/scale", 1.0).toFloat());
|
||||
btype->setCurrentIndex(settings.value("studio/appearance/border_type", 0).toInt());
|
||||
cmbFontSetting->setCurrentIndex(settings.value("studio/appearance/font_setting", 0).toInt());
|
||||
@ -201,6 +202,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags fl)
|
||||
connect(chkRInit, SIGNAL(stateChanged( int )), SLOT(update_preview()));
|
||||
connect(chkGS1Parens, SIGNAL(stateChanged( int )), SLOT(update_preview()));
|
||||
connect(spnWhitespace, SIGNAL(valueChanged( int )), SLOT(update_preview()));
|
||||
connect(spnVWhitespace, SIGNAL(valueChanged( int )), SLOT(update_preview()));
|
||||
connect(btnAbout, SIGNAL(clicked( bool )), SLOT(about()));
|
||||
connect(btnSave, SIGNAL(clicked( bool )), SLOT(save()));
|
||||
connect(spnScale, SIGNAL(valueChanged( double )), SLOT(change_print_scale()));
|
||||
@ -257,6 +259,7 @@ MainWindow::~MainWindow()
|
||||
settings.setValue("studio/appearance/height", heightb->value());
|
||||
settings.setValue("studio/appearance/border", bwidth->value());
|
||||
settings.setValue("studio/appearance/whitespace", spnWhitespace->value());
|
||||
settings.setValue("studio/appearance/vwhitespace", spnVWhitespace->value());
|
||||
settings.setValue("studio/appearance/scale", spnScale->value());
|
||||
settings.setValue("studio/appearance/border_type", btype->currentIndex());
|
||||
settings.setValue("studio/appearance/font_setting", cmbFontSetting->currentIndex());
|
||||
@ -705,6 +708,7 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
static const char *names[] = { "Standard (Matrix)", "Interleaved", "IATA", "", "Data Logic", "Industrial" };
|
||||
/*: %1 is name of variant (Standard, Interleaved, IATA, Data Logic, Industrial) */
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&e 2 of 5 %1").arg(names[symbology - BARCODE_C25STANDARD]));
|
||||
connect(m_optionWidget->findChild<QObject*>("radC25Stand"), SIGNAL(clicked( bool )), SLOT(update_preview()));
|
||||
connect(m_optionWidget->findChild<QObject*>("radC25Check"), SIGNAL(clicked( bool )), SLOT(update_preview()));
|
||||
@ -898,6 +902,7 @@ void MainWindow::change_options()
|
||||
m_optionWidget = uiload.load(&file);
|
||||
file.close();
|
||||
tabMain->insertTab(1, m_optionWidget, tr("Cod&e 49"));
|
||||
btype->setItemText(0, tr("Default (bind)"));
|
||||
connect(m_optionWidget->findChild<QObject*>("cmbC49RowSepHeight"), SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
|
||||
connect(m_optionWidget->findChild<QObject*>("radC49GS1"), SIGNAL(toggled( bool )), SLOT(update_preview()));
|
||||
} else if (symbology == BARCODE_DBAR_EXPSTK) {
|
||||
@ -1578,11 +1583,11 @@ void MainWindow::update_preview()
|
||||
m_bc.bc.setECI(cmbECI->isEnabled() ? cmbECI->currentIndex() : 0);
|
||||
m_bc.bc.setGS1Parens(chkGS1Parens->isEnabled() && chkGS1Parens->isChecked());
|
||||
m_bc.bc.setReaderInit(chkRInit->isEnabled() && chkRInit->isChecked());
|
||||
m_bc.bc.setReaderInit(chkRInit->isEnabled() && chkRInit->isChecked());
|
||||
m_bc.bc.setShowText(chkHRTShow->isEnabled() && chkHRTShow->isChecked());
|
||||
m_bc.bc.setBorderType(btype->currentIndex());
|
||||
m_bc.bc.setBorderWidth(bwidth->value());
|
||||
m_bc.bc.setWhitespace(spnWhitespace->value());
|
||||
m_bc.bc.setVWhitespace(spnVWhitespace->value());
|
||||
m_bc.bc.setFontSetting(cmbFontSetting->currentIndex());
|
||||
m_bc.bc.setRotateAngle(cmbRotate->currentIndex());
|
||||
m_bc.bc.setDotty(chkDotty->isEnabled() && chkDotty->isChecked());
|
||||
@ -1878,6 +1883,7 @@ void MainWindow::save_sub_settings(QSettings &settings, int symbology) {
|
||||
}
|
||||
settings.setValue(QString("studio/bc/%1/appearance/border").arg(name), bwidth->value());
|
||||
settings.setValue(QString("studio/bc/%1/appearance/whitespace").arg(name), spnWhitespace->value());
|
||||
settings.setValue(QString("studio/bc/%1/appearance/vwhitespace").arg(name), spnVWhitespace->value());
|
||||
settings.setValue(QString("studio/bc/%1/appearance/scale").arg(name), spnScale->value());
|
||||
settings.setValue(QString("studio/bc/%1/appearance/border_type").arg(name), btype->currentIndex());
|
||||
if (chkHRTShow->isEnabled()) {
|
||||
@ -2124,6 +2130,7 @@ void MainWindow::load_sub_settings(QSettings &settings, int symbology) {
|
||||
}
|
||||
bwidth->setValue(settings.value(QString("studio/bc/%1/appearance/border").arg(name), 0).toInt());
|
||||
spnWhitespace->setValue(settings.value(QString("studio/bc/%1/appearance/whitespace").arg(name), 0).toInt());
|
||||
spnVWhitespace->setValue(settings.value(QString("studio/bc/%1/appearance/vwhitespace").arg(name), 0).toInt());
|
||||
spnScale->setValue(settings.value(QString("studio/bc/%1/appearance/scale").arg(name), 1.0).toFloat());
|
||||
btype->setCurrentIndex(settings.value(QString("studio/bc/%1/appearance/border_type").arg(name), 0).toInt());
|
||||
if (chkHRTShow->isEnabled()) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2008 by BogDan Vatra *
|
||||
* bogdan@licentia.eu *
|
||||
* Copyright (C) 2010-2020 Robin Stuart *
|
||||
* Copyright (C) 2010-2021 Robin Stuart *
|
||||
* *
|
||||
* This program is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
@ -53,6 +53,7 @@ namespace Zint {
|
||||
target_size_vert = 0;
|
||||
m_option_2 = 0;
|
||||
m_whitespace = 0;
|
||||
m_vwhitespace = 0;
|
||||
m_gs1parens = false;
|
||||
m_gssep = false;
|
||||
m_reader_init = false;
|
||||
@ -75,6 +76,7 @@ namespace Zint {
|
||||
m_zintSymbol->symbology = m_symbol;
|
||||
m_zintSymbol->height = m_height;
|
||||
m_zintSymbol->whitespace_width = m_whitespace;
|
||||
m_zintSymbol->whitespace_height = m_vwhitespace;
|
||||
m_zintSymbol->border_width = m_borderWidth;
|
||||
m_zintSymbol->option_1 = m_option_1;
|
||||
m_zintSymbol->input_mode = m_input_mode;
|
||||
@ -125,6 +127,7 @@ namespace Zint {
|
||||
m_height = m_zintSymbol->height;
|
||||
m_borderWidth = m_zintSymbol->border_width;
|
||||
m_whitespace = m_zintSymbol->whitespace_width;
|
||||
m_vwhitespace = m_zintSymbol->whitespace_height;
|
||||
emit encoded();
|
||||
}
|
||||
}
|
||||
@ -253,6 +256,10 @@ namespace Zint {
|
||||
m_whitespace = whitespace;
|
||||
}
|
||||
|
||||
void QZint::setVWhitespace(int vwhitespace) {
|
||||
m_vwhitespace = vwhitespace;
|
||||
}
|
||||
|
||||
int QZint::option1() const {
|
||||
return m_option_1;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
/***************************************************************************
|
||||
* Copyright (C) 2008 by BogDan Vatra *
|
||||
* bogdan@licentia.eu *
|
||||
* Copyright (C) 2010-2021 Robin Stuart *
|
||||
* *
|
||||
* This program is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
@ -83,6 +84,8 @@ public:
|
||||
|
||||
void setWhitespace(int whitespace);
|
||||
|
||||
void setVWhitespace(int vwhitespace);
|
||||
|
||||
void setFontSetting(int fontSettingIndex);
|
||||
|
||||
void setShowText(bool show);
|
||||
@ -148,6 +151,7 @@ private:
|
||||
QString m_lastError;
|
||||
int m_error;
|
||||
int m_whitespace;
|
||||
int m_vwhitespace;
|
||||
zint_symbol * m_zintSymbol;
|
||||
float m_scale;
|
||||
int m_option_3;
|
||||
|