]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - include/tcpdf/2dbarcodes.php
Release 6.5.0
[Github/sugarcrm.git] / include / tcpdf / 2dbarcodes.php
1 <?php
2
3 /*
4
5 Modification information for LGPL compliance
6
7 r56990 - 2010-06-16 13:05:36 -0700 (Wed, 16 Jun 2010) - kjing - snapshot "Mango" svn branch to a new one for GitHub sync
8
9 r56989 - 2010-06-16 13:01:33 -0700 (Wed, 16 Jun 2010) - kjing - defunt "Mango" svn dev branch before github cutover
10
11 r55980 - 2010-04-19 13:31:28 -0700 (Mon, 19 Apr 2010) - kjing - create Mango (6.1) based on windex
12
13 r51719 - 2009-10-22 10:18:00 -0700 (Thu, 22 Oct 2009) - mitani - Converted to Build 3  tags and updated the build system 
14
15 r51634 - 2009-10-19 13:32:22 -0700 (Mon, 19 Oct 2009) - mitani - Windex is the branch for Sugar Sales 1.0 development
16
17 r50375 - 2009-08-24 18:07:43 -0700 (Mon, 24 Aug 2009) - dwong - branch kobe2 from tokyo r50372
18
19 r46451 - 2009-04-23 16:57:40 -0700 (Thu, 23 Apr 2009) - jenny - tcpdf initial checkin.
20
21
22 */
23
24
25 //============================================================+
26 // File name   : 2dbarcodes.php
27 // Begin       : 2009-04-07
28 // Last Update : 2009-04-08
29 // Version     : 1.0.000
30 // License     : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
31 //      ----------------------------------------------------------------------------
32 //  Copyright (C) 2008-2009 Nicola Asuni - Tecnick.com S.r.l.
33 //      
34 //      This program is free software: you can redistribute it and/or modify
35 //      it under the terms of the GNU Lesser General Public License as published by
36 //      the Free Software Foundation, either version 2.1 of the License, or
37 //      (at your option) any later version.
38 //      
39 //      This program is distributed in the hope that it will be useful,
40 //      but WITHOUT ANY WARRANTY; without even the implied warranty of
41 //      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
42 //      GNU Lesser General Public License for more details.
43 //      
44 //      You should have received a copy of the GNU Lesser General Public License
45 //      along with this program.  If not, see <http://www.gnu.org/licenses/>.
46 //      
47 //      See LICENSE.TXT file for more information.
48 //  ----------------------------------------------------------------------------
49 //
50 // Description : PHP class to creates array representations for 
51 //               2D barcodes to be used with TCPDF.
52 //
53 // Author: Nicola Asuni
54 //
55 // (c) Copyright:
56 //               Nicola Asuni
57 //               Tecnick.com S.r.l.
58 //               Via della Pace, 11
59 //               09044 Quartucciu (CA)
60 //               ITALY
61 //               www.tecnick.com
62 //               info@tecnick.com
63 //============================================================+
64
65 /**
66  * PHP class to creates array representations for 2D barcodes to be used with TCPDF.
67  * @package com.tecnick.tcpdf
68  * @abstract Functions for generating string representation of 2D barcodes.
69  * @author Nicola Asuni
70  * @copyright 2008-2009 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
71  * @link http://www.tcpdf.org
72  * @license http://www.gnu.org/copyleft/lesser.html LGPL
73  * @version 1.0.000
74  */
75
76         /**
77         * PHP class to creates array representations for 2D barcodes to be used with TCPDF (http://www.tcpdf.org).<br>
78         * @name TCPDFBarcode
79         * @package com.tecnick.tcpdf
80         * @version 1.0.000
81         * @author Nicola Asuni
82         * @link http://www.tcpdf.org
83         * @license http://www.gnu.org/copyleft/lesser.html LGPL
84         */
85 class TCPDF2DBarcode {
86         
87         /**
88          * @var array representation of barcode.
89          * @access protected
90          */
91         protected $barcode_array;
92         
93         /**
94          * This is the class constructor. 
95          * Return an array representations for 2D barcodes:<ul>
96          * <li>$arrcode['code'] code to be printed on text label</li>
97          * <li>$arrcode['num_rows'] required number of rows</li>
98          * <li>$arrcode['num_cols'] required number of columns</li>
99          * <li>$arrcode['bcode'][$r][$c] value of the cell is $r row and $c column (0 = transparent, 1 = black)</li></ul>
100          * @param string $code code to print
101          * @param string $type type of barcode: <ul><li>TEST</li><li>...TO BE IMPLEMENTED</li></ul>
102          */
103         public function __construct($code, $type) {
104                 $this->setBarcode($code, $type);
105         }
106         
107         /** 
108          * Return an array representations of barcode.
109          * @return array
110          */
111         public function getBarcodeArray() {
112                 return $this->barcode_array;
113         }
114         
115         /** 
116          * Set the barcode.
117          * @param string $code code to print
118          * @param string $type type of barcode: <ul><li>TEST</li><li>...TO BE IMPLEMENTED</li></ul>
119          * @return array
120          */
121         public function setBarcode($code, $type) {
122                 $mode = explode(',', $type);
123                 switch (strtoupper($mode[0])) {
124                         case 'TEST': { // TEST MODE
125                                 $this->barcode_array['num_rows'] = 5;
126                                 $this->barcode_array['num_cols'] = 15;
127                                 $this->barcode_array['bcode'] = array(
128                                         array(1,1,1,0,1,1,1,0,1,1,1,0,1,1,1),
129                                         array(0,1,0,0,1,0,0,0,1,0,0,0,0,1,0),
130                                         array(0,1,0,0,1,1,0,0,1,1,1,0,0,1,0),
131                                         array(0,1,0,0,1,0,0,0,0,0,1,0,0,1,0),
132                                         array(0,1,0,0,1,1,1,0,1,1,1,0,0,1,0)
133                                 );
134                                 break;
135                         }
136                         
137                         // ... Add here real 2D barcodes ...
138                         
139                         default: {
140                                 $this->barcode_array = false;
141                         }
142                 }
143         }
144 } // end of class
145
146 //============================================================+
147 // END OF FILE                                                 
148 //============================================================+
149 ?>