Add Code One support

This commit is contained in:
hooper114 2009-07-04 20:48:42 +00:00
parent 7ad339627c
commit 2145673ce4
12 changed files with 1417 additions and 10 deletions

View File

@ -8,7 +8,7 @@ find_package(Qr)
set(zint_COMMON_SRCS common.c library.c ps.c large.c reedsol.c gs1.c svg.c) set(zint_COMMON_SRCS common.c library.c ps.c large.c reedsol.c gs1.c svg.c)
set(zint_ONEDIM_SRCS code.c code128.c 2of5.c upcean.c telepen.c medical.c plessey.c rss.c) set(zint_ONEDIM_SRCS code.c code128.c 2of5.c upcean.c telepen.c medical.c plessey.c rss.c)
set(zint_POSTAL_SRCS postal.c auspost.c imail.c) set(zint_POSTAL_SRCS postal.c auspost.c imail.c)
set(zint_TWODIM_SRCS code16k.c blockf.c dmatrix.c dm200.c pdf417.c qr.c micqr.c maxicode.c composite.c aztec.c code49.c) set(zint_TWODIM_SRCS code16k.c blockf.c dmatrix.c dm200.c pdf417.c qr.c micqr.c maxicode.c composite.c aztec.c code49.c code1.c)
set(zint_SRCS ${zint_COMMON_SRCS} ${zint_ONEDIM_SRCS} ${zint_POSTAL_SRCS} ${zint_TWODIM_SRCS} ) set(zint_SRCS ${zint_COMMON_SRCS} ${zint_ONEDIM_SRCS} ${zint_POSTAL_SRCS} ${zint_TWODIM_SRCS} )
if(PNG_FOUND) if(PNG_FOUND)

View File

@ -25,8 +25,8 @@ ONEDIM:= code.c code128.c 2of5.c upcean.c telepen.c medical.c plessey.c rss.c
ONEDIM_OBJ:= code.o code128.o 2of5.o upcean.o telepen.o medical.o plessey.o rss.o ONEDIM_OBJ:= code.o code128.o 2of5.o upcean.o telepen.o medical.o plessey.o rss.o
POSTAL:= postal.c auspost.c imail.c POSTAL:= postal.c auspost.c imail.c
POSTAL_OBJ:= postal.o auspost.o imail.o POSTAL_OBJ:= postal.o auspost.o imail.o
TWODIM:= code16k.c blockf.c dmatrix.c dm200.c pdf417.c qr.c maxicode.c composite.c aztec.c micqr.c code49.c TWODIM:= code16k.c blockf.c dmatrix.c dm200.c pdf417.c qr.c maxicode.c composite.c aztec.c micqr.c code49.c code1.c
TWODIM_OBJ:= code16k.o blockf.o dmatrix.o dm200.o pdf417.o qr.o maxicode.o composite.o aztec.o micqr.o code49.o TWODIM_OBJ:= code16k.o blockf.o dmatrix.o dm200.o pdf417.o qr.o maxicode.o composite.o aztec.o micqr.o code49.o code1.o
LIBS:= `libpng12-config --I_opts --L_opts --ldflags` -lz -lm LIBS:= `libpng12-config --I_opts --L_opts --ldflags` -lz -lm
ifeq ($(NO_QR),true) ifeq ($(NO_QR),true)
@ -36,7 +36,7 @@ DEFINES:=
LIBS+= -lqrencode LIBS+= -lqrencode
endif endif
libzint: code.c code128.c 2of5.c upcean.c medical.c telepen.c plessey.c postal.c auspost.c imail.c code16k.c dmatrix.c dm200.c reedsol.c pdf417.c maxicode.c rss.c common.c png.c library.c ps.c qr.c large.c composite.c aztec.c blockf.c micqr.c gs1.c svg.c code49.c libzint: code.c code128.c 2of5.c upcean.c medical.c telepen.c plessey.c postal.c auspost.c imail.c code16k.c dmatrix.c dm200.c reedsol.c pdf417.c maxicode.c rss.c common.c png.c library.c ps.c qr.c large.c composite.c aztec.c blockf.c micqr.c gs1.c svg.c code49.c code1.c
$(CC) -Wall -fPIC $(CFLAGS) $(ZINT_VERSION) -c $(ONEDIM) $(CC) -Wall -fPIC $(CFLAGS) $(ZINT_VERSION) -c $(ONEDIM)
$(CC) -Wall -fPIC $(CFLAGS) $(ZINT_VERSION) -c $(POSTAL) $(CC) -Wall -fPIC $(CFLAGS) $(ZINT_VERSION) -c $(POSTAL)
$(CC) -Wall -fPIC $(DEFINES) $(CFLAGS) $(ZINT_VERSION) -c $(TWODIM) $(CC) -Wall -fPIC $(DEFINES) $(CFLAGS) $(ZINT_VERSION) -c $(TWODIM)

1316
backend/code1.c Normal file

File diff suppressed because it is too large Load Diff

61
backend/code1.h Normal file
View File

@ -0,0 +1,61 @@
/* code1.h - Lookup info for USS Code One */
/*
libzint - the open source barcode library
Copyright (C) 2009 Robin Stuart <robin@zint.org.uk>
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
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
static int c40_shift[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 };
static int c40_value[] = {
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
3,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,4,5,6,7,8,9,10,11,12,13,
15,16,17,18,19,20,21,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,
22,23,24,25,26,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 };
static int text_shift[] = {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2, 2, 2, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3 };
static int text_value[] = {
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
3,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,4,5,6,7,8,9,10,11,12,13,
15,16,17,18,19,20,21,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,
22,23,24,25,26,0,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,27,28,29,30,31 };
static int c1_height[] = { 16, 22, 28, 40, 52, 70, 104, 148 };
static int c1_width[] = { 18, 22, 32, 42, 54, 76, 98, 134 };
static int c1_data_length[] = { 10, 19, 44, 91, 182, 370, 732, 1480 };
static int c1_ecc_length[] = { 10, 16, 26, 44, 70, 140, 280, 560 };
static int c1_blocks[] = { 1, 1, 1, 1, 1, 2, 4, 8 };
static int c1_data_blocks[] = { 10, 19, 44, 91, 182, 185, 183, 185 };
static int c1_ecc_blocks[] = { 10, 16, 26, 44, 70, 70, 70, 70 };
static int c1_grid_width[] = { 4, 5, 7, 9, 12, 17, 22, 30 };
static int c1_grid_height[] = { 5, 7, 10, 15, 21, 30, 46, 68 };
#define C1_ASCII 1
#define C1_C40 2
#define C1_DECIMAL 3
#define C1_TEXT 4
#define C1_EDI 5
#define C1_BYTE 6

View File

@ -259,3 +259,24 @@ int roundup(float input)
return integer_part; return integer_part;
} }
int istwodigits(unsigned char source[], int position)
{
if((source[position] >= '0') && (source[position] <= '9')) {
if((source[position + 1] >= '0') && (source[position + 1] <= '9')) {
return 1;
}
}
return 0;
}
float froundup(float input)
{
float fraction, output = 0.0;
fraction = input - (int)input;
if(fraction > 0.01) { output = (input - fraction) + 1.0; } else { output = input; }
return output;
}

View File

@ -58,6 +58,8 @@ extern int roundup(float input);
extern int module_is_set(struct zint_symbol *symbol, int y_coord, int x_coord); extern int module_is_set(struct zint_symbol *symbol, int y_coord, int x_coord);
extern void set_module(struct zint_symbol *symbol, int y_coord, int x_coord); extern void set_module(struct zint_symbol *symbol, int y_coord, int x_coord);
extern void unset_module(struct zint_symbol *symbol, int y_coord, int x_coord); extern void unset_module(struct zint_symbol *symbol, int y_coord, int x_coord);
extern int istwodigits(unsigned char source[], int position);
extern float froundup(float input);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */

View File

@ -125,6 +125,7 @@ extern int korea_post(struct zint_symbol *symbol, unsigned char source[]); /* Ko
extern int japan_post(struct zint_symbol *symbol, unsigned char source[]); /* Japanese Post */ extern int japan_post(struct zint_symbol *symbol, unsigned char source[]); /* Japanese Post */
extern int code_49(struct zint_symbol *symbol, unsigned char source[]); /* Code 49 */ extern int code_49(struct zint_symbol *symbol, unsigned char source[]); /* Code 49 */
extern int channel_code(struct zint_symbol *symbol, unsigned char source[]); /* Channel Code */ extern int channel_code(struct zint_symbol *symbol, unsigned char source[]); /* Channel Code */
extern int code_one(struct zint_symbol *symbol, unsigned char source[]); /* Code One */
#ifndef NO_PNG #ifndef NO_PNG
int png_handle(struct zint_symbol *symbol, int rotate_angle); int png_handle(struct zint_symbol *symbol, int rotate_angle);
@ -438,7 +439,7 @@ int ZBarcode_Encode(struct zint_symbol *symbol, unsigned char *source)
if(symbol->symbology == 111) { symbol->symbology = BARCODE_HIBC_BLOCKF; } if(symbol->symbology == 111) { symbol->symbology = BARCODE_HIBC_BLOCKF; }
if((symbol->symbology >= 112) && (symbol->symbology <= 127)) { strcpy(symbol->errtxt, "Symbology out of range, using Code 128"); symbol->symbology = BARCODE_CODE128; error_number = WARN_INVALID_OPTION; } if((symbol->symbology >= 112) && (symbol->symbology <= 127)) { strcpy(symbol->errtxt, "Symbology out of range, using Code 128"); symbol->symbology = BARCODE_CODE128; error_number = WARN_INVALID_OPTION; }
/* Everything from 128 up is Zint-specific */ /* Everything from 128 up is Zint-specific */
if(symbol->symbology >= 141) { strcpy(symbol->errtxt, "Symbology out of range, using Code 128"); symbol->symbology = BARCODE_CODE128; error_number = WARN_INVALID_OPTION; } if(symbol->symbology >= 142) { strcpy(symbol->errtxt, "Symbology out of range, using Code 128"); symbol->symbology = BARCODE_CODE128; error_number = WARN_INVALID_OPTION; }
if(error_number > 4) { if(error_number > 4) {
error_tag(symbol->errtxt, error_number); error_tag(symbol->errtxt, error_number);
@ -575,6 +576,7 @@ int ZBarcode_Encode(struct zint_symbol *symbol, unsigned char *source)
case BARCODE_JAPANPOST: error_number = japan_post(symbol, preprocessed); break; case BARCODE_JAPANPOST: error_number = japan_post(symbol, preprocessed); break;
case BARCODE_CODE49: error_number = code_49(symbol, preprocessed); break; case BARCODE_CODE49: error_number = code_49(symbol, preprocessed); break;
case BARCODE_CHANNEL: error_number = channel_code(symbol, preprocessed); break; case BARCODE_CHANNEL: error_number = channel_code(symbol, preprocessed); break;
case BARCODE_CODEONE: error_number = code_one(symbol, preprocessed); break;
} }
if((symbol->symbology == BARCODE_CODE128) || (symbol->symbology == BARCODE_CODE128B)) { if((symbol->symbology == BARCODE_CODE128) || (symbol->symbology == BARCODE_CODE128B)) {

View File

@ -138,6 +138,7 @@ struct zint_symbol {
#define BARCODE_RSS14_OMNI_CC 138 #define BARCODE_RSS14_OMNI_CC 138
#define BARCODE_RSS_EXPSTACK_CC 139 #define BARCODE_RSS_EXPSTACK_CC 139
#define BARCODE_CHANNEL 140 #define BARCODE_CHANNEL 140
#define BARCODE_CODEONE 141
#define BARCODE_NO_ASCII 1 #define BARCODE_NO_ASCII 1
#define BARCODE_BIND 2 #define BARCODE_BIND 2

View File

@ -94,6 +94,7 @@ SOURCES += ../backend/2of5.c \
../backend/upcean.c \ ../backend/upcean.c \
../backend/qr.c \ ../backend/qr.c \
../backend/dllversion.c \ ../backend/dllversion.c \
../backend/code1.c \
qzint.cpp qzint.cpp
VERSION = 2.1.3 VERSION = 2.1.3

View File

@ -291,6 +291,7 @@ void QZint::render(QPainter & painter, const QRectF & paintRect, AspectRatioMode
painter.save(); painter.save();
painter.setClipRect(paintRect,Qt::IntersectClip); painter.setClipRect(paintRect,Qt::IntersectClip);
painter.setRenderHint(QPainter::Antialiasing);
qreal xtr=paintRect.x(); qreal xtr=paintRect.x();
qreal ytr=paintRect.y(); qreal ytr=paintRect.y();

View File

@ -36,6 +36,8 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl)
"Aztec Code", "Aztec Code",
"Aztec Runes", "Aztec Runes",
"Channel Code", "Channel Code",
"Codabar",
"Codablock-F",
"Code 11", "Code 11",
"Code 128", "Code 128",
"Code 16k", "Code 16k",
@ -49,8 +51,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl)
"Code 39 Extended", "Code 39 Extended",
"Code 49", "Code 49",
"Code 93", "Code 93",
"Codabar", "Code One",
"Codablock-F",
"Databar", "Databar",
"Databar Expanded", "Databar Expanded",
"Databar Expanded Stacked", "Databar Expanded Stacked",
@ -103,7 +104,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags fl)
bstyle->addItem(metaObject()->enumerator(0).key(i)); bstyle->addItem(metaObject()->enumerator(0).key(i));
bstyle->setItemText(i,bstyle_text[i]); bstyle->setItemText(i,bstyle_text[i]);
} }
bstyle->setCurrentIndex(8); bstyle->setCurrentIndex(10);
change_options(); change_options();
update_preview(); update_preview();
view->scene()->addItem(&m_bc); view->scene()->addItem(&m_bc);

View File

@ -45,6 +45,8 @@ public:
AZTEC =92, AZTEC =92,
AZRUNE =128, AZRUNE =128,
CHANNEL =140, CHANNEL =140,
CODABAR =18,
CODABLOCKF =74,
CODE11 =1, CODE11 =1,
CODE128 =20, CODE128 =20,
CODE16K =23, CODE16K =23,
@ -58,8 +60,7 @@ public:
EXCODE39 =9, EXCODE39 =9,
CODE49 =24, CODE49 =24,
CODE93 =25, CODE93 =25,
CODABAR =18, CODE_ONE =141,
CODABLOCKF =74,
RSS14 =29, RSS14 =29,
RSS_EXP =31, RSS_EXP =31,
RSS_EXPSTACK =81, RSS_EXPSTACK =81,