From 41079ed4bb29b5f41952ce099cbea6e57af9481e Mon Sep 17 00:00:00 2001 From: iarenaza Date: Sun, 18 Nov 2007 12:45:21 +0000 Subject: [PATCH] MDL-11099 and MDL-11655 Don't show external db password in clear --- enrol/database/config.html | 2 +- lib/tcpdf/barcode/barcode.php | 441 ++++++++++++++++++++++++++++++ lib/tcpdf/barcode/c128aobject.php | 399 +++++++++++++++++++++++++++ lib/tcpdf/barcode/c128bobject.php | 399 +++++++++++++++++++++++++++ lib/tcpdf/barcode/c128cobject.php | 419 ++++++++++++++++++++++++++++ lib/tcpdf/barcode/c39object.php | 283 +++++++++++++++++++ lib/tcpdf/barcode/i25object.php | 217 +++++++++++++++ lib/tcpdf/barcode/image.php | 88 ++++++ lib/yui/tabview/assets/tabs.css | 66 +++++ 9 files changed, 2313 insertions(+), 1 deletion(-) create mode 100755 lib/tcpdf/barcode/barcode.php create mode 100755 lib/tcpdf/barcode/c128aobject.php create mode 100755 lib/tcpdf/barcode/c128bobject.php create mode 100755 lib/tcpdf/barcode/c128cobject.php create mode 100755 lib/tcpdf/barcode/c39object.php create mode 100755 lib/tcpdf/barcode/i25object.php create mode 100755 lib/tcpdf/barcode/image.php create mode 100755 lib/yui/tabview/assets/tabs.css diff --git a/enrol/database/config.html b/enrol/database/config.html index 2704c0ec4a..df1ed6d4b0 100644 --- a/enrol/database/config.html +++ b/enrol/database/config.html @@ -56,7 +56,7 @@ enrol_dbpass: - + diff --git a/lib/tcpdf/barcode/barcode.php b/lib/tcpdf/barcode/barcode.php new file mode 100755 index 0000000000..133d8ce7c3 --- /dev/null +++ b/lib/tcpdf/barcode/barcode.php @@ -0,0 +1,441 @@ +mWidth = $Width; + $this->mHeight = $Height; + $this->mStyle = $Style; + $this->mFont = BCD_DEFAULT_FONT; + $this->mImg = ImageCreate($this->mWidth, $this->mHeight); + $dbColor = $this->mStyle & BCS_REVERSE_COLOR ? BCD_DEFAULT_FOREGROUND_COLOR : BCD_DEFAULT_BACKGROUND_COLOR; + $dfColor = $this->mStyle & BCS_REVERSE_COLOR ? BCD_DEFAULT_BACKGROUND_COLOR : BCD_DEFAULT_FOREGROUND_COLOR; + $this->mBgcolor = ImageColorAllocate($this->mImg, ($dbColor & 0xFF0000) >> 16, + ($dbColor & 0x00FF00) >> 8, $dbColor & 0x0000FF); + $this->mBrush = ImageColorAllocate($this->mImg, ($dfColor & 0xFF0000) >> 16, + ($dfColor & 0x00FF00) >> 8, $dfColor & 0x0000FF); + if (!($this->mStyle & BCS_TRANSPARENT)) { + ImageFill($this->mImg, $this->mWidth, $this->mHeight, $this->mBgcolor); + } + } + + /** + * Returns the image object. + * @return object image. + * @author Nicola Asuni + * @since 1.5.2 + */ + function getImage() { + return $this->mImg; + } + + /** + * Abstract method used to draw the barcode image. + * @param int $xres Horizontal resolution. + */ + function DrawObject($xres) { + /* there is not implementation neded, is simply the asbsract function. */ + return false; + } + + /** + * Draws the barcode border. + * @access protected + */ + function DrawBorder() { + ImageRectangle($this->mImg, 0, 0, $this->mWidth-1, $this->mHeight-1, $this->mBrush); + } + + /** + * Draws the alphanumeric code. + * @param int $Font Font type. + * @param int $xPos Horiziontal position. + * @param int $yPos Vertical position. + * @param int $Char Alphanumeric code to write. + * @access protected + */ + function DrawChar($Font, $xPos, $yPos, $Char) { + ImageString($this->mImg,$Font,$xPos,$yPos,$Char,$this->mBrush); + } + + /** + * Draws a character string. + * @param int $Font Font type. + * @param int $xPos Horiziontal position. + * @param int $yPos Vertical position. + * @param int $Char string to write. + * @access protected + */ + function DrawText($Font, $xPos, $yPos, $Char) { + ImageString($this->mImg,$Font,$xPos,$yPos,$Char,$this->mBrush); + } + + /** + * Draws a single barcode bar. + * @param int $xPos Horiziontal position. + * @param int $yPos Vertical position. + * @param int $xSize Horizontal size. + * @param int $xSize Vertical size. + * @return bool trur in case of success, false otherwise. + * @access protected + */ + function DrawSingleBar($xPos, $yPos, $xSize, $ySize) { + if ($xPos>=0 && $xPos<=$this->mWidth && ($xPos+$xSize)<=$this->mWidth && + $yPos>=0 && $yPos<=$this->mHeight && ($yPos+$ySize)<=$this->mHeight) { + for ($i=0;$i<$xSize;$i++) { + ImageLine($this->mImg, $xPos+$i, $yPos, $xPos+$i, $yPos+$ySize, $this->mBrush); + } + return true; + } + return false; + } + + /** + * Returns the current error message. + * @return string error message. + */ + function GetError() { + return $this->mError; + } + + /** + * Returns the font height. + * @param int $font font type. + * @return int font height. + */ + function GetFontHeight($font) { + return ImageFontHeight($font); + } + + /** + * Returns the font width. + * @param int $font font type. + * @return int font width. + */ + function GetFontWidth($font) { + return ImageFontWidth($font); + } + + /** + * Set font type. + * @param int $font font type. + */ + function SetFont($font) { + $this->mFont = $font; + } + + /** + * Returns barcode style. + * @return int barcode style. + */ + function GetStyle() { + return $this->mStyle; + } + + /** + * Set barcode style. + * @param int $Style barcode style. + */ + function SetStyle ($Style) { + $this->mStyle = $Style; + } + + /** + * Flush the barcode image. + */ + function FlushObject() { + if (($this->mStyle & BCS_BORDER)) { + $this->DrawBorder(); + } + if ($this->mStyle & BCS_IMAGE_PNG) { + Header("Content-Type: image/png"); + ImagePng($this->mImg); + } else if ($this->mStyle & BCS_IMAGE_JPEG) { + Header("Content-Type: image/jpeg"); + ImageJpeg($this->mImg); + } + } + + /** + * Destroy the barcode image. + */ + function DestroyObject() { + ImageDestroy($this->mImg); + } +} + +//============================================================+ +// END OF FILE +//============================================================+ +?> \ No newline at end of file diff --git a/lib/tcpdf/barcode/c128aobject.php b/lib/tcpdf/barcode/c128aobject.php new file mode 100755 index 0000000000..15cbbfad51 --- /dev/null +++ b/lib/tcpdf/barcode/c128aobject.php @@ -0,0 +1,399 @@ + + * Code 128-A is a continuous, multilevel and include all upper case alphanumeric characters and ASCII control characters. + * @author Karim Mribti, Nicola Asuni + * @name BarcodeObject + * @package com.tecnick.tcpdf + * @version 0.0.8a 2001-04-01 (original code) + * @since 2001-03-25 + * @license http://www.gnu.org/copyleft/lesser.html LGPL + */ + +/** + * Code 128-A Barcode Render Class for PHP using the GD graphics library.
+ * Code 128-A is a continuous, multilevel and include all upper case alphanumeric characters and ASCII control characters. + * @author Karim Mribti, Nicola Asuni + * @name BarcodeObject + * @package com.tecnick.tcpdf + * @version 0.0.8a 2001-04-01 (original code) + * @since 2001-03-25 + * @license http://www.gnu.org/copyleft/lesser.html LGPL + */ +class C128AObject extends BarcodeObject { + + /** + * Class Constructor. + * @param int $Width Image width in pixels. + * @param int $Height Image height in pixels. + * @param int $Style Barcode style. + * @param int $Value value to print on barcode. + */ + function C128AObject($Width, $Height, $Style, $Value) { + $this->BarcodeObject($Width, $Height, $Style); + $this->mValue = $Value; + $this->mChars = " !\"#$%&'()*+�-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"; + $this->mCharSet = array ( + "212222", /* 00 */ + "222122", /* 01 */ + "222221", /* 02 */ + "121223", /* 03 */ + "121322", /* 04 */ + "131222", /* 05 */ + "122213", /* 06 */ + "122312", /* 07 */ + "132212", /* 08 */ + "221213", /* 09 */ + "221312", /* 10 */ + "231212", /* 11 */ + "112232", /* 12 */ + "122132", /* 13 */ + "122231", /* 14 */ + "113222", /* 15 */ + "123122", /* 16 */ + "123221", /* 17 */ + "223211", /* 18 */ + "221132", /* 19 */ + "221231", /* 20 */ + "213212", /* 21 */ + "223112", /* 22 */ + "312131", /* 23 */ + "311222", /* 24 */ + "321122", /* 25 */ + "321221", /* 26 */ + "312212", /* 27 */ + "322112", /* 28 */ + "322211", /* 29 */ + "212123", /* 30 */ + "212321", /* 31 */ + "232121", /* 32 */ + "111323", /* 33 */ + "131123", /* 34 */ + "131321", /* 35 */ + "112313", /* 36 */ + "132113", /* 37 */ + "132311", /* 38 */ + "211313", /* 39 */ + "231113", /* 40 */ + "231311", /* 41 */ + "112133", /* 42 */ + "112331", /* 43 */ + "132131", /* 44 */ + "113123", /* 45 */ + "113321", /* 46 */ + "133121", /* 47 */ + "313121", /* 48 */ + "211331", /* 49 */ + "231131", /* 50 */ + "213113", /* 51 */ + "213311", /* 52 */ + "213131", /* 53 */ + "311123", /* 54 */ + "311321", /* 55 */ + "331121", /* 56 */ + "312113", /* 57 */ + "312311", /* 58 */ + "332111", /* 59 */ + "314111", /* 60 */ + "221411", /* 61 */ + "431111", /* 62 */ + "111224", /* 63 */ + "111422", /* 64 */ + "121124", /* 65 */ + "121421", /* 66 */ + "141122", /* 67 */ + "141221", /* 68 */ + "112214", /* 69 */ + "112412", /* 70 */ + "122114", /* 71 */ + "122411", /* 72 */ + "142112", /* 73 */ + "142211", /* 74 */ + "241211", /* 75 */ + "221114", /* 76 */ + "413111", /* 77 */ + "241112", /* 78 */ + "134111", /* 79 */ + "111242", /* 80 */ + "121142", /* 81 */ + "121241", /* 82 */ + "114212", /* 83 */ + "124112", /* 84 */ + "124211", /* 85 */ + "411212", /* 86 */ + "421112", /* 87 */ + "421211", /* 88 */ + "212141", /* 89 */ + "214121", /* 90 */ + "412121", /* 91 */ + "111143", /* 92 */ + "111341", /* 93 */ + "131141", /* 94 */ + "114113", /* 95 */ + "114311", /* 96 */ + "411113", /* 97 */ + "411311", /* 98 */ + "113141", /* 99 */ + "114131", /* 100 */ + "311141", /* 101 */ + "411131" /* 102 */ + ); + } + + /** + * Returns the character index. + * @param char $char character. + * @return int character index or -1 in case of error. + * @access private + */ + function GetCharIndex($char) { + for ($i=0;$i<64;$i++) { + if ($this->mChars[$i] == $char) { + return $i; + } + } + return -1; + } + + /** + * Returns the bar size. + * @param int $xres Horizontal resolution. + * @param char $char Character. + * @return int barcode size. + * @access private + */ + function GetBarSize($xres, $char) { + switch ($char) { + case '1': { + $cVal = BCD_C128_BAR_1; + break; + } + case '2': { + $cVal = BCD_C128_BAR_2; + break; + } + case '3': { + $cVal = BCD_C128_BAR_3; + break; + } + case '4': { + $cVal = BCD_C128_BAR_4; + break; + } + default: { + $cVal = 0; + } + } + return $cVal * $xres; + } + + /** + * Returns barcode size. + * @param int $xres Horizontal resolution. + * @return barcode size. + * @access private + */ + function GetSize($xres) { + $len = strlen($this->mValue); + + if ($len == 0) { + $this->mError = "Null value"; + return false; + } + $ret = 0; + for ($i=0;$i<$len;$i++) { + if (($id = $this->GetCharIndex($this->mValue[$i])) == -1) { + $this->mError = "C128A not include the char '".$this->mValue[$i]."'"; + return false; + } else { + $cset = $this->mCharSet[$id]; + $ret += $this->GetBarSize($xres, $cset[0]); + $ret += $this->GetBarSize($xres, $cset[1]); + $ret += $this->GetBarSize($xres, $cset[2]); + $ret += $this->GetBarSize($xres, $cset[3]); + $ret += $this->GetBarSize($xres, $cset[4]); + $ret += $this->GetBarSize($xres, $cset[5]); + } + } + + /* length of Check character */ + $cset = $this->GetCheckCharValue(); + $CheckSize = 0; + for ($i=0;$i<6;$i++) { + $CheckSize += $this->GetBarSize($cset[$i], $xres); + } + $StartSize = 2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + BCD_C128_BAR_4*$xres; + $StopSize = 2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + 2*BCD_C128_BAR_3*$xres; + return $StartSize + $ret + $CheckSize + $StopSize; + } + + /** + * Returns the check-char value. + * @return string. + * @access private + */ + function GetCheckCharValue() { + $len = strlen($this->mValue); + $sum = 103; // 'A' type; + for ($i=0;$i<$len;$i++) { + $sum += $this->GetCharIndex($this->mValue[$i]) * ($i+1); + } + $check = $sum % 103; + return $this->mCharSet[$check]; + } + + /** + * Draws the start code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStart($DrawPos, $yPos, $ySize, $xres) { + /* Start code is '211412' */ + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('2', $xres) , $ySize); + $DrawPos += $this->GetBarSize('2', $xres); + $DrawPos += $this->GetBarSize('1', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('1', $xres) , $ySize); + $DrawPos += $this->GetBarSize('1', $xres); + $DrawPos += $this->GetBarSize('4', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('1', $xres) , $ySize); + $DrawPos += $this->GetBarSize('1', $xres); + $DrawPos += $this->GetBarSize('2', $xres); + return $DrawPos; + } + + /** + * Draws the stop code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStop($DrawPos, $yPos, $ySize, $xres) { + /* Stop code is '2331112' */ + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('2', $xres) , $ySize); + $DrawPos += $this->GetBarSize('2', $xres); + $DrawPos += $this->GetBarSize('3', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('3', $xres) , $ySize); + $DrawPos += $this->GetBarSize('3', $xres); + $DrawPos += $this->GetBarSize('1', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('1', $xres) , $ySize); + $DrawPos += $this->GetBarSize('1', $xres); + $DrawPos += $this->GetBarSize('1', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('2', $xres) , $ySize); + $DrawPos += $this->GetBarSize('2', $xres); + return $DrawPos; + } + + /** + * Draws the check-char code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawCheckChar($DrawPos, $yPos, $ySize, $xres) { + $cset = $this->GetCheckCharValue(); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[0], $xres) , $ySize); + $DrawPos += $this->GetBarSize($cset[0], $xres); + $DrawPos += $this->GetBarSize($cset[1], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[2], $xres) , $ySize); + $DrawPos += $this->GetBarSize($cset[2], $xres); + $DrawPos += $this->GetBarSize($cset[3], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[4], $xres) , $ySize); + $DrawPos += $this->GetBarSize($cset[4], $xres); + $DrawPos += $this->GetBarSize($cset[5], $xres); + return $DrawPos; + } + + /** + * Draws the barcode object. + * @param int $xres Horizontal resolution. + * @return bool true in case of success. + */ + function DrawObject($xres) { + $len = strlen($this->mValue); + if (($size = $this->GetSize($xres))==0) { + return false; + } + + if ($this->mStyle & BCS_ALIGN_CENTER) $sPos = (integer)(($this->mWidth - $size ) / 2); + else if ($this->mStyle & BCS_ALIGN_RIGHT) $sPos = $this->mWidth - $size; + else $sPos = 0; + + /* Total height of bar code -Bars only- */ + if ($this->mStyle & BCS_DRAW_TEXT) $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2 - $this->GetFontHeight($this->mFont); + else $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2; + + /* Draw text */ + if ($this->mStyle & BCS_DRAW_TEXT) { + if ($this->mStyle & BCS_STRETCH_TEXT) { + for ($i=0;$i<$len;$i++) { + $this->DrawChar($this->mFont, $sPos+(2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + BCD_C128_BAR_4*$xres)+($size/$len)*$i, + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET, $this->mValue[$i]); + } + } else {/* Center */ + $text_width = $this->GetFontWidth($this->mFont) * strlen($this->mValue); + $this->DrawText($this->mFont, $sPos+(($size-$text_width)/2)+(2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + BCD_C128_BAR_4*$xres), + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET, $this->mValue); + } + } + + $cPos = 0; + $DrawPos = $this->DrawStart($sPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + do { + $c = $this->GetCharIndex($this->mValue[$cPos]); + $cset = $this->mCharSet[$c]; + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[0], $xres) , $ysize); + $DrawPos += $this->GetBarSize($cset[0], $xres); + $DrawPos += $this->GetBarSize($cset[1], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[2], $xres) , $ysize); + $DrawPos += $this->GetBarSize($cset[2], $xres); + $DrawPos += $this->GetBarSize($cset[3], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[4], $xres) , $ysize); + $DrawPos += $this->GetBarSize($cset[4], $xres); + $DrawPos += $this->GetBarSize($cset[5], $xres); + $cPos++; + } while ($cPos<$len); + $DrawPos = $this->DrawCheckChar($DrawPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + $DrawPos = $this->DrawStop($DrawPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + return true; + } +} + +//============================================================+ +// END OF FILE +//============================================================+ +?> \ No newline at end of file diff --git a/lib/tcpdf/barcode/c128bobject.php b/lib/tcpdf/barcode/c128bobject.php new file mode 100755 index 0000000000..f3d5540575 --- /dev/null +++ b/lib/tcpdf/barcode/c128bobject.php @@ -0,0 +1,399 @@ + +* Code 128-B is a continuous, multilevel and full ASCII code. +* @author Karim Mribti, Nicola Asuni +* @name BarcodeObject +* @package com.tecnick.tcpdf +* @version 0.0.8a 2001-04-01 (original code) +* @since 2001-03-25 +* @license http://www.gnu.org/copyleft/lesser.html LGPL +*/ + +/** +* Code 128-B Barcode Render Class for PHP using the GD graphics library.
+* Code 128-B is a continuous, multilevel and full ASCII code. +* @author Karim Mribti, Nicola Asuni +* @name BarcodeObject +* @package com.tecnick.tcpdf +* @version 0.0.8a 2001-04-01 (original code) +* @since 2001-03-25 +* @license http://www.gnu.org/copyleft/lesser.html LGPL +*/ +class C128BObject extends BarcodeObject { + + /** + * Class Constructor. + * @param int $Width Image width in pixels. + * @param int $Height Image height in pixels. + * @param int $Style Barcode style. + * @param int $Value value to print on barcode. + */ + function C128BObject($Width, $Height, $Style, $Value) { + $this->BarcodeObject($Width, $Height, $Style); + $this->mValue = $Value; + $this->mChars = " !\"#$%&'()*+�-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{ }~"; + $this->mCharSet = array ( + "212222", /* 00 */ + "222122", /* 01 */ + "222221", /* 02 */ + "121223", /* 03 */ + "121322", /* 04 */ + "131222", /* 05 */ + "122213", /* 06 */ + "122312", /* 07 */ + "132212", /* 08 */ + "221213", /* 09 */ + "221312", /* 10 */ + "231212", /* 11 */ + "112232", /* 12 */ + "122132", /* 13 */ + "122231", /* 14 */ + "113222", /* 15 */ + "123122", /* 16 */ + "123221", /* 17 */ + "223211", /* 18 */ + "221132", /* 19 */ + "221231", /* 20 */ + "213212", /* 21 */ + "223112", /* 22 */ + "312131", /* 23 */ + "311222", /* 24 */ + "321122", /* 25 */ + "321221", /* 26 */ + "312212", /* 27 */ + "322112", /* 28 */ + "322211", /* 29 */ + "212123", /* 30 */ + "212321", /* 31 */ + "232121", /* 32 */ + "111323", /* 33 */ + "131123", /* 34 */ + "131321", /* 35 */ + "112313", /* 36 */ + "132113", /* 37 */ + "132311", /* 38 */ + "211313", /* 39 */ + "231113", /* 40 */ + "231311", /* 41 */ + "112133", /* 42 */ + "112331", /* 43 */ + "132131", /* 44 */ + "113123", /* 45 */ + "113321", /* 46 */ + "133121", /* 47 */ + "313121", /* 48 */ + "211331", /* 49 */ + "231131", /* 50 */ + "213113", /* 51 */ + "213311", /* 52 */ + "213131", /* 53 */ + "311123", /* 54 */ + "311321", /* 55 */ + "331121", /* 56 */ + "312113", /* 57 */ + "312311", /* 58 */ + "332111", /* 59 */ + "314111", /* 60 */ + "221411", /* 61 */ + "431111", /* 62 */ + "111224", /* 63 */ + "111422", /* 64 */ + "121124", /* 65 */ + "121421", /* 66 */ + "141122", /* 67 */ + "141221", /* 68 */ + "112214", /* 69 */ + "112412", /* 70 */ + "122114", /* 71 */ + "122411", /* 72 */ + "142112", /* 73 */ + "142211", /* 74 */ + "241211", /* 75 */ + "221114", /* 76 */ + "413111", /* 77 */ + "241112", /* 78 */ + "134111", /* 79 */ + "111242", /* 80 */ + "121142", /* 81 */ + "121241", /* 82 */ + "114212", /* 83 */ + "124112", /* 84 */ + "124211", /* 85 */ + "411212", /* 86 */ + "421112", /* 87 */ + "421211", /* 88 */ + "212141", /* 89 */ + "214121", /* 90 */ + "412121", /* 91 */ + "111143", /* 92 */ + "111341", /* 93 */ + "131141", /* 94 */ + "114113", /* 95 */ + "114311", /* 96 */ + "411113", /* 97 */ + "411311", /* 98 */ + "113141", /* 99 */ + "114131", /* 100 */ + "311141", /* 101 */ + "411131" /* 102 */ + ); + } + + /** + * Returns the character index. + * @param char $char character. + * @return int character index or -1 in case of error. + * @access private + */ + function GetCharIndex($char) { + for ($i=0;$i<95;$i++) { + if ($this->mChars[$i] == $char) { + return $i; + } + } + return -1; + } + + /** + * Returns the bar size. + * @param int $xres Horizontal resolution. + * @param char $char Character. + * @return int barcode size. + * @access private + */ + function GetBarSize($xres, $char) { + switch ($char) { + case '1': { + $cVal = BCD_C128_BAR_1; + break; + } + case '2': { + $cVal = BCD_C128_BAR_2; + break; + } + case '3': { + $cVal = BCD_C128_BAR_3; + break; + } + case '4': { + $cVal = BCD_C128_BAR_4; + break; + } + default: { + $cVal = 0; + } + } + return $cVal * $xres; + } + + /** + * Returns barcode size. + * @param int $xres Horizontal resolution. + * @return barcode size. + * @access private + */ + function GetSize($xres) { + $len = strlen($this->mValue); + + if ($len == 0) { + $this->mError = "Null value"; + return false; + } + $ret = 0; + for ($i=0;$i<$len;$i++) { + if (($id = $this->GetCharIndex($this->mValue[$i])) == -1) { + $this->mError = "C128B not include the char '".$this->mValue[$i]."'"; + return false; + } else { + $cset = $this->mCharSet[$id]; + $ret += $this->GetBarSize($xres, $cset[0]); + $ret += $this->GetBarSize($xres, $cset[1]); + $ret += $this->GetBarSize($xres, $cset[2]); + $ret += $this->GetBarSize($xres, $cset[3]); + $ret += $this->GetBarSize($xres, $cset[4]); + $ret += $this->GetBarSize($xres, $cset[5]); + } + } + /* length of Check character */ + $cset = $this->GetCheckCharValue(); + $CheckSize = 0; + for ($i=0;$i<6;$i++) { + $CheckSize += $this->GetBarSize($cset[$i], $xres); + } + + $StartSize = 2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + BCD_C128_BAR_4*$xres; + $StopSize = 2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + 2*BCD_C128_BAR_3*$xres; + + return $StartSize + $ret + $CheckSize + $StopSize; + } + + /** + * Returns the check-char value. + * @return string. + * @access private + */ + function GetCheckCharValue() { + $len = strlen($this->mValue); + $sum = 104; // 'B' type; + for ($i=0;$i<$len;$i++) { + $sum += $this->GetCharIndex($this->mValue[$i]) * ($i+1); + } + $check = $sum % 103; + return $this->mCharSet[$check]; + } + + /** + * Draws the start code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStart($DrawPos, $yPos, $ySize, $xres) { + /* Start code is '211214' */ + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('2', $xres), $ySize); + $DrawPos += $this->GetBarSize('2', $xres); + $DrawPos += $this->GetBarSize('1', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('1', $xres), $ySize); + $DrawPos += $this->GetBarSize('1', $xres); + $DrawPos += $this->GetBarSize('2', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('1', $xres), $ySize); + $DrawPos += $this->GetBarSize('1', $xres); + $DrawPos += $this->GetBarSize('4', $xres); + return $DrawPos; + } + + /** + * Draws the stop code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStop($DrawPos, $yPos, $ySize, $xres) { + /* Stop code is '2331112' */ + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('2', $xres) , $ySize); + $DrawPos += $this->GetBarSize('2', $xres); + $DrawPos += $this->GetBarSize('3', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('3', $xres) , $ySize); + $DrawPos += $this->GetBarSize('3', $xres); + $DrawPos += $this->GetBarSize('1', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('1', $xres) , $ySize); + $DrawPos += $this->GetBarSize('1', $xres); + $DrawPos += $this->GetBarSize('1', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('2', $xres) , $ySize); + $DrawPos += $this->GetBarSize('2', $xres); + return $DrawPos; + } + + /** + * Draws the check-char code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawCheckChar($DrawPos, $yPos, $ySize, $xres) { + $cset = $this->GetCheckCharValue(); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[0], $xres) , $ySize); + $DrawPos += $this->GetBarSize($cset[0], $xres); + $DrawPos += $this->GetBarSize($cset[1], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[2], $xres) , $ySize); + $DrawPos += $this->GetBarSize($cset[2], $xres); + $DrawPos += $this->GetBarSize($cset[3], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[4], $xres) , $ySize); + $DrawPos += $this->GetBarSize($cset[4], $xres); + $DrawPos += $this->GetBarSize($cset[5], $xres); + return $DrawPos; + } + + /** + * Draws the barcode object. + * @param int $xres Horizontal resolution. + * @return bool true in case of success. + */ + function DrawObject($xres) { + $len = strlen($this->mValue); + if (($size = $this->GetSize($xres))==0) { + return false; + } + + if ($this->mStyle & BCS_ALIGN_CENTER) $sPos = (integer)(($this->mWidth - $size ) / 2); + else if ($this->mStyle & BCS_ALIGN_RIGHT) $sPos = $this->mWidth - $size; + else $sPos = 0; + + /* Total height of bar code -Bars only- */ + if ($this->mStyle & BCS_DRAW_TEXT) $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2 - $this->GetFontHeight($this->mFont); + else $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2; + + /* Draw text */ + if ($this->mStyle & BCS_DRAW_TEXT) { + if ($this->mStyle & BCS_STRETCH_TEXT) { + for ($i=0;$i<$len;$i++) { + $this->DrawChar($this->mFont, $sPos+(2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + BCD_C128_BAR_4*$xres)+($size/$len)*$i, + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET, $this->mValue[$i]); + } + } else {/* Center */ + $text_width = $this->GetFontWidth($this->mFont) * strlen($this->mValue); + $this->DrawText($this->mFont, $sPos+(($size-$text_width)/2)+(2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + BCD_C128_BAR_4*$xres), + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET, $this->mValue); + } + } + + $cPos = 0; + $DrawPos = $this->DrawStart($sPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + do { + $c = $this->GetCharIndex($this->mValue[$cPos]); + $cset = $this->mCharSet[$c]; + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[0], $xres) , $ysize); + $DrawPos += $this->GetBarSize($cset[0], $xres); + $DrawPos += $this->GetBarSize($cset[1], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[2], $xres) , $ysize); + $DrawPos += $this->GetBarSize($cset[2], $xres); + $DrawPos += $this->GetBarSize($cset[3], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[4], $xres) , $ysize); + $DrawPos += $this->GetBarSize($cset[4], $xres); + $DrawPos += $this->GetBarSize($cset[5], $xres); + $cPos++; + } while ($cPos<$len); + $DrawPos = $this->DrawCheckChar($DrawPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + $DrawPos = $this->DrawStop($DrawPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + return true; + } +} + +//============================================================+ +// END OF FILE +//============================================================+ +?> \ No newline at end of file diff --git a/lib/tcpdf/barcode/c128cobject.php b/lib/tcpdf/barcode/c128cobject.php new file mode 100755 index 0000000000..cb4923c6ef --- /dev/null +++ b/lib/tcpdf/barcode/c128cobject.php @@ -0,0 +1,419 @@ + + * Code 128-C is numeric only and provides the most efficiency. + * @author Karim Mribti, Nicola Asuni + * @name BarcodeObject + * @package com.tecnick.tcpdf + * @version 0.0.8a 2001-04-01 (original code) + * @since 2001-03-25 + * @license http://www.gnu.org/copyleft/lesser.html LGPL + */ + +/** + * Code 128-C Barcode Render Class for PHP using the GD graphics library.
+ * Code 128-C is numeric only and provides the most efficiency. + * @author Karim Mribti, Nicola Asuni + * @name BarcodeObject + * @package com.tecnick.tcpdf + * @version 0.0.8a 2001-04-01 (original code) + * @since 2001-03-25 + * @license http://www.gnu.org/copyleft/lesser.html LGPL + */ +class C128CObject extends BarcodeObject { + + /** + * Class Constructor. + * @param int $Width Image width in pixels. + * @param int $Height Image height in pixels. + * @param int $Style Barcode style. + * @param int $Value value to print on barcode. + */ + function C128CObject($Width, $Height, $Style, $Value) { + $this->BarcodeObject($Width, $Height, $Style); + $this->mValue = $Value; + $this->mChars = array ( + "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", + "10", "11", "12", "13", "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", + "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", + "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", + "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", + "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", + "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", + "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", + ); + $this->mCharSet = array ( + "212222", /* 00 */ + "222122", /* 01 */ + "222221", /* 02 */ + "121223", /* 03 */ + "121322", /* 04 */ + "131222", /* 05 */ + "122213", /* 06 */ + "122312", /* 07 */ + "132212", /* 08 */ + "221213", /* 09 */ + "221312", /* 10 */ + "231212", /* 11 */ + "112232", /* 12 */ + "122132", /* 13 */ + "122231", /* 14 */ + "113222", /* 15 */ + "123122", /* 16 */ + "123221", /* 17 */ + "223211", /* 18 */ + "221132", /* 19 */ + "221231", /* 20 */ + "213212", /* 21 */ + "223112", /* 22 */ + "312131", /* 23 */ + "311222", /* 24 */ + "321122", /* 25 */ + "321221", /* 26 */ + "312212", /* 27 */ + "322112", /* 28 */ + "322211", /* 29 */ + "212123", /* 30 */ + "212321", /* 31 */ + "232121", /* 32 */ + "111323", /* 33 */ + "131123", /* 34 */ + "131321", /* 35 */ + "112313", /* 36 */ + "132113", /* 37 */ + "132311", /* 38 */ + "211313", /* 39 */ + "231113", /* 40 */ + "231311", /* 41 */ + "112133", /* 42 */ + "112331", /* 43 */ + "132131", /* 44 */ + "113123", /* 45 */ + "113321", /* 46 */ + "133121", /* 47 */ + "313121", /* 48 */ + "211331", /* 49 */ + "231131", /* 50 */ + "213113", /* 51 */ + "213311", /* 52 */ + "213131", /* 53 */ + "311123", /* 54 */ + "311321", /* 55 */ + "331121", /* 56 */ + "312113", /* 57 */ + "312311", /* 58 */ + "332111", /* 59 */ + "314111", /* 60 */ + "221411", /* 61 */ + "431111", /* 62 */ + "111224", /* 63 */ + "111422", /* 64 */ + "121124", /* 65 */ + "121421", /* 66 */ + "141122", /* 67 */ + "141221", /* 68 */ + "112214", /* 69 */ + "112412", /* 70 */ + "122114", /* 71 */ + "122411", /* 72 */ + "142112", /* 73 */ + "142211", /* 74 */ + "241211", /* 75 */ + "221114", /* 76 */ + "413111", /* 77 */ + "241112", /* 78 */ + "134111", /* 79 */ + "111242", /* 80 */ + "121142", /* 81 */ + "121241", /* 82 */ + "114212", /* 83 */ + "124112", /* 84 */ + "124211", /* 85 */ + "411212", /* 86 */ + "421112", /* 87 */ + "421211", /* 88 */ + "212141", /* 89 */ + "214121", /* 90 */ + "412121", /* 91 */ + "111143", /* 92 */ + "111341", /* 93 */ + "131141", /* 94 */ + "114113", /* 95 */ + "114311", /* 96 */ + "411113", /* 97 */ + "411311", /* 98 */ + "113141", /* 99 */ + ); + } + + /** + * Returns the character index. + * @param char $char character. + * @return int character index or -1 in case of error. + * @access private + */ + function GetCharIndex($char) { + for ($i=0;$i<100;$i++) { + if ($this->mChars[$i] == $char) { + return $i; + } + } + return -1; + } + + /** + * Returns the bar size. + * @param int $xres Horizontal resolution. + * @param char $char Character. + * @return int barcode size. + * @access private + */ + function GetBarSize($xres, $char) { + switch ($char) { + case '1': { + $cVal = BCD_C128_BAR_1; + break; + } + case '2': { + $cVal = BCD_C128_BAR_2; + break; + } + case '3': { + $cVal = BCD_C128_BAR_3; + break; + } + case '4': { + $cVal = BCD_C128_BAR_4; + break; + } + default: { + $cVal = 0; + } + } + return $cVal * $xres; + } + + /** + * Returns barcode size. + * @param int $xres Horizontal resolution. + * @return barcode size. + * @access private + */ + function GetSize($xres) { + $len = strlen($this->mValue); + + if ($len == 0) { + $this->mError = "Null value"; + return false; + } + $ret = 0; + + for ($i=0;$i<$len;$i++) { + if ((ord($this->mValue[$i])<48) || (ord($this->mValue[$i])>57)) { + $this->mError = "Code-128C is numeric only"; + return false; + } + } + + if (($len%2) != 0) { + $this->mError = "The length of barcode value must be even. You must pad the number with zeros."; + return false; + } + + for ($i=0;$i<$len;$i+=2) { + $id = $this->GetCharIndex($this->mValue[$i].$this->mValue[$i+1]); + $cset = $this->mCharSet[$id]; + $ret += $this->GetBarSize($xres, $cset[0]); + $ret += $this->GetBarSize($xres, $cset[1]); + $ret += $this->GetBarSize($xres, $cset[2]); + $ret += $this->GetBarSize($xres, $cset[3]); + $ret += $this->GetBarSize($xres, $cset[4]); + $ret += $this->GetBarSize($xres, $cset[5]); + } + /* length of Check character */ + $cset = $this->GetCheckCharValue(); + $CheckSize = 0; + for ($i=0;$i<6;$i++) { + $CheckSize += $this->GetBarSize($cset[$i], $xres); + } + + $StartSize = 2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + BCD_C128_BAR_4*$xres; + $StopSize = 2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + 2*BCD_C128_BAR_3*$xres; + return $StartSize + $ret + $CheckSize + $StopSize; + } + + /** + * Returns the check-char value. + * @return string. + * @access private + */ + function GetCheckCharValue() { + $len = strlen($this->mValue); + $sum = 105; // 'C' type; + $m = 0; + for ($i=0;$i<$len;$i+=2) { + $m++; + $sum += $this->GetCharIndex($this->mValue[$i].$this->mValue[$i+1]) * $m; + } + $check = $sum % 103; + return $this->mCharSet[$check]; + } + + /** + * Draws the start code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStart($DrawPos, $yPos, $ySize, $xres) { + /* Start code is '211232' */ + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('2', $xres) , $ySize); + $DrawPos += $this->GetBarSize('2', $xres); + $DrawPos += $this->GetBarSize('1', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('1', $xres) , $ySize); + $DrawPos += $this->GetBarSize('1', $xres); + $DrawPos += $this->GetBarSize('2', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('3', $xres) , $ySize); + $DrawPos += $this->GetBarSize('3', $xres); + $DrawPos += $this->GetBarSize('2', $xres); + return $DrawPos; + } + + /** + * Draws the stop code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStop($DrawPos, $yPos, $ySize, $xres) { + /* Stop code is '2331112' */ + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('2', $xres) , $ySize); + $DrawPos += $this->GetBarSize('2', $xres); + $DrawPos += $this->GetBarSize('3', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('3', $xres) , $ySize); + $DrawPos += $this->GetBarSize('3', $xres); + $DrawPos += $this->GetBarSize('1', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('1', $xres) , $ySize); + $DrawPos += $this->GetBarSize('1', $xres); + $DrawPos += $this->GetBarSize('1', $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize('2', $xres) , $ySize); + $DrawPos += $this->GetBarSize('2', $xres); + return $DrawPos; + } + + /** + * Draws the check-char code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawCheckChar($DrawPos, $yPos, $ySize, $xres) { + $cset = $this->GetCheckCharValue(); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[0], $xres) , $ySize); + $DrawPos += $this->GetBarSize($cset[0], $xres); + $DrawPos += $this->GetBarSize($cset[1], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[2], $xres) , $ySize); + $DrawPos += $this->GetBarSize($cset[2], $xres); + $DrawPos += $this->GetBarSize($cset[3], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[4], $xres) , $ySize); + $DrawPos += $this->GetBarSize($cset[4], $xres); + $DrawPos += $this->GetBarSize($cset[5], $xres); + return $DrawPos; + } + + /** + * Draws the barcode object. + * @param int $xres Horizontal resolution. + * @return bool true in case of success. + */ + function DrawObject($xres) { + $len = strlen($this->mValue); + if (($size = $this->GetSize($xres))==0) { + return false; + } + + if ($this->mStyle & BCS_ALIGN_CENTER) $sPos = (integer)(($this->mWidth - $size ) / 2); + else if ($this->mStyle & BCS_ALIGN_RIGHT) $sPos = $this->mWidth - $size; + else $sPos = 0; + + /* Total height of bar code -Bars only- */ + if ($this->mStyle & BCS_DRAW_TEXT) $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2 - $this->GetFontHeight($this->mFont); + else $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2; + + /* Draw text */ + if ($this->mStyle & BCS_DRAW_TEXT) { + if ($this->mStyle & BCS_STRETCH_TEXT) { + for ($i=0;$i<$len;$i++) { + $this->DrawChar($this->mFont, $sPos+(2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + BCD_C128_BAR_4*$xres)+($size/$len)*$i, + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET, $this->mValue[$i]); + } + } else {/* Center */ + $text_width = $this->GetFontWidth($this->mFont) * strlen($this->mValue); + $this->DrawText($this->mFont, $sPos+(($size-$text_width)/2)+(2*BCD_C128_BAR_2*$xres + 3*BCD_C128_BAR_1*$xres + BCD_C128_BAR_4*$xres), + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET, $this->mValue); + } + } + + $cPos = 0; + $DrawPos = $this->DrawStart($sPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + do { + $c = $this->GetCharIndex($this->mValue[$cPos].$this->mValue[$cPos+1]); + $cset = $this->mCharSet[$c]; + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[0], $xres) , $ysize); + $DrawPos += $this->GetBarSize($cset[0], $xres); + $DrawPos += $this->GetBarSize($cset[1], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[2], $xres) , $ysize); + $DrawPos += $this->GetBarSize($cset[2], $xres); + $DrawPos += $this->GetBarSize($cset[3], $xres); + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, $this->GetBarSize($cset[4], $xres) , $ysize); + $DrawPos += $this->GetBarSize($cset[4], $xres); + $DrawPos += $this->GetBarSize($cset[5], $xres); + $cPos += 2; + } while ($cPos<$len); + $DrawPos = $this->DrawCheckChar($DrawPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + $DrawPos = $this->DrawStop($DrawPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + return true; + } +} + +//============================================================+ +// END OF FILE +//============================================================+ +?> diff --git a/lib/tcpdf/barcode/c39object.php b/lib/tcpdf/barcode/c39object.php new file mode 100755 index 0000000000..bb253cb096 --- /dev/null +++ b/lib/tcpdf/barcode/c39object.php @@ -0,0 +1,283 @@ + + * Code 39 is an alphanumeric bar code that can encode decimal number, case alphabet and some special symbols. + * @author Karim Mribti, Nicola Asuni + * @name BarcodeObject + * @package com.tecnick.tcpdf + * @version 0.0.8a 2001-04-01 (original code) + * @since 2001-03-25 + * @license http://www.gnu.org/copyleft/lesser.html LGPL + */ + +/** + * Code 39 Barcode Render Class.
+ * Code 39 is an alphanumeric bar code that can encode decimal number, case alphabet and some special symbols. + * @author Karim Mribti, Nicola Asuni + * @name BarcodeObject + * @package com.tecnick.tcpdf + * @version 0.0.8a 2001-04-01 (original code) + * @since 2001-03-25 + * @license http://www.gnu.org/copyleft/lesser.html LGPL + */ +class C39Object extends BarcodeObject { + + /** + * Class Constructor. + * @param int $Width Image width in pixels. + * @param int $Height Image height in pixels. + * @param int $Style Barcode style. + * @param int $Value value to print on barcode. + */ + function C39Object($Width, $Height, $Style, $Value) { + $this->BarcodeObject($Width, $Height, $Style); + $this->mValue = $Value; + $this->mChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%"; + $this->mCharSet = array ( + /* 0 */ "000110100", + /* 1 */ "100100001", + /* 2 */ "001100001", + /* 3 */ "101100000", + /* 4 */ "000110001", + /* 5 */ "100110000", + /* 6 */ "001110000", + /* 7 */ "000100101", + /* 8 */ "100100100", + /* 9 */ "001100100", + /* A */ "100001001", + /* B */ "001001001", + /* C */ "101001000", + /* D */ "000011001", + /* E */ "100011000", + /* F */ "001011000", + /* G */ "000001101", + /* H */ "100001100", + /* I */ "001001100", + /* J */ "000011100", + /* K */ "100000011", + /* L */ "001000011", + /* M */ "101000010", + /* N */ "000010011", + /* O */ "100010010", + /* P */ "001010010", + /* Q */ "000000111", + /* R */ "100000110", + /* S */ "001000110", + /* T */ "000010110", + /* U */ "110000001", + /* V */ "011000001", + /* W */ "111000000", + /* X */ "010010001", + /* Y */ "110010000", + /* Z */ "011010000", + /* - */ "010000101", + /* . */ "110000100", + /* SP */ "011000100", + /* * */ "010010100", + /* $ */ "010101000", + /* / */ "010100010", + /* + */ "010001010", + /* % */ "000101010" + ); + } + + /** + * Returns the character index. + * @param char $char character. + * @return int character index or -1 in case of error. + * @access private + */ + function GetCharIndex($char) { + for ($i=0;$i<44;$i++) { + if ($this->mChars[$i] == $char) { + return $i; + } + } + return -1; + } + + /** + * Returns barcode size. + * @param int $xres Horizontal resolution. + * @return barcode size. + * @access private + */ + function GetSize($xres) { + $len = strlen($this->mValue); + + if ($len == 0) { + $this->mError = "Null value"; + return false; + } + + for ($i=0;$i<$len;$i++) { + if ($this->GetCharIndex($this->mValue[$i]) == -1 || $this->mValue[$i] == '*') { + /* The asterisk is only used as a start and stop code */ + $this->mError = "C39 not include the char '".$this->mValue[$i]."'"; + return false; + } + } + + /* Start, Stop is 010010100 == '*' */ + $StartSize = BCD_C39_NARROW_BAR * $xres * 6 + BCD_C39_WIDE_BAR * $xres * 3; + $StopSize = BCD_C39_NARROW_BAR * $xres * 6 + BCD_C39_WIDE_BAR * $xres * 3; + $CharSize = BCD_C39_NARROW_BAR * $xres * 6 + BCD_C39_WIDE_BAR * $xres * 3; /* Same for all chars */ + + return $CharSize * $len + $StartSize + $StopSize + /* Space between chars */ BCD_C39_NARROW_BAR * $xres * ($len-1); + } + + /** + * Draws the start code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStart($DrawPos, $yPos, $ySize, $xres) { + /* Start code is '*' */ + $narrow = BCD_C39_NARROW_BAR * $xres; + $wide = BCD_C39_WIDE_BAR * $xres; + $this->DrawSingleBar($DrawPos, $yPos, $narrow , $ySize); + $DrawPos += $narrow; + $DrawPos += $wide; + $this->DrawSingleBar($DrawPos, $yPos, $narrow , $ySize); + $DrawPos += $narrow; + $DrawPos += $narrow; + $this->DrawSingleBar($DrawPos, $yPos, $wide , $ySize); + $DrawPos += $wide; + $DrawPos += $narrow; + $this->DrawSingleBar($DrawPos, $yPos, $wide , $ySize); + $DrawPos += $wide; + $DrawPos += $narrow; + $this->DrawSingleBar($DrawPos, $yPos, $narrow, $ySize); + $DrawPos += $narrow; + $DrawPos += $narrow; /* Space between chars */ + return $DrawPos; + } + + /** + * Draws the stop code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStop($DrawPos, $yPos, $ySize, $xres) { + /* Stop code is '*' */ + $narrow = BCD_C39_NARROW_BAR * $xres; + $wide = BCD_C39_WIDE_BAR * $xres; + $this->DrawSingleBar($DrawPos, $yPos, $narrow , $ySize); + $DrawPos += $narrow; + $DrawPos += $wide; + $this->DrawSingleBar($DrawPos, $yPos, $narrow , $ySize); + $DrawPos += $narrow; + $DrawPos += $narrow; + $this->DrawSingleBar($DrawPos, $yPos, $wide , $ySize); + $DrawPos += $wide; + $DrawPos += $narrow; + $this->DrawSingleBar($DrawPos, $yPos, $wide , $ySize); + $DrawPos += $wide; + $DrawPos += $narrow; + $this->DrawSingleBar($DrawPos, $yPos, $narrow, $ySize); + $DrawPos += $narrow; + return $DrawPos; + } + + /** + * Draws the barcode object. + * @param int $xres Horizontal resolution. + * @return bool true in case of success. + */ + function DrawObject($xres) { + $len = strlen($this->mValue); + + $narrow = BCD_C39_NARROW_BAR * $xres; + $wide = BCD_C39_WIDE_BAR * $xres; + + if (($size = $this->GetSize($xres))==0) { + return false; + } + + $cPos = 0; + if ($this->mStyle & BCS_ALIGN_CENTER) $sPos = (integer)(($this->mWidth - $size ) / 2); + else if ($this->mStyle & BCS_ALIGN_RIGHT) $sPos = $this->mWidth - $size; + else $sPos = 0; + + /* Total height of bar code -Bars only- */ + if ($this->mStyle & BCS_DRAW_TEXT) $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2 - $this->GetFontHeight($this->mFont); + else $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2; + + /* Draw text */ + if ($this->mStyle & BCS_DRAW_TEXT) { + if ($this->mStyle & BCS_STRETCH_TEXT) { + for ($i=0;$i<$len;$i++) { + $this->DrawChar($this->mFont, $sPos+($narrow*6+$wide*3)+($size/$len)*$i, + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET, $this->mValue[$i]); + } + } else {/* Center */ + $text_width = $this->GetFontWidth($this->mFont) * strlen($this->mValue); + $this->DrawText($this->mFont, $sPos+(($size-$text_width)/2)+($narrow*6+$wide*3), + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET, $this->mValue); + } + } + + $DrawPos = $this->DrawStart($sPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + do { + $c = $this->GetCharIndex($this->mValue[$cPos]); + $cset = $this->mCharSet[$c]; + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, ($cset[0] == '0') ? $narrow : $wide , $ysize); + $DrawPos += ($cset[0] == '0') ? $narrow : $wide; + $DrawPos += ($cset[1] == '0') ? $narrow : $wide; + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, ($cset[2] == '0') ? $narrow : $wide , $ysize); + $DrawPos += ($cset[2] == '0') ? $narrow : $wide; + $DrawPos += ($cset[3] == '0') ? $narrow : $wide; + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, ($cset[4] == '0') ? $narrow : $wide , $ysize); + $DrawPos += ($cset[4] == '0') ? $narrow : $wide; + $DrawPos += ($cset[5] == '0') ? $narrow : $wide; + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, ($cset[6] == '0') ? $narrow : $wide , $ysize); + $DrawPos += ($cset[6] == '0') ? $narrow : $wide; + $DrawPos += ($cset[7] == '0') ? $narrow : $wide; + $this->DrawSingleBar($DrawPos, BCD_DEFAULT_MAR_Y1, ($cset[8] == '0') ? $narrow : $wide , $ysize); + $DrawPos += ($cset[8] == '0') ? $narrow : $wide; + $DrawPos += $narrow; /* Space between chars */ + $cPos++; + } while ($cPos<$len); + $DrawPos = $this->DrawStop($DrawPos, BCD_DEFAULT_MAR_Y1 , $ysize, $xres); + return true; + } +} + +//============================================================+ +// END OF FILE +//============================================================+ +?> \ No newline at end of file diff --git a/lib/tcpdf/barcode/i25object.php b/lib/tcpdf/barcode/i25object.php new file mode 100755 index 0000000000..3e589597c3 --- /dev/null +++ b/lib/tcpdf/barcode/i25object.php @@ -0,0 +1,217 @@ +BarcodeObject($Width, $Height, $Style); + $this->mValue = $Value; + $this->mCharSet = array ( + /* 0 */ "00110", + /* 1 */ "10001", + /* 2 */ "01001", + /* 3 */ "11000", + /* 4 */ "00101", + /* 5 */ "10100", + /* 6 */ "01100", + /* 7 */ "00011", + /* 8 */ "10010", + /* 9 */ "01010" + ); + } + + /** + * Returns barcode size. + * @param int $xres Horizontal resolution. + * @return barcode size. + * @access private + */ + function GetSize($xres) { + $len = strlen($this->mValue); + + if ($len == 0) { + $this->mError = "Null value"; + return false; + } + + for ($i=0;$i<$len;$i++) { + if ((ord($this->mValue[$i])<48) || (ord($this->mValue[$i])>57)) { + $this->mError = "I25 is numeric only"; + return false; + } + } + + if (($len%2) != 0) { + $this->mError = "The length of barcode value must be even"; + return false; + } + $StartSize = BCD_I25_NARROW_BAR * 4 * $xres; + $StopSize = BCD_I25_WIDE_BAR * $xres + 2 * BCD_I25_NARROW_BAR * $xres; + $cPos = 0; + $sPos = 0; + do { + $c1 = $this->mValue[$cPos]; + $c2 = $this->mValue[$cPos+1]; + $cset1 = $this->mCharSet[$c1]; + $cset2 = $this->mCharSet[$c2]; + + for ($i=0;$i<5;$i++) { + $type1 = ($cset1[$i]==0) ? (BCD_I25_NARROW_BAR * $xres) : (BCD_I25_WIDE_BAR * $xres); + $type2 = ($cset2[$i]==0) ? (BCD_I25_NARROW_BAR * $xres) : (BCD_I25_WIDE_BAR * $xres); + $sPos += ($type1 + $type2); + } + $cPos+=2; + } while ($cPos<$len); + + return $sPos + $StartSize + $StopSize; + } + + /** + * Draws the start code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStart($DrawPos, $yPos, $ySize, $xres) { + /* Start code is "0000" */ + $this->DrawSingleBar($DrawPos, $yPos, BCD_I25_NARROW_BAR * $xres , $ySize); + $DrawPos += BCD_I25_NARROW_BAR * $xres; + $DrawPos += BCD_I25_NARROW_BAR * $xres; + $this->DrawSingleBar($DrawPos, $yPos, BCD_I25_NARROW_BAR * $xres , $ySize); + $DrawPos += BCD_I25_NARROW_BAR * $xres; + $DrawPos += BCD_I25_NARROW_BAR * $xres; + return $DrawPos; + } + + /** + * Draws the stop code. + * @param int $DrawPos Drawing position. + * @param int $yPos Vertical position. + * @param int $ySize Vertical size. + * @param int $xres Horizontal resolution. + * @return int drawing position. + * @access private + */ + function DrawStop($DrawPos, $yPos, $ySize, $xres) { + /* Stop code is "100" */ + $this->DrawSingleBar($DrawPos, $yPos, BCD_I25_WIDE_BAR * $xres , $ySize); + $DrawPos += BCD_I25_WIDE_BAR * $xres; + $DrawPos += BCD_I25_NARROW_BAR * $xres; + $this->DrawSingleBar($DrawPos, $yPos, BCD_I25_NARROW_BAR * $xres , $ySize); + $DrawPos += BCD_I25_NARROW_BAR * $xres; + return $DrawPos; + } + + /** + * Draws the barcode object. + * @param int $xres Horizontal resolution. + * @return bool true in case of success. + */ + function DrawObject($xres) { + $len = strlen($this->mValue); + + if (($size = $this->GetSize($xres))==0) { + return false; + } + + $cPos = 0; + + if ($this->mStyle & BCS_DRAW_TEXT) $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2 - $this->GetFontHeight($this->mFont); + else $ysize = $this->mHeight - BCD_DEFAULT_MAR_Y1 - BCD_DEFAULT_MAR_Y2; + + if ($this->mStyle & BCS_ALIGN_CENTER) $sPos = (integer)(($this->mWidth - $size ) / 2); + else if ($this->mStyle & BCS_ALIGN_RIGHT) $sPos = $this->mWidth - $size; + else $sPos = 0; + + if ($this->mStyle & BCS_DRAW_TEXT) { + if ($this->mStyle & BCS_STRETCH_TEXT) { + /* Stretch */ + for ($i=0;$i<$len;$i++) { + $this->DrawChar($this->mFont, $sPos+BCD_I25_NARROW_BAR*4*$xres+($size/$len)*$i, + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET , $this->mValue[$i]); + } + }else {/* Center */ + $text_width = $this->GetFontWidth($this->mFont) * strlen($this->mValue); + $this->DrawText($this->mFont, $sPos+(($size-$text_width)/2)+(BCD_I25_NARROW_BAR*4*$xres), + $ysize + BCD_DEFAULT_MAR_Y1 + BCD_DEFAULT_TEXT_OFFSET, $this->mValue); + } + } + + $sPos = $this->DrawStart($sPos, BCD_DEFAULT_MAR_Y1, $ysize, $xres); + do { + $c1 = $this->mValue[$cPos]; + $c2 = $this->mValue[$cPos+1]; + $cset1 = $this->mCharSet[$c1]; + $cset2 = $this->mCharSet[$c2]; + + for ($i=0;$i<5;$i++) { + $type1 = ($cset1[$i]==0) ? (BCD_I25_NARROW_BAR * $xres) : (BCD_I25_WIDE_BAR * $xres); + $type2 = ($cset2[$i]==0) ? (BCD_I25_NARROW_BAR * $xres) : (BCD_I25_WIDE_BAR * $xres); + $this->DrawSingleBar($sPos, BCD_DEFAULT_MAR_Y1, $type1 , $ysize); + $sPos += ($type1 + $type2); + } + $cPos+=2; + } while ($cPos<$len); + $sPos = $this->DrawStop($sPos, BCD_DEFAULT_MAR_Y1, $ysize, $xres); + return true; + } +} + +//============================================================+ +// END OF FILE +//============================================================+ +?> \ No newline at end of file diff --git a/lib/tcpdf/barcode/image.php b/lib/tcpdf/barcode/image.php new file mode 100755 index 0000000000..056eace288 --- /dev/null +++ b/lib/tcpdf/barcode/image.php @@ -0,0 +1,88 @@ +SetFont($_REQUEST['font']); + $obj->DrawObject($_REQUEST['xres']); + $obj->FlushObject(); + $obj->DestroyObject(); + unset($obj); /* clean */ +} + +//============================================================+ +// END OF FILE +//============================================================+ +?> \ No newline at end of file diff --git a/lib/yui/tabview/assets/tabs.css b/lib/yui/tabview/assets/tabs.css new file mode 100755 index 0000000000..da8ef13b60 --- /dev/null +++ b/lib/yui/tabview/assets/tabs.css @@ -0,0 +1,66 @@ +/* default space between tabs */ +.yui-navset-top .yui-nav li, .yui-navset-bottom .yui-nav li { + margin-right:0.5em; /* horizontal tabs */ +} +.yui-navset-left .yui-nav li, .yui-navset-right .yui-nav li { + margin-bottom:0.5em; /* vertical tabs */ +} + +.yui-navset .yui-nav li em { padding:.5em; } /* default tab padding */ + +/* default width for side tabs */ +.yui-navset-left .yui-nav, .yui-navset-right .yui-nav { width:6em; } +.yui-navset-left { padding-left:6em; } /* map to nav width */ +.yui-navset-right { padding-right:6em; } /* ditto */ + +/* core */ + +.yui-nav, .yui-nav li { + margin:0; + padding:0; + list-style:none; +} +.yui-navset li em { font-style:normal; } + +.yui-navset { + position:relative; /* contain absolute positioned tabs (left/right) */ + zoom:1; +} + +.yui-navset .yui-content { zoom:1; } + +.yui-navset-top .yui-nav li, .yui-navset-bottom .yui-nav li { + display:inline-block; + display:-moz-inline-stack; + *display:inline; /* IE */ + vertical-align:bottom; /* safari: for overlap */ + cursor:pointer; /* gecko: due to -moz-inline-stack on anchor */ + zoom:1; /* IE: kill space between horizontal tabs */ +} + +.yui-navset .yui-nav a { + outline:0; /* gecko: keep from shifting */ +} + +.yui-navset .yui-nav a { position:relative; } /* IE: to allow overlap */ + +.yui-navset .yui-nav li a { + display:block; + zoom:1; +} + +.yui-navset-top .yui-nav li a, .yui-navset-bottom .yui-nav li a { + display:inline-block; + vertical-align:bottom; /* safari: for overlap */ +} + +.yui-navset-bottom .yui-nav li a { + vertical-align:text-top; /* for inline overlap (reverse for Op border bug) */ +} + +.yui-navset .yui-nav li a em { display:block; } + +/* position left and right oriented tabs */ +.yui-navset-left .yui-nav, .yui-navset-right .yui-nav { position:absolute; z-index:1; } +.yui-navset-left .yui-nav { left:0; } +.yui-navset-right .yui-nav { right:0; } -- 2.39.5