29
29
30
30
namespace Picqer \Barcode ;
31
31
32
+ use Picqer \Barcode \Exceptions \BarcodeException ;
32
33
use Picqer \Barcode \Exceptions \InvalidCharacterException ;
34
+ use Picqer \Barcode \Exceptions \InvalidCheckDigitException ;
35
+ use Picqer \Barcode \Exceptions \InvalidFormatException ;
36
+ use Picqer \Barcode \Exceptions \InvalidLengthException ;
33
37
34
38
abstract class BarcodeGenerator
35
39
{
@@ -271,10 +275,6 @@ protected function barcode_code39($code, $extended = false, $checksum = false)
271
275
$ code = $ this ->encode_code39_ext ($ code );
272
276
}
273
277
274
- if ($ code === false ) {
275
- return false ;
276
- }
277
-
278
278
if ($ checksum ) {
279
279
// checksum
280
280
$ code .= $ this ->checksum_code39 ($ code );
@@ -289,8 +289,7 @@ protected function barcode_code39($code, $extended = false, $checksum = false)
289
289
for ($ i = 0 ; $ i < $ clen ; ++$ i ) {
290
290
$ char = $ code {$ i };
291
291
if ( ! isset ($ chr [$ char ])) {
292
- // invalid character
293
- return false ;
292
+ throw new InvalidCharacterException ('Char ' . $ char . ' is unsupported ' );
294
293
}
295
294
for ($ j = 0 ; $ j < 9 ; ++$ j ) {
296
295
if (($ j % 2 ) == 0 ) {
@@ -455,7 +454,7 @@ protected function encode_code39_ext($code)
455
454
$ clen = strlen ($ code );
456
455
for ($ i = 0 ; $ i < $ clen ; ++$ i ) {
457
456
if (ord ($ code {$ i }) > 127 ) {
458
- return false ;
457
+ throw new InvalidCharacterException ( ' Only supports till char 127 ' ) ;
459
458
}
460
459
$ code_ext .= $ encode [$ code {$ i }];
461
460
}
@@ -722,7 +721,7 @@ protected function barcode_code93($code)
722
721
$ clen = strlen($ code);
723
722
for ($ i = 0 ; $ i < $ clen ; ++$ i) {
724
723
if (ord($ code{$ i}) > 127 ) {
725
- return false ;
724
+ throw new InvalidCharacterException ( ' Only supports till char 127 ' ) ;
726
725
}
727
726
$ code_ext .= $ encode[$ code{$ i}];
728
727
}
@@ -736,8 +735,7 @@ protected function barcode_code93($code)
736
735
for ($ i = 0 ; $ i < $ clen ; ++$ i ) {
737
736
$ char = ord ($ code {$ i });
738
737
if ( ! isset ($ chr [$ char ])) {
739
- // invalid character
740
- return false ;
738
+ throw new InvalidCharacterException ('Char ' . $ char . ' is unsupported ' );
741
739
}
742
740
for ($ j = 0 ; $ j < 6 ; ++$ j ) {
743
741
if (($ j % 2 ) == 0 ) {
@@ -929,8 +927,7 @@ protected function barcode_msi($code, $checksum = false)
929
927
for ($ i = 0 ; $ i < $ clen ; ++$ i ) {
930
928
$ digit = $ code {$ i };
931
929
if ( ! isset ($ chr [$ digit ])) {
932
- // invalid character
933
- return false ;
930
+ throw new InvalidCharacterException ('Char ' . $ digit . ' is unsupported ' );
934
931
}
935
932
$ seq .= $ chr [$ digit ];
936
933
}
@@ -975,8 +972,7 @@ protected function barcode_s25($code, $checksum = false)
975
972
for ($ i = 0 ; $ i < $ clen ; ++$ i ) {
976
973
$ digit = $ code {$ i };
977
974
if ( ! isset ($ chr [$ digit ])) {
978
- // invalid character
979
- return false ;
975
+ throw new InvalidCharacterException ('Char ' . $ digit . ' is unsupported ' );
980
976
}
981
977
$ seq .= $ chr [$ digit ];
982
978
}
@@ -1059,9 +1055,8 @@ protected function barcode_i25($code, $checksum = false)
1059
1055
for ($ i = 0 ; $ i < $ clen ; $ i = ($ i + 2 )) {
1060
1056
$ char_bar = $ code {$ i };
1061
1057
$ char_space = $ code {$ i + 1 };
1062
- if (( ! isset ($ chr [$ char_bar ])) OR ( ! isset ($ chr [$ char_space ]))) {
1063
- // invalid character
1064
- return false ;
1058
+ if ( ! isset ($ chr [$ char_bar ]) || ! isset ($ chr [$ char_space ])) {
1059
+ throw new InvalidCharacterException ();
1065
1060
}
1066
1061
// create a bar-space sequence
1067
1062
$ seq = '' ;
@@ -1233,7 +1228,7 @@ protected function barcode_c128($code, $type = '')
1233
1228
} elseif (($ char_id >= 0 ) AND ($ char_id <= 95 )) {
1234
1229
$ code_data [] = strpos ($ keys_a , $ char );
1235
1230
} else {
1236
- return false ;
1231
+ throw new InvalidCharacterException ( ' Char ' . $ char . ' is unsupported ' ) ;
1237
1232
}
1238
1233
}
1239
1234
break ;
@@ -1248,7 +1243,7 @@ protected function barcode_c128($code, $type = '')
1248
1243
} elseif (($char_id >= 32) AND ($char_id <= 127)) {
1249
1244
$code_data[] = strpos($keys_b, $char);
1250
1245
} else {
1251
- return false ;
1246
+ throw new InvalidCharacterException( 'Char ' . $ char . ' is unsupported ' ) ;
1252
1247
}
1253
1248
}
1254
1249
break ;
@@ -1261,15 +1256,14 @@ protected function barcode_c128($code, $type = '')
1261
1256
--$ len ;
1262
1257
}
1263
1258
if (($ len % 2 ) != 0 ) {
1264
- // the length must be even
1265
- return false ;
1259
+ throw new InvalidLengthException ('Length must be even ' );
1266
1260
}
1267
1261
for ($ i = 0 ; $ i < $ len ; $ i += 2 ) {
1268
1262
$ chrnum = $ code {$ i } . $ code {$ i + 1 };
1269
1263
if (preg_match ('/([0-9]{2})/ ' , $ chrnum ) > 0 ) {
1270
1264
$ code_data [] = intval ($ chrnum );
1271
1265
} else {
1272
- return false ;
1266
+ throw new InvalidCharacterException () ;
1273
1267
}
1274
1268
}
1275
1269
break ;
@@ -1509,8 +1503,7 @@ protected function barcode_eanupc($code, $len = 13)
1509
1503
// add check digit
1510
1504
$ code .= $ r ;
1511
1505
} elseif ($ r !== intval ($ code {$ data_len })) {
1512
- // wrong checkdigit
1513
- return false;
1506
+ throw new InvalidCheckDigitException ();
1514
1507
}
1515
1508
if ($ len == 12 ) {
1516
1509
// UPC-A
@@ -1688,7 +1681,7 @@ protected function barcode_eanext($code, $len = 5)
1688
1681
$ r = (3 * ($ code [0 ] + $ code [2 ] + $ code [4 ])) + (9 * ($ code [1 ] + $ code [3 ]));
1689
1682
$ r %= 10 ;
1690
1683
} else {
1691
- return false ;
1684
+ throw new InvalidCheckDigitException () ;
1692
1685
}
1693
1686
//Convert digits to bars
1694
1687
$ codes = array (
@@ -2021,7 +2014,7 @@ protected function barcode_codabar($code)
2021
2014
$ len = strlen ($ code );
2022
2015
for ($ i = 0 ; $ i < $ len ; ++$ i ) {
2023
2016
if ( ! isset ($ chr [$ code {$ i }])) {
2024
- return false ;
2017
+ throw new InvalidCharacterException ( ' Char ' . $ code { $ i } . ' is unsupported ' ) ;
2025
2018
}
2026
2019
$ seq = $ chr [$ code {$ i }];
2027
2020
for ($ j = 0 ; $ j < 8 ; ++$ j ) {
@@ -2115,7 +2108,7 @@ protected function barcode_code11($code)
2115
2108
$ len += 3 ;
2116
2109
for ($ i = 0 ; $ i < $ len ; ++$ i ) {
2117
2110
if ( ! isset ($ chr [$ code {$ i }])) {
2118
- return false ;
2111
+ throw new InvalidCharacterException ( ' Char ' . $ code { $ i } . ' is unsupported ' ) ;
2119
2112
}
2120
2113
$ seq = $ chr [$ code {$ i }];
2121
2114
for ($ j = 0 ; $ j < 6 ; ++$ j ) {
@@ -2549,7 +2542,7 @@ protected function barcode_imb($code)
2549
2542
break ;
2550
2543
}
2551
2544
default : {
2552
- return false ;
2545
+ throw new BarcodeException('Routing code unknown') ;
2553
2546
break ;
2554
2547
}
2555
2548
}
@@ -2647,7 +2640,7 @@ protected function barcode_imb($code)
2647
2640
protected function barcode_imb_pre ($ code )
2648
2641
{
2649
2642
if ( ! preg_match ('/^[fadtFADT]{65}$/ ' , $ code ) == 1 ) {
2650
- return false ;
2643
+ throw new InvalidFormatException () ;
2651
2644
}
2652
2645
$ characters = str_split (strtolower ($ code ), 1 );
2653
2646
// build bars
0 commit comments