Commit Graph

66 Commits

Author SHA1 Message Date
gitlost
c8033695d9 - API: add new zint_symbol dpmm field for output resolution (BMP/
EMF/PCX/PNG/TIF only, i.e. excluding EPS, GIF & SVG)
- Add support for specifying scale by X-dimension and resolution
  with new option `--scalexdimdp` for CLI/Tcl & new API function
  `ZBarcode_Scale_From_XdimDp()` (+ `ZBarcode_XdimDp_From_Scale()`
  & `ZBarcode_Default_Xdim()`) and new GUI popup; manual: document
- BMP/EMF/PCX/PNG/TIF: use new `dpmm` resolution field (for EMF
  following Inkscape)
- backend_qt: add `dpmm()`, `vectorWidth()`, `vectorHeight()`,
  `noPng()`, `getVersion()`, `takesGS1AIData()`, & `XdimDp` stuff
  incl. new `QZintXdimDp` struct for passing around scale vars &
  use in `getAsCLI()`; add comments
- Raise `scale` limit to 200 (from 100) to allow for large dpmm
- output: create directories & subdirectories as necessary for
  output path using new function `out_fopen()` and use in BMP/EMF/
  EPS/GIF/PCX/PNG/SVG/TIF
- DPLEIT/DPIDENT: format HRT according to (incomplete)
  documentation, and set default height to 72X (from 50X)
- CODE128B renamed to CODE128AB as can use subsets A and/or B
- CODABAR: fix minimum height calc
- EMF: fix indexing of handles (zero-based not 1-based)
- GUI: fix symbology zap (previous technique of clearing and
  re-loading settings without doing a sync no longer works);
  fix UPCEAN guard descent enable
- MAILMARK: better error message if input < 14 characters
- GUI: add "Default" button for DAFT tracker ratio & enable/disable
  various default buttons; use new `takesGS1AIData()` to
  enable/disable GS1-specific checkboxes
- CLI: use new `validate_float()` to parse float options (7
  significant digits allowed only, no scientific notation)
- DATAMATRIX/GRIDMATRIX/PDF417/QR/ULTRA: micro-optimize structapp
  ID parse
- library/CLI: fiddle with static asserts (make CHAR_BIT sensitive,
  supposedly)
- win32/README: update building libpng (assembly removed)
- README.linux: document incompatibility of Qt6 >= 6.3
- manual: expand Barcode Studio waffle
- test suite: change range separator to hyphen and allow multiple
  excludes
2022-12-02 21:39:01 +00:00
gitlost
930f458979 backend: define z_alloca() and use for both Unix and Windows;
replace double-slash comments with old-skool slash asterisk ones;
  define uint16_t etc for Windows ourselves and remove ms_stdint.h &
  stdint_msvc.h as no longer used;
  (backend (excepting test suite) now C89 compatible)
LICENSE: move from backend to root and move COPYING to frontend, with
  copies in frontend_qt & backend_qt, so in where it applies;
  add LICENSE section from manual to root README
2022-07-14 16:01:30 +01:00
gitlost
fab7435fac Performance improvements for linear encoding and raster output
- use fixed-length string tables (mostly) instead of (char *) pointer ones
   (saves ~40K)
 - re-use C128Table for CODABLOCKF and CODE16K
   (required removal of Stop character and extra CODE16K-only entry)
 - use pointer to destination and copy (memcpy/strcpy(), bin_append_posn())
   instead of concatenating (strcat()) (mostly)
 - replace last remaining bin_append()s with bin_append_posn();
   bin_append() removed
 - add length arg to toupper() and expand() (avoids strlen())
 - change is_sane() to use table-based flags (avoids an iteration)
 - rename lookup() to is_sane_lookup() and change to check and return posns
   and use in pointer to destination loops (avoids strcat()s)
 - remove special case PHARMA in expand() (dealt with in pharma())
 - make #define SILVER/CALCIUM/TECHNETIUM/KRSET etc static strings
 - replace strchr() -> posn()
 - CODE128: populate destination once in checksum loop; re-use and export
   some more routines (c128_set_a/b/c(), c128_put_in_set()) for sharing;
   prefix defines (SHIFTA -> C128_SHIFTA etc) and existing exported routines
 - use factor XOR toggle trick in checksum calcs (avoids branch)
 - raster.c: fill out single 1-pixel row and copy using new draw_bar_line(),
   copy_bar_line() routines; similarly in buffer_plot compare previous line &
   copy if same (same technique as used to improve non-half-integer scaling,
   significant performance increase, (c) codemonkey82);
   also done for PNG (BMP/GIF/PCX/TIFF not done)
 - raster/vector/output.c: shorten "output_" prefix -> "out_";
   sync vector to other raster changes to try to keep source files similar
 - 2of5.c: prefix "c25_"
JAPANPOST: return error if input data truncated (backward incompatible)
DAFT: max chars 50 -> 100
common.c: istwodigit() -> is_twodigit()
common.c/emf.c/output.c: use some further stripf()s (MSVC6 float variations)
library.c: new check_output_args() helper
zint.h: add BARCODE_LAST marker and use in library.c
QRCODE: remove a NOLINT (requires clang-tidy-13), one remaining
CMake: separate no-optimize from ZINT_DEBUG into new ZINT_NOOPT option
2021-10-20 23:05:30 +01:00
gitlost
3388f98c00 vector: Add width to struct zint_vector_circle & use for MaxiCode bullseye
**Incompatible change**
2021-08-22 13:59:01 +01:00
gitlost
3f33ed3eb9 CMakeLists.txt: cmake min required 3.13 -> 3.5 using CMAKE_REQUIRED_LIBRARIES; add ZINT_COVERAGE option
bmp/emf/ps.c: allow for foreground colour in ULTRA
bmp/gif/pcx.c: allow for BARCODE_STDOUT (fflush/fclose)
emf.c: hexagon rotation field not used; dont't use float index in font loop; Windows stdout binary mode
png.c: remove unused 8-bit; simplify libpng error handling and fclose outfile on error
ps.c: fix buffer overflow on colour_to_pscolor() CMYK
tif.c: fix BLACKISZERO indexes
CODE39: simplify check digit setting
reedsol.c: rs_uint_init_gf() log/alog tables must be zeroed
ZBarcode_Encode: debug: fix access out-of-bounds on non-NUL-terminated source if length < 10
manual.txt/zint.h: document NUL-terminated strings
tests: cover further cases for output (bmp/emf/etc), eci/gb18030/gb2312/sjis, reedsol, AZTEC, CODE39
2021-07-26 15:29:05 +01:00
gitlost
4a8cac2a5a CODEONE/DATAMATRIX/MAILMARK/PLESSEY: fix some 32-bit/portability bugs
PLESSEY: add options NCR weighted mod-10, hide check digit(s) in HRT
test suite: now runnable under MSVC 2019, 2017, 2015, MinGW/MSYS
win32/README: update with MSVC 2019 and CMake instructions
2021-06-10 11:15:39 +01:00
gitlost
943ba79866 AZTEC: fix bit-stuffing; AZTECRUNE: fix >= 128; DATAMATRIX: eod shift -> 0 pad; Qt6 2020-10-26 12:21:43 +00:00
gitlost
36c19053d7 vector.c: string halign; POSTNET/PLANET: 1 module space; ZBarcode_Cap(); GUI settings 2020-09-30 12:19:12 +01:00
Robin Stuart
20f767c4b6 Force white squares (not same as bgcolour) in Ultracode 2020-08-12 12:19:26 +01:00
Robin Stuart
79aaa5304d Allow image rotation for SVG and EPS files 2020-08-05 21:23:11 +01:00
gitlost
736bc76f66 command line: allow data/input args anywhere on line; frontend tests 2020-08-04 22:22:26 +01:00
Harald Oehlmann
b78fa8cf2f - Compile-able with MS-VC6
- Compile-able with MS-VC2015+QT5.18
- transbarency in TCL backend
- correct TCL demo
- README changes
2020-08-04 15:49:25 +02:00
Robin Stuart
47cac63e7f Add alpha channel support and --nobackground option
Alpha channel for PNG and SVG and option to remove background from EMF
2020-08-02 22:26:39 +01:00
Robin Stuart
0d26948baa Merge branch Ultra 2020-04-06 17:05:22 +01:00
gitlost
5d60d67a84 emf free malloc bufs; tif don't free alloca bufs (Win); -Wextra; tests 2020-04-04 16:53:29 +01:00
gitlost
bca82ecc0d libzint.so: suppress exporting INTERNAL functions to the shared library; ZINT_TEST 2019-12-19 00:37:55 +00:00
Robin Stuart
d370f3c0c7 Ultra: Correct clock pattern generation, add work around to avoid negative UCC and output to colour SVG 2019-12-18 18:33:18 +00:00
gitlost
fed7378675 Handle UNICODE_MODE ECI conversion for reduced charset barcodes and QRCODE/MICROQR 2019-11-27 16:16:14 +00:00
Harald Oehlmann
23ec0d48fc Make compile with ms-vc6 (zint, tcl) and VS2015 (qzint) 2019-11-17 19:30:55 +01:00
Robin Stuart
fac9b94f1b Further refinement to SVG
More research revealed frasl entity should not be implemented, but apos should
Thanks to Ian Jeffray
2019-11-03 11:51:12 +00:00
Robin Stuart
0fe9051324 Improved HTML entity handling
Now handles quot and frasl as suggested by Ian Jeffray and also allocates memory properly, preventing SIGSEGV for Code 128 full of ampersands.
2019-10-30 08:40:26 +00:00
Robin Stuart
b1113db942 Make text elements compatable with HTML in SVG
Correctly encodes less-than, greater-than and ampersand.
Fixes #167 reported by Ian Jeffray
2019-10-16 18:42:22 +01:00
Harald Oehlmann
2fbbbeec12 2019-09-11 HaO Document svg_plot vector= null crash has ticket number #164
Start Version release notes.
2019-09-11 10:14:42 +02:00
Harald Oehlmann
4dfc090416 2019-09-11 HaO E-Mail Christian Schmitz 2019-09-10: svg_plot: check for null symbol->vector.
Reason is unknown.
2019-09-11 09:51:05 +02:00
Robin Stuart
30fcd7986c Plot vector graphics using linked list structure
Simplifies the implementation of individual vector graphic file formats
2018-06-10 09:16:18 +01:00
Robin Stuart
78d85bd72e Add font size option for SVG and EPS 2018-02-11 09:55:28 +00:00
Boris Zentner
31cc0ae78a Remove spaces before EOL 2017-10-25 17:23:57 +01:00
Rodrigo Torres
4963a772db Refactor 2017-09-11 19:21:33 +01:00
Robin Stuart
608b4b9134 Audit of error codes 2017-07-27 16:01:53 +01:00
Robin Stuart
19ba8a34c4 Update to version 2.6.0 and update copyright to 2017 2017-05-11 21:14:38 +01:00
Robin Stuart
eef59d150e Prevent control characters from corrupting SVG
Bug fix by Maikel Houthuijzen
2017-05-11 20:15:10 +01:00
Robin Stuart
d1e406b7d2 Add enhanced metafile format (EMF) support 2016-12-23 16:48:03 +00:00
Robin Stuart
5992bbf6e5 Malloc declaration needed for Visual Studio 2016-11-05 16:46:24 +00:00
Boris Zentner
b13645fd16 Remove non standard #include <malloc.h> 2016-10-30 20:00:09 +00:00
Robin Stuart
4561a66067 Add identifiers to error messages
To ease the debug process
2016-10-28 22:40:40 +01:00
Robin Stuart
54c0a858ea Don't include empty strings in output SVG 2016-10-27 13:47:32 +01:00
Robin Stuart
9eff5cc63a Allow adjustment of dot size when in dotty mode 2016-09-18 14:09:58 +01:00
Robin Stuart
16511da26d Improved rendering of seperator bars for Codablock-F 2016-09-12 21:47:40 +01:00
Robin Stuart
2c2200a7cb modifications for VS2015, some
additional static/const's and a few bugfixes for HanXin and DotStream.

Patch by Michael <virtual_worlds@gmx.de>
2016-09-05 22:06:50 +01:00
Robin Stuart
a7bcef4ef7 Fix various memory leaks
Bugfixes thanks to Alex Haley <ahaley42@users.sf.net>
2016-09-03 18:45:09 +01:00
Robin Stuart
3cf8a142b8 Bugfix: Ouput binding in raster images
Also: tidy up use of output_options
2016-08-26 15:13:40 +01:00
Robin Stuart
e39d2ff915 Add dot mode (experimental)
First step towards solution for ticket #29
2016-07-12 15:00:25 +01:00
Robin Stuart
caa4bb913f Don't add descriptor to EPS and SVG if text is supressed 2016-06-19 14:29:39 +01:00
Robin Stuart
d2774af120 Correctly format EAN and UPC without text
EAN and UPC should have a standard compliant format even without text
Fixes #27
2016-06-19 11:59:09 +01:00
Robin Stuart
f17f10fa7c Replace local concat() and roundup() with C library defaults
Patch by Oxy (Michael) <virtual_worlds@gmx.de>
Ref: https://sourceforge.net/p/zint/mailman/message/34896811/
2016-03-02 21:12:38 +00:00
Robin Stuart
660d8148bd Code format and audit, part 3
Update copyright info, remove unused code, etc.
2016-02-20 11:29:19 +00:00
Robin Stuart
2e59058615 Avoid possible confusion with Windows error code
Bugfix by Oxy Genic
Ref: https://sourceforge.net/p/zint/mailman/message/34857131/
2016-02-17 10:37:20 +00:00
oxygenic
1a7863520b license changed with permission of original copyright holders (see mailing list for details) 2013-05-16 19:26:38 +02:00
openapc
bf2dbe7494 code reworked 2012-12-29 19:37:03 +01:00
Robin Stuart
7da2041cfd More code cleanup
Patch 7 of 7 from "Ismael Luceno" <ismael.luceno@gmail.com>
2010-09-14 11:36:00 +01:00