diff --git a/CMakeLists.txt b/CMakeLists.txt index f56caeba..6a420c07 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,8 +9,8 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) #comment or remove the above line before release set (ZINT_VERSION_MAJOR 2) -set (ZINT_VERSION_MINOR 2) -set (ZINT_VERSION_RELEASE 2) +set (ZINT_VERSION_MINOR 3) +set (ZINT_VERSION_RELEASE 0) set (ZINT_VERSION "${ZINT_VERSION_MAJOR}.${ZINT_VERSION_MINOR}.${ZINT_VERSION_RELEASE}" ) add_definitions (-DZINT_VERSION=\"${ZINT_VERSION}\" -Wall) diff --git a/backend/DEVELOPER b/backend/DEVELOPER index d39a694f..30eb52e2 100644 --- a/backend/DEVELOPER +++ b/backend/DEVELOPER @@ -69,6 +69,9 @@ dmatrix.c: Data Matrix ECC 100 Data Matrix ECC 140 +gridmtx.c: + Grid Matrix + imail.c: USPS OneCode (Intelligent Mail) @@ -81,9 +84,6 @@ medical.c: Codabar Code 32 -micqr.c: - Micro QR Code - pdf417.c: PDF417 Truncated PDF417 @@ -105,7 +105,8 @@ postal.c: Japanese Postal Code qr.c: - QR Code (libqrencode) + QR Code + Micro QR Code rss.c: GS1 DataBar (DataBar-14) (RSS-14) diff --git a/backend/Makefile b/backend/Makefile index c348a003..1663a7d3 100644 --- a/backend/Makefile +++ b/backend/Makefile @@ -6,7 +6,7 @@ # make clean cleans up a previous compilation and any object or editor files # -ZINT_VERSION:=-DZINT_VERSION=\"2.2.2\" +ZINT_VERSION:=-DZINT_VERSION=\"2.3.0\" CC := gcc @@ -33,7 +33,7 @@ libzint: code.c code128.c 2of5.c upcean.c medical.c telepen.c plessey.c postal.c $(CC) -Wall -fPIC $(CFLAGS) $(ZINT_VERSION) -c $(POSTAL) $(CC) -Wall -fPIC $(CFLAGS) $(ZINT_VERSION) -c $(TWODIM) $(CC) -Wall -fPIC $(CFLAGS) $(ZINT_VERSION) -c $(COMMON) - $(CC) $(CFLAGS) $(ZINT_VERSION) -shared -Wl,-soname,libzint.so -o libzint.so.2.2.2 $(INCLUDE) $(COMMON_OBJ) $(ONEDIM_OBJ) $(TWODIM_OBJ) $(POSTAL_OBJ) $(LIBS) + $(CC) $(CFLAGS) $(ZINT_VERSION) -shared -Wl,-soname,libzint.so -o libzint.so.2.3.0 $(INCLUDE) $(COMMON_OBJ) $(ONEDIM_OBJ) $(TWODIM_OBJ) $(POSTAL_OBJ) $(LIBS) ln -s libzint.so.* libzint.so .PHONY: install uninstall clean dist diff --git a/backend/Makefile.mingw b/backend/Makefile.mingw index acbff5e9..851ceeb9 100644 --- a/backend/Makefile.mingw +++ b/backend/Makefile.mingw @@ -7,7 +7,7 @@ # make clean cleans up a previous compilation and any object or editor files # -ZINT_VERSION:=-DZINT_VERSION=\"2.2.2\" +ZINT_VERSION:=-DZINT_VERSION=\"2.3.0\" CC:= gcc diff --git a/backend/upcean.c b/backend/upcean.c index 75cfeb71..36f9c096 100644 --- a/backend/upcean.c +++ b/backend/upcean.c @@ -596,7 +596,7 @@ int eanx(struct zint_symbol *symbol, unsigned char source[], int src_len) } if(symbol->symbology != BARCODE_ISBNX) { /* ISBN has it's own checking routine */ - error_number = is_sane(NEON, source, src_len); + error_number = is_sane("0123456789+", source, src_len); if(error_number == ERROR_INVALID_DATA) { strcpy(symbol->errtxt, "Invalid characters in data"); return error_number; diff --git a/backend_qt4/qzint.cpp b/backend_qt4/qzint.cpp index 93798216..46af1069 100644 --- a/backend_qt4/qzint.cpp +++ b/backend_qt4/qzint.cpp @@ -70,7 +70,7 @@ void QZint::encode() } else { m_zintSymbol->option_3 = m_option_3; } - QByteArray bstr=m_text.toAscii(); + QByteArray bstr=m_text.toUtf8(); QByteArray pstr=m_primaryMessage.left(99).toAscii(); strcpy(m_zintSymbol->primary,pstr.data()); int error = ZBarcode_Encode(m_zintSymbol, (unsigned char*)bstr.data(), bstr.length()); @@ -265,7 +265,7 @@ bool QZint::save_to_file(QString filename) m_zintSymbol->option_3 = m_option_3; } m_zintSymbol->scale=m_scale; - QByteArray bstr=m_text.toAscii(); + QByteArray bstr=m_text.toUtf8(); QByteArray pstr=m_primaryMessage.left(99).toAscii(); QByteArray fstr=filename.left(255).toAscii(); strcpy(m_zintSymbol->primary,pstr.data()); diff --git a/frontend/Makefile b/frontend/Makefile index 22b327b6..d5164a46 100644 --- a/frontend/Makefile +++ b/frontend/Makefile @@ -6,7 +6,7 @@ # make clean cleans up a previous compilation and any object or editor files # -ZINT_VERSION:=-DZINT_VERSION=\"2.2.2\" +ZINT_VERSION:=-DZINT_VERSION=\"2.3.0\" CC := gcc INCLUDE := -I/usr/local/include diff --git a/frontend/Makefile.mingw b/frontend/Makefile.mingw index 6367a2a8..051fa8ca 100644 --- a/frontend/Makefile.mingw +++ b/frontend/Makefile.mingw @@ -6,7 +6,7 @@ # make clean cleans up a previous compilation and any object or editor files # -ZINT_VERSION:=-DZINT_VERSION=\"2.2.2\" +ZINT_VERSION:=-DZINT_VERSION=\"2.3.0\" CC := gcc CFLAGS := -D_WIN32 -O2 -fms-extensions -mms-bitfields -fno-exceptions -fomit-frame-pointer -Wall diff --git a/frontend/test.sh b/frontend/test.sh index 917eb6ea..d91c782d 100755 --- a/frontend/test.sh +++ b/frontend/test.sh @@ -352,6 +352,10 @@ echo testing HIBC LIC Codablock F zint -o bar110.png -b 110 --border=10 -d "A99912345/9901510X3" zint -o bar110.eps -b 110 --border=10 -d "A99912345/9901510X3" zint -o bar110.svg -b 110 --border=10 -d "A99912345/9901510X3" +echo testing HIBC LIC Aztec Code +zint -o bar112.png -b 112 --border=10 -d "A99912345/9901510X3" +zint -o bar112.eps -b 112 --border=10 -d "A99912345/9901510X3" +zint -o bar112.svg -b 112 --border=10 -d "A99912345/9901510X3" echo testing Aztec Runes zint -o bar128.png -b 128 --border=10 -d 125 zint -o bar128.eps -b 128 --border=10 -d 125 @@ -416,6 +420,10 @@ echo testing Code One zint -o bar141.png -b 141 --border=10 -d "Demonstration Code One symbol generated by libzint" zint -o bar141.eps -b 141 --border=10 -d "Demonstration Code One symbol generated by libzint" zint -o bar141.svg -b 141 --border=10 -d "Demonstration Code One symbol generated by libzint" +echo testing Grid Matrix +zint -o bar142.png -b 142 --border=10 -d "Demonstration Grid Matrix generated by libzint" +zint -o bar142.eps -b 142 --border=10 -d "Demonstration Grid Matrix generated by libzint" +zint -o bar142.svg -b 142 --border=10 -d "Demonstration Grid Matrix generated by libzint" echo testing PNG rotation zint -o barrot0.png -b 130 --height=50 --border=10 --mode=1 --rotate=0 --primary=331234567890+01234 -d "[99]1234-abcd" zint -o barrot90.png -b 130 --height=50 --border=10 --mode=1 --rotate=90 --primary=331234567890+01234 -d "[99]1234-abcd" diff --git a/readme b/readme index 72856443..a9d5a161 100644 --- a/readme +++ b/readme @@ -1,4 +1,4 @@ -Zint and libzint 2.2.2 +Zint and libzint 2.3.0 ---------------------- Zint is a suite of programs to allow easy encoding of data in any of the wide range of public domain barcode standards and to allow integration of this capability into your own programs. This version @@ -12,24 +12,22 @@ Code 16k, PDF417, MicroPDF417, Two-Track Pharmacode, PostNet, PLANET, Australia RM4SCC, USPS OneCode, GS1 DataBar, DataBar-14, DataBar Limited, DataBar Extended, DataBar Stacked, Composite Symbology, Data Matrix, QR Code, Maxicode, Aztec Code, EAN-13, Codablock-F, Micro QR, Korea Post Barcode, HIBC Code 128, HIBC Code 39, HIBC Data Matrix, HIBC PDF417, HIBC MicroPDF417, -HIBC QR Code, HIBC Codablock-F, Japanese Postal Code, Code 49, Channel Code, Code One, FIM and -Flattermarken. +HIBC QR Code, HIBC Codablock-F, HIBC Aztec Code, Japanese Postal Code, Code 49, Channel Code, Code One, +Grid Matrix, FIM and Flattermarken. Full documentation is available at project website: http://www.zint.org.uk PROJECT STATUS -------------- -Contrary to previous thoughts this project is very much active again. This release signifies the -first step in a complete re-think of the API. If you have written applications which take advantage -of the Zint API then please make appropriate alterations. Details are given on the news page of the -project website. +This release features a complete rebuild of QR Code and Micro QR Code functionality which now: + +* Automatically detects and adjusts to Japanese characters +* Supports GS1 encoding +* Does not require the qrencode library. + +Also new in this release is Grid Matrix support which similarly supports Chinese character encoding. -Work is now continuing on making the library more useful for those who want to encode characters -beyond the ASCII set. Also in the plan is to bring QR Code encoding within the library and thereby -remove the dependence on libqrencode for this. Once this is achieved then Grid Matrix will be the -next symbology to be added. By this time I hope to have achived a much more smooth mechanism for -encoding both Japanese and Chinese character sets. COMPILING THE CODE ------------------ @@ -38,17 +36,11 @@ want and what platform you are targeting. Zint has been tested on both 32 and 64 It does not use any unusual memory manipulation and so should easily port to a wide range of hardware. GNU/Linux and OpenBSD: -To compile the Zint library for you will need libpng and libz pre-installed. You can compile -with or without QR Code support. If you want QR Code support you will need qrencode installed. Then: +To compile the Zint library for you will need libpng and libz pre-installed. Then: make make install -If you do not want QR Code support: - - make zint_noqr - make install - For some distributions it may be necessary to run ldconfig @@ -78,8 +70,10 @@ the MinGW makefiles for the default Linux ones. For compiling with MS Visual Stu libzint.vcproj project file in the win32 folder and compile in the usual way. Mac OSX: -To compile on Macintosh you will need Qt4 and cmake. Follow the steps for the GUI interface -as given in the Linux section above. +HELP NEEDED! It _is_ possible to compile and run Zint on the OSX platform. Unfortunately the +developers of the Zint package do not have access to OSX. If you have any success with comiling +Zint on OSX then please send us a description of how you did it so that we can put that +information here! THINGS TO DO