Hi, Since the upgrade from zint 2.4.3 to 2.6.2, I had problems in glabels when using Zint backend: EAN and UPC barcodes aren't resizable anymore.
I looked to the issue with upstream and a fix has been commited in zint tree: https://github.com/woo-j/zint/commit/3aeb1ea70a5f5b7c9a235ee29bdd708663f4d1f6 Discussion with upstream is on zint-barcode mailing-list at https://sourceforge.net/p/zint/mailman/message/36208925/ As the fix isn't present in any zint release for now, I would like to backport it in 2.6.2, in order to restore the functionality inside glabels in ports. The following diff do that. Is it acceptable ? Thanks. -- Sebastien Marie Index: Makefile =================================================================== RCS file: /cvs/ports/graphics/zint/Makefile,v retrieving revision 1.12 diff -u -p -r1.12 Makefile --- Makefile 10 Jan 2018 15:12:08 -0000 1.12 +++ Makefile 31 Jan 2018 08:27:47 -0000 @@ -7,6 +7,7 @@ V = 2.6.2 DISTNAME = zint-${V}.src PKGNAME-main = zint-${V} PKGNAME-x11 = zint-gui-${V} +REVISION = 0 SHARED_LIBS += QZint 1.0 # 2.6 SHARED_LIBS += zint 1.0 # 2.6 Index: patches/patch-backend_render_c =================================================================== RCS file: patches/patch-backend_render_c diff -N patches/patch-backend_render_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-backend_render_c 31 Jan 2018 08:27:47 -0000 @@ -0,0 +1,47 @@ +$OpenBSD$ +Make EAN and UPC symbols resizable in glabels in accordance with EN 797:1996 +https://github.com/woo-j/zint/commit/3aeb1ea70a5f5b7c9a235ee29bdd708663f4d1f6 +Index: backend/render.c +--- backend/render.c.orig ++++ backend/render.c +@@ -267,27 +267,34 @@ int render_plot(struct zint_symbol *symbol, float widt + /* The X-dimension of UPC/EAN symbols is fixed at 0.330mm */ + /* The phrase before is questionable. It may scale in certain percentages (80% - 200%). + see https://internationalbarcodes.com/ean-13-specifications/ */ ++ // Can now cope with sizes between 80% and 200%, enforces correct aspect ratio + /* NOTE: This code will need adjustment before it correctly deals with composite symbols */ +- x_dimension = 0.330; +- width = 0.330 * GL_CONST * total_area_width_x; +- /* The height is also fixed */ ++ //x_dimension = 0.330; ++ if (x_dimension < 0.26) { ++ x_dimension = 0.26; ++ } ++ if (x_dimension > 0.66) { ++ x_dimension = 0.66; ++ } ++ width = x_dimension * GL_CONST * total_area_width_x; ++ + switch (upceanflag) { + case 6: + case 12: + case 13: + /* UPC-A, UPC-E and EAN-13 */ + /* Height of bars should be 22.85mm */ +- height = ((0.330 * ((2 * symbol->border_width) + text_offset + text_height)) + 22.85) * GL_CONST; ++ height = ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + (22.85 * (x_dimension / 0.33))) * GL_CONST; + break; + case 8: + /* EAN-8 */ + /* Height of bars should be 18.23mm */ +- height = ((0.330 * ((2 * symbol->border_width) + text_offset + text_height)) + 18.23) * GL_CONST; ++ height = ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + (18.23 * (x_dimension / 0.33))) * GL_CONST; + break; + default: + /* EAN-2 and EAN-5 */ + /* Height of bars should be 21.10mm */ +- height = ((0.330 * ((2 * symbol->border_width) + text_offset + text_height)) + 21.10) * GL_CONST; ++ height = ((x_dimension * ((2 * symbol->border_width) + text_offset + text_height)) + (21.10 * (x_dimension / 0.33))) * GL_CONST; + } + } +
