PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB`starting = $this->ending = 47; $this->keys = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','-','.',' ','$','/','+','%','($)','(%)','(/)','(+)','*'); $this->code = array( '020001', /* 0 */ '000102', /* 1 */ '000201', /* 2 */ '000300', /* 3 */ '010002', /* 4 */ '010101', /* 5 */ '010200', /* 6 */ '000003', /* 7 */ '020100', /* 8 */ '030000', /* 9 */ '100002', /* A */ '100101', /* B */ '100200', /* C */ '110001', /* D */ '110100', /* E */ '120000', /* F */ '001002', /* G */ '001101', /* H */ '001200', /* I */ '011001', /* J */ '021000', /* K */ '000012', /* L */ '000111', /* M */ '000210', /* N */ '010011', /* O */ '020010', /* P */ '101001', /* Q */ '101100', /* R */ '100011', /* S */ '100110', /* T */ '110010', /* U */ '111000', /* V */ '001011', /* W */ '001110', /* X */ '011010', /* Y */ '012000', /* Z */ '010020', /* - */ '200001', /* . */ '200100', /* */ '210000', /* $ */ '001020', /* / */ '002010', /* + */ '100020', /* % */ '010110', /*($)*/ '201000', /*(%)*/ '200010', /*(/)*/ '011100', /*(+)*/ '000030' /* * */ ); $this->setText($text); $this->textfont = $textfont; } /** * Saves Text * * @param string $text */ public function setText($text) { $this->text = strtoupper($text); // Only Capital Letters are Allowed } /** * Draws the barcode * * @param ressource $im */ public function draw($im) { $error_stop = false; // Checking if all chars are allowed for($i=0;$itext);$i++) { if(!is_int(array_search($this->text[$i],$this->keys))) { $this->DrawError($im,'Char \''.$this->text[$i].'\' not allowed.'); $error_stop = true; } } if($error_stop == false) { // The * is not allowed if(is_int(strpos($this->text,'*'))) { $this->DrawError($im,'Char \'*\' not allowed.'); $error_stop = true; } if($error_stop == false) { // Starting * $this->DrawChar($im,$this->code[$this->starting],1); // Chars for($i=0;$itext);$i++) $this->DrawChar($im,$this->findCode($this->text[$i]),1); // Checksum // First CheckSUM "C" // The "C" checksum character is the modulo 47 remainder of the sum of the weighted // value of the data characters. The weighting value starts at "1" for the right-most // data character, 2 for the second to last, 3 for the third-to-last, and so on up to 20. // After 20, the sequence wraps around back to 1. // Second CheckSUM "K" // Same as CheckSUM "C" but we count the CheckSum "C" at the end // After 15, the sequence wraps around back to 1. $sequence_multiplier = array(20,15); $temp_text = $this->text; for($z=0;$z<2;$z++) { $checksum = 0; for($i=strlen($temp_text),$j=0;$i>0;$i--,$j++) { $multiplier = $i % $sequence_multiplier[$z]; if($multiplier==0) $multiplier = $sequence_multiplier[$z]; $checksum += $this->findIndex($temp_text[$j]) * $multiplier; } $this->DrawChar($im,$this->code[$checksum % 47],1); $temp_text .= $this->keys[$checksum % 47]; } // Ending * $this->DrawChar($im,$this->code[$this->ending],1); // Draw a Final Bar $this->DrawChar($im,'0',1); $this->lastX = $this->positionX; $this->lastY = $this->maxHeight; $this->DrawText($im); } } } }; ?>