diff options
Diffstat (limited to 'vendor/plugins/rfpdf/lib/barcode/barcode.rb')
-rwxr-xr-x | vendor/plugins/rfpdf/lib/barcode/barcode.rb | 448 |
1 files changed, 448 insertions, 0 deletions
diff --git a/vendor/plugins/rfpdf/lib/barcode/barcode.rb b/vendor/plugins/rfpdf/lib/barcode/barcode.rb new file mode 100755 index 000000000..bb5798118 --- /dev/null +++ b/vendor/plugins/rfpdf/lib/barcode/barcode.rb @@ -0,0 +1,448 @@ +
+#============================================================+
+# File name : barcode.rb
+# Begin : 2002-07-31
+# Last Update : 2005-01-02
+# Author : Karim Mribti [barcode@mribti.com]
+# Version : 1.1 [0.0.8a (original code)]
+# License : GNU LGPL (Lesser General Public License) 2.1
+# http://www.gnu.org/copyleft/lesser.txt
+# Source Code : http://www.mribti.com/barcode/
+#
+# Description : Generic Barcode Render Class for PHP using
+# the GD graphics library.
+#
+# NOTE:
+# This version contains changes by Nicola Asuni:
+# - porting to Ruby
+# - code style and formatting
+# - automatic php documentation in PhpDocumentor Style
+# (www.phpdoc.org)
+# - minor bug fixing
+# - $mCharSet and $mChars variables were added here
+#============================================================+
+
+#
+# Barcode Render Class for PHP using the GD graphics library.
+# @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
+#
+
+# Styles
+# Global
+
+#
+# option: generate barcode border
+#
+define("BCS_BORDER", 1);
+
+#
+# option: use transparent background
+#
+define("BCS_TRANSPARENT", 2);
+
+#
+# option: center barcode
+#
+define("BCS_ALIGN_CENTER", 4);
+
+#
+# option: align left
+#
+define("BCS_ALIGN_LEFT", 8);
+
+#
+# option: align right
+#
+define("BCS_ALIGN_RIGHT", 16);
+
+#
+# option: generate JPEG image
+#
+define("BCS_IMAGE_JPEG", 32);
+
+#
+# option: generate PNG image
+#
+define("BCS_IMAGE_PNG", 64);
+
+#
+# option: draw text
+#
+define("BCS_DRAW_TEXT", 128);
+
+#
+# option: stretch text
+#
+define("BCS_STRETCH_TEXT", 256);
+
+#
+# option: reverse color
+#
+define("BCS_REVERSE_COLOR", 512);
+
+#
+# option: draw check
+# (only for I25 code)
+#
+define("BCS_I25_DRAW_CHECK", 2048);
+
+#
+# set default background color
+#
+define("BCD_DEFAULT_BACKGROUND_COLOR", 0xFFFFFF);
+
+#
+# set default foreground color
+#
+define("BCD_DEFAULT_FOREGROUND_COLOR", 0x000000);
+
+#
+# set default style options
+#
+define("BCD_DEFAULT_STYLE", BCS_BORDER | BCS_ALIGN_CENTER | BCS_IMAGE_PNG);
+
+#
+# set default width
+#
+define("BCD_DEFAULT_WIDTH", 460);
+
+#
+# set default height
+#
+define("BCD_DEFAULT_HEIGHT", 120);
+
+#
+# set default font
+#
+define("BCD_DEFAULT_FONT", 5);
+
+#
+# st default horizontal resolution
+#
+define("BCD_DEFAULT_XRES", 2);
+
+# Margins
+
+#
+# set default margin
+#
+define("BCD_DEFAULT_MAR_Y1", 0);
+
+#
+# set default margin
+#
+define("BCD_DEFAULT_MAR_Y2", 0);
+
+#
+# set default text offset
+#
+define("BCD_DEFAULT_TEXT_OFFSET", 2);
+
+# For the I25 Only
+
+#
+# narrow bar option
+# (only for I25 code)
+#
+define("BCD_I25_NARROW_BAR", 1);
+
+#
+# wide bar option
+# (only for I25 code)
+#
+define("BCD_I25_WIDE_BAR", 2);
+
+# For the C39 Only
+
+#
+# narrow bar option
+# (only for c39 code)
+#
+define("BCD_C39_NARROW_BAR", 1);
+
+#
+# wide bar option
+# (only for c39 code)
+#
+define("BCD_C39_WIDE_BAR", 2);
+
+# For Code 128
+
+#
+# set type 1 bar
+# (only for c128 code)
+#
+define("BCD_C128_BAR_1", 1);
+
+#
+# set type 2 bar
+# (only for c128 code)
+#
+define("BCD_C128_BAR_2", 2);
+
+#
+# set type 3 bar
+# (only for c128 code)
+#
+define("BCD_C128_BAR_3", 3);
+
+#
+# set type 4 bar
+# (only for c128 code)
+#
+define("BCD_C128_BAR_4", 4);
+
+#
+# Barcode Render Class for PHP using the GD graphics library.
+# @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 BarcodeObject {
+ #
+ # @var Image width in pixels.
+ # @access protected
+ #
+ protected $mWidth;
+
+ #
+ # @var Image height in pixels.
+ # @access protected
+ #
+ protected $mHeight;
+
+ #
+ # @var Numeric code for Barcode style.
+ # @access protected
+ #
+ protected $mStyle;
+
+ #
+ # @var Background color.
+ # @access protected
+ #
+ protected $mBgcolor;
+
+ #
+ # @var Brush color.
+ # @access protected
+ #
+ protected $mBrush;
+
+ #
+ # @var Image object.
+ # @access protected
+ #
+ protected $mImg;
+
+ #
+ # @var Numeric code for character font.
+ # @access protected
+ #
+ protected $mFont;
+
+ #
+ # @var Error message.
+ # @access protected
+ #
+ protected $mError;
+
+ #
+ # @var Character Set.
+ # @access protected
+ #
+ protected $mCharSet;
+
+ #
+ # @var Allowed symbols.
+ # @access protected
+ #
+ protected $mChars;
+
+ #
+ # Class Constructor.
+ # @param int $Width Image width in pixels.
+ # @param int $Height Image height in pixels.
+ # @param int $Style Barcode style.
+ #
+ def __construct($Width=BCD_DEFAULT_WIDTH, $Height=BCD_DEFAULT_HEIGHT, $Style=BCD_DEFAULT_STYLE)
+ @mWidth = $Width;
+ @mHeight = $Height;
+ @mStyle = $Style;
+ @mFont = BCD_DEFAULT_FONT;
+ @mImg = ImageCreate(@mWidth, @mHeight);
+ $dbColor = @mStyle & BCS_REVERSE_COLOR ? BCD_DEFAULT_FOREGROUND_COLOR : BCD_DEFAULT_BACKGROUND_COLOR;
+ $dfColor = @mStyle & BCS_REVERSE_COLOR ? BCD_DEFAULT_BACKGROUND_COLOR : BCD_DEFAULT_FOREGROUND_COLOR;
+ @mBgcolor = ImageColorAllocate(@mImg, ($dbColor & 0xFF0000) >> 16,
+ ($dbColor & 0x00FF00) >> 8, $dbColor & 0x0000FF);
+ @mBrush = ImageColorAllocate(@mImg, ($dfColor & 0xFF0000) >> 16,
+ ($dfColor & 0x00FF00) >> 8, $dfColor & 0x0000FF);
+ if (!(@mStyle & BCS_TRANSPARENT))
+ ImageFill(@mImg, @mWidth, @mHeight, @mBgcolor);
+ end
+ end
+
+ #
+ # Class Destructor.
+ # Destroy image object.
+ #
+ def __destructor()
+ @DestroyObject();
+ end
+
+ #
+ # Returns the image object.
+ # @return object image.
+ # @author Nicola Asuni
+ # @since 1.5.2
+ #
+ def getImage()
+ return @mImg;
+ end
+
+ #
+ # Abstract method used to draw the barcode image.
+ # @param int $xres Horizontal resolution.
+ #
+ def DrawObject($xres) {
+ # there is not implementation neded, is simply the asbsract function.#
+ return false;
+ end
+
+ #
+ # Draws the barcode border.
+ # @access protected
+ #
+ protected function DrawBorder()
+ ImageRectangle(@mImg, 0, 0, @mWidth-1, @mHeight-1, @mBrush);
+ end
+
+ #
+ # 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
+ #
+ protected function DrawChar($Font, $xPos, $yPos, $Char)
+ ImageString(@mImg,$Font,$xPos,$yPos,$Char,@mBrush);
+ end
+
+ #
+ # 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
+ #
+ protected function DrawText($Font, $xPos, $yPos, $Char)
+ ImageString(@mImg,$Font,$xPos,$yPos,$Char,@mBrush);
+ end
+
+ #
+ # 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
+ #
+ protected function DrawSingleBar($xPos, $yPos, $xSize, $ySize)
+ if ($xPos>=0 && $xPos<=@mWidth && ($xPos+$xSize)<=@mWidth &&
+ $yPos>=0 && $yPos<=@mHeight && ($yPos+$ySize)<=@mHeight)
+ for ($i=0;$i<$xSize;$i++)
+ ImageLine(@mImg, $xPos+$i, $yPos, $xPos+$i, $yPos+$ySize, @mBrush);
+ end
+ return true;
+ end
+ return false;
+ end
+
+ #
+ # Returns the current error message.
+ # @return string error message.
+ #
+ def GetError()
+ return @mError;
+ end
+
+ #
+ # Returns the font height.
+ # @param int $font font type.
+ # @return int font height.
+ #
+ def GetFontHeight($font)
+ return ImageFontHeight($font);
+ end
+
+ #
+ # Returns the font width.
+ # @param int $font font type.
+ # @return int font width.
+ #
+ def GetFontWidth($font)
+ return ImageFontWidth($font);
+ end
+
+ #
+ # Set font type.
+ # @param int $font font type.
+ #
+ def SetFont($font)
+ @mFont = $font;
+ end
+
+ #
+ # Returns barcode style.
+ # @return int barcode style.
+ #
+ def GetStyle()
+ return @mStyle;
+ end
+
+ #
+ # Set barcode style.
+ # @param int $Style barcode style.
+ #
+ def SetStyle ($Style)
+ @mStyle = $Style;
+ end
+
+ #
+ # Flush the barcode image.
+ #
+ def FlushObject()
+ if ((@mStyle & BCS_BORDER))
+ @DrawBorder();
+ end
+ if (@mStyle & BCS_IMAGE_PNG)
+ Header("Content-Type: image/png");
+ ImagePng(@mImg);
+ elsif (@mStyle & BCS_IMAGE_JPEG)
+ Header("Content-Type: image/jpeg");
+ ImageJpeg(@mImg);
+ end
+ end
+
+ #
+ # Destroy the barcode image.
+ #
+ def DestroyObject()
+ ImageDestroy(@mImg);
+ end
+}
+
+#============================================================+
+# END OF FILE
+#============================================================+
|