source-class-Com.Tecnick.Barcode.Type.Linear.ImbPre

It appears that you are using AdBlocking software. The cost of running this website is covered by advertisements. If you like it please feel free to a small amount of money to secure the future of this website.
Overview

Classes

Exceptions

 1: <?php
 2: /**
 3:  * ImbPre.php
 4:  *
 5:  * @since       2015-02-21
 6:  * @category    Library
 7:  * @package     Barcode
 8:  * @author      Nicola Asuni <info@tecnick.com>
 9:  * @copyright   2010-2016 Nicola Asuni - Tecnick.com LTD
10:  * @license     http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
11:  * @link        https://github.com/tecnickcom/tc-lib-barcode
12:  *
13:  * This file is part of tc-lib-barcode software library.
14:  */
15: 
16: namespace Com\Tecnick\Barcode\Type\Linear;
17: 
18: use \Com\Tecnick\Barcode\Exception as BarcodeException;
19: 
20: /**
21:  * Com\Tecnick\Barcode\Type\Linear\ImbPre;
22:  *
23:  * ImbPre Barcode type class
24:  * IMB - Intelligent Mail Barcode pre-processed (USPS-B-3200)
25:  *
26:  * @since       2015-02-21
27:  * @category    Library
28:  * @package     Barcode
29:  * @author      Nicola Asuni <info@tecnick.com>
30:  * @copyright   2010-2016 Nicola Asuni - Tecnick.com LTD
31:  * @license     http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
32:  * @link        https://github.com/tecnickcom/tc-lib-barcode
33:  */
34: class ImbPre extends \Com\Tecnick\Barcode\Type\Linear
35: {
36:     /**
37:      * Barcode format
38:      *
39:      * @var string
40:      */
41:     protected $format = 'IMBPRE';
42:     
43:     /**
44:      * Get the bars array
45:      *
46:      * @throws BarcodeException in case of error
47:      */
48:     protected function setBars()
49:     {
50:         $code = strtolower($this->code);
51:         if (preg_match('/^[fadt]{65}$/', $code) != 1) {
52:             throw new BarcodeException('Invalid character sequence');
53:         }
54:         $this->ncols = 0;
55:         $this->nrows = 3;
56:         $this->bars = array();
57:         for ($pos = 0; $pos < 65; ++$pos) {
58:             switch ($code[$pos]) {
59:                 case 'f':
60:                     // full bar
61:                     $this->bars[] = array($this->ncols, 0, 1, 3);
62:                     break;
63:                 case 'a':
64:                     // ascender
65:                     $this->bars[] = array($this->ncols, 0, 1, 2);
66:                     break;
67:                 case 'd':
68:                     // descender
69:                     $this->bars[] = array($this->ncols, 1, 1, 2);
70:                     break;
71:                 case 't':
72:                     // tracker (short)
73:                     $this->bars[] = array($this->ncols, 1, 1, 1);
74:                     break;
75:             }
76:             $this->ncols += 2;
77:         }
78:         --$this->ncols;
79:     }
80: }
81: 
 

© 2004-2017 – Nicola Asuni - Tecnick.com - All rights reserved.
about - disclaimer - privacy