Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/* vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4: *//*** Image_Barcode_postnet class** Renders PostNet barcodes** PHP versions 4** LICENSE: This source file is subject to version 3.0 of the PHP license* that is available through the world-wide-web at the following URI:* http://www.php.net/license/3_0.txt. If you did not receive a copy of* the PHP License and are unable to obtain it through the web, please* send a note to license@php.net so we can mail you a copy immediately.** @category Image* @package Image_Barcode* @author Josef "Jeff" Sipek <jeffpc@optonline.net>* @copyright 2005 Josef "Jeff" Sipek* @license http://www.php.net/license/3_0.txt PHP License 3.0* @version CVS: $Id: postnet.php 304741 2010-10-25 09:14:17Z clockwerx $* @link http://pear.php.net/package/Image_Barcode*//** Note:** The generated barcode must fit the following criteria to be useable* by the USPS scanners:** When printed, the dimensions should be:** tall bar: 1/10 inches = 2.54 mm* short bar: 1/20 inches = 1.27 mm* density: 22 bars/inch = 8.66 bars/cm*/require_once 'Image/Barcode.php';/*** Image_Barcode_postnet class** Package which provides a method to create PostNet barcode using GD library.** @category Image* @package Image_Barcode* @author Josef "Jeff" Sipek <jeffpc@optonline.net>* @copyright 2005 Josef "Jeff" Sipek* @license http://www.php.net/license/3_0.txt PHP License 3.0* @version CVS: $Id: postnet.php 304741 2010-10-25 09:14:17Z clockwerx $* @link http://pear.php.net/package/Image_Barcode*/class Image_Barcode_postnet extends Image_Barcode{/*** Barcode type* @var string*/var $_type = 'postnet';/*** Bar short height** @var integer*/var $_barshortheight = 7;/*** Bar tall height** @var integer*/var $_bartallheight = 15;/*** Bar width / scaling factor** @var integer*/var $_barwidth = 2;/*** Coding map* @var array*/var $_coding_map = array('0' => '11000','1' => '00011','2' => '00101','3' => '00110','4' => '01001','5' => '01010','6' => '01100','7' => '10001','8' => '10010','9' => '10100');/*** Draws a PostNet image barcode** @param string $text A text that should be in the image barcode* @param string $imgtype The image type that will be generated** @return image The corresponding Interleaved 2 of 5 image barcode** @access public** @author Josef "Jeff" Sipek <jeffpc@optonline.net>* @since Image_Barcode 0.3*/function draw($text, $imgtype = 'png'){$text = trim($text);if (!preg_match('/[0-9]/', $text)) {return;}// Calculate the barcode width$barcodewidth = (strlen($text)) * 2 * 5 * $this->_barwidth + $this->_barwidth*3;// Create the image$img = ImageCreate($barcodewidth, $this->_bartallheight);// Alocate the black and white colors$black = ImageColorAllocate($img, 0, 0, 0);$white = ImageColorAllocate($img, 255, 255, 255);// Fill image with white colorimagefill($img, 0, 0, $white);// Initiate x position$xpos = 0;// Draws the leaderimagefilledrectangle($img, $xpos, 0, $xpos + $this->_barwidth - 1, $this->_bartallheight, $black);$xpos += 2*$this->_barwidth;// Draw $text contentsfor ($idx = 0; $idx < strlen($text); $idx++) {$char = substr($text, $idx, 1);for ($baridx = 0; $baridx < 5; $baridx++) {$elementheight = (substr($this->_coding_map[$char], $baridx, 1)) ? 0 : $this->_barshortheight;imagefilledrectangle($img, $xpos, $elementheight, $xpos + $this->_barwidth - 1, $this->_bartallheight, $black);$xpos += 2*$this->_barwidth;}}// Draws the trailerimagefilledrectangle($img, $xpos, 0, $xpos + $this->_barwidth - 1, $this->_bartallheight, $black);$xpos += 2*$this->_barwidth;return $img;} // function create} // class?>