mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-05-14 10:43:56 -04:00
Fix receipt barcodes (revert to the old script)
This commit is contained in:
@@ -11,5 +11,10 @@ class Barcode extends Secure_area
|
||||
{
|
||||
$this->load->view('barcode');
|
||||
}
|
||||
|
||||
function receipt()
|
||||
{
|
||||
$this->load->view('receipt_barcode');
|
||||
}
|
||||
}
|
||||
?>
|
||||
362
application/views/receipt_barcode.php
Normal file
362
application/views/receipt_barcode.php
Normal file
@@ -0,0 +1,362 @@
|
||||
<?php
|
||||
/*===========================================================================*/
|
||||
/* PHP Barcode Image Generator v1.0 [9/28/2000]
|
||||
Copyright (C)2000 by Charles J. Scheffold - cs@sid6581.net
|
||||
|
||||
UPDATE 15/11/2014 by J.Peelaerts
|
||||
Show text only if content is not empty
|
||||
---
|
||||
UPDATE 2/9/2013 by C.Scheffold
|
||||
Now compatible with POST requests when register_globals is off
|
||||
---
|
||||
UPDATE 5/10/2005 by C.Scheffold
|
||||
Changed FontHeight to -2 if no text is to be displayed (this eliminates
|
||||
the whitespace at the bottom of the image)
|
||||
---
|
||||
UPDATE 03/12/2005 by C.Scheffold
|
||||
Added '-' character to translation table
|
||||
---
|
||||
UPDATE 09/21/2002 by Laurent NAVARRO - ln@altidev.com - http://www.altidev.com
|
||||
Updated to be compatible with register_globals = off and on
|
||||
---
|
||||
UPDATE 4/6/2001 - Important Note! This script was written with the assumption
|
||||
that "register_globals = On" is defined in your PHP.INI file! It will not
|
||||
work as-is and as described unless this is set. My PHP came with this
|
||||
enabled by default, but apparently many people have turned it off. Either
|
||||
turn it on or modify the startup code to pull the CGI variables in the old
|
||||
fashioned way (from the HTTP* arrays). If you just want to use the functions
|
||||
and pass the variables yourself, well then go on with your bad self.
|
||||
---
|
||||
|
||||
This code is hereby released into the public domain.
|
||||
Use it, abuse it, just don't get caught using it for something stupid.
|
||||
|
||||
|
||||
The only barcode type currently supported is Code 3 of 9. Don't ask about
|
||||
adding support for others! This is a script I wrote for my own use. I do
|
||||
plan to add more types as time permits but currently I only require
|
||||
Code 3 of 9 for my purposes. Just about every scanner on the market today
|
||||
can read it.
|
||||
|
||||
|
||||
PARAMETERS:
|
||||
-----------
|
||||
$barcode = [required] The barcode you want to generate
|
||||
|
||||
|
||||
$type = (default=0) It's 0 for Code 3 of 9 (the only one supported)
|
||||
|
||||
$width = (default=160) Width of image in pixels. The image MUST be wide
|
||||
enough to handle the length of the given value. The default
|
||||
value will probably be able to display about 6 digits. If you
|
||||
get an error message, make it wider!
|
||||
|
||||
|
||||
$height = (default=80) Height of image in pixels
|
||||
|
||||
$format = (default=jpeg) Can be "jpeg", "png", or "gif"
|
||||
|
||||
$quality = (default=100) For JPEG only: ranges from 0-100
|
||||
|
||||
|
||||
$text = (default=1) 0 to disable text below barcode, >=1 to enable
|
||||
|
||||
|
||||
NOTE: You must have GD-1.8 or higher compiled into PHP
|
||||
in order to use PNG and JPEG. GIF images only work with
|
||||
GD-1.5 and lower. (http://www.boutell.com)
|
||||
|
||||
|
||||
ANOTHER NOTE: If you actually intend to print the barcodes
|
||||
and scan them with a scanner, I highly recommend choosing
|
||||
JPEG with a quality of 100. Most browsers can't seem to print
|
||||
a PNG without mangling it beyond recognition.
|
||||
|
||||
|
||||
USAGE EXAMPLES FOR ANY PLAIN OLD HTML DOCUMENT:
|
||||
-----------------------------------------------
|
||||
|
||||
|
||||
<IMG SRC="barcode.php?barcode=HELLO&quality=75">
|
||||
|
||||
|
||||
<IMG SRC="barcode.php?barcode=123456&width=320&height=200">
|
||||
|
||||
|
||||
*/
|
||||
/*=============================================================================*/
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Startup code
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
if(isset($_GET["text"])) $text=$_GET["text"];
|
||||
if(isset($_GET["format"])) $format=$_GET["format"];
|
||||
if(isset($_GET["quality"])) $quality=$_GET["quality"];
|
||||
if(isset($_GET["width"])) $width=$_GET["width"];
|
||||
if(isset($_GET["height"])) $height=$_GET["height"];
|
||||
if(isset($_GET["type"])) $type=$_GET["type"];
|
||||
if(isset($_GET["barcode"])) $barcode=$_GET["barcode"];
|
||||
|
||||
|
||||
if(isset($_POST["text"])) $text=$_POST["text"];
|
||||
if(isset($_POST["format"])) $format=$_POST["format"];
|
||||
if(isset($_POST["quality"])) $quality=$_POST["quality"];
|
||||
if(isset($_POST["width"])) $width=$_POST["width"];
|
||||
if(isset($_POST["height"])) $height=$_POST["height"];
|
||||
if(isset($_POST["type"])) $type=$_POST["type"];
|
||||
if(isset($_POST["barcode"])) $barcode=$_POST["barcode"];
|
||||
|
||||
|
||||
if (!isset ($text)) $text = 1;
|
||||
if (!isset ($type)) $type = 1;
|
||||
if (empty ($quality)) $quality = 100;
|
||||
if (empty ($width)) $width = 160;
|
||||
if (empty ($height)) $height = 80;
|
||||
if (!empty ($format)) $format = strtoupper ($format);
|
||||
else $format="PNG";
|
||||
|
||||
|
||||
switch ($type)
|
||||
{
|
||||
default:
|
||||
$type = 1;
|
||||
case 1:
|
||||
Barcode39 ($barcode, $width, $height, $quality, $format, $text);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Generate a Code 3 of 9 barcode
|
||||
//-----------------------------------------------------------------------------
|
||||
function Barcode39 ($barcode, $width, $height, $quality, $format, $text)
|
||||
{
|
||||
switch ($format)
|
||||
{
|
||||
default:
|
||||
$format = "JPEG";
|
||||
case "JPEG":
|
||||
header ("Content-type: image/jpeg");
|
||||
break;
|
||||
case "PNG":
|
||||
header ("Content-type: image/png");
|
||||
break;
|
||||
case "GIF":
|
||||
header ("Content-type: image/gif");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$im = ImageCreate ($width, $height)
|
||||
or die ("Cannot Initialize new GD image stream");
|
||||
$White = ImageColorAllocate ($im, 255, 255, 255);
|
||||
$Black = ImageColorAllocate ($im, 0, 0, 0);
|
||||
//ImageColorTransparent ($im, $White);
|
||||
ImageInterLace ($im, 1);
|
||||
|
||||
|
||||
|
||||
$NarrowRatio = 20;
|
||||
$WideRatio = 55;
|
||||
$QuietRatio = 35;
|
||||
|
||||
|
||||
$nChars = (strlen($barcode)+2) * ((6 * $NarrowRatio) + (3 * $WideRatio) + ($QuietRatio));
|
||||
$Pixels = $width / $nChars;
|
||||
$NarrowBar = (int)(20 * $Pixels);
|
||||
$WideBar = (int)(55 * $Pixels);
|
||||
$QuietBar = (int)(35 * $Pixels);
|
||||
|
||||
|
||||
$ActualWidth = (($NarrowBar * 6) + ($WideBar*3) + $QuietBar) * (strlen ($barcode)+2);
|
||||
|
||||
if (($NarrowBar == 0) || ($NarrowBar == $WideBar) || ($NarrowBar == $QuietBar) || ($WideBar == 0) || ($WideBar == $QuietBar) || ($QuietBar == 0))
|
||||
{
|
||||
ImageString ($im, 1, 0, 0, "Image is too small!", $Black);
|
||||
OutputImage ($im, $format, $quality);
|
||||
exit;
|
||||
}
|
||||
|
||||
$CurrentBarX = (int)(($width - $ActualWidth) / 2);
|
||||
$Color = $White;
|
||||
$BarcodeFull = "*".strtoupper ($barcode)."*";
|
||||
settype ($BarcodeFull, "string");
|
||||
|
||||
$FontNum = 3;
|
||||
$FontHeight = ImageFontHeight ($FontNum);
|
||||
$FontWidth = ImageFontWidth ($FontNum);
|
||||
if (!empty($text))
|
||||
{
|
||||
$CenterLoc = (int)(($width) / 2) - (int)(($FontWidth * strlen($text)) / 2);
|
||||
ImageString ($im, $FontNum, $CenterLoc, $height-$FontHeight, "$text", $Black);
|
||||
}
|
||||
else
|
||||
{
|
||||
$FontHeight=-2;
|
||||
}
|
||||
|
||||
|
||||
for ($i=0; $i<strlen($BarcodeFull); $i++)
|
||||
{
|
||||
$StripeCode = Code39 ($BarcodeFull[$i]);
|
||||
|
||||
|
||||
for ($n=0; $n < 9; $n++)
|
||||
{
|
||||
if ($Color == $White) $Color = $Black;
|
||||
else $Color = $White;
|
||||
|
||||
|
||||
switch ($StripeCode[$n])
|
||||
{
|
||||
case '0':
|
||||
ImageFilledRectangle ($im, $CurrentBarX, 0, $CurrentBarX+$NarrowBar, $height-1-$FontHeight-2, $Color);
|
||||
$CurrentBarX += $NarrowBar;
|
||||
break;
|
||||
|
||||
|
||||
case '1':
|
||||
ImageFilledRectangle ($im, $CurrentBarX, 0, $CurrentBarX+$WideBar, $height-1-$FontHeight-2, $Color);
|
||||
$CurrentBarX += $WideBar;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$Color = $White;
|
||||
ImageFilledRectangle ($im, $CurrentBarX, 0, $CurrentBarX+$QuietBar, $height-1-$FontHeight-2, $Color);
|
||||
$CurrentBarX += $QuietBar;
|
||||
}
|
||||
|
||||
|
||||
OutputImage ($im, $format, $quality);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Output an image to the browser
|
||||
//-----------------------------------------------------------------------------
|
||||
function OutputImage ($im, $format, $quality)
|
||||
{
|
||||
switch ($format)
|
||||
{
|
||||
case "JPEG":
|
||||
ImageJPEG ($im, "", $quality);
|
||||
break;
|
||||
case "PNG":
|
||||
ImagePNG ($im);
|
||||
break;
|
||||
case "GIF":
|
||||
ImageGIF ($im);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Returns the Code 3 of 9 value for a given ASCII character
|
||||
//-----------------------------------------------------------------------------
|
||||
function Code39 ($Asc)
|
||||
{
|
||||
switch ($Asc)
|
||||
{
|
||||
case ' ':
|
||||
return "011000100";
|
||||
case '$':
|
||||
return "010101000";
|
||||
case '%':
|
||||
return "000101010";
|
||||
case '*':
|
||||
return "010010100"; // * Start/Stop
|
||||
case '+':
|
||||
return "010001010";
|
||||
case '|':
|
||||
return "010000101";
|
||||
case '.':
|
||||
return "110000100";
|
||||
case '/':
|
||||
return "010100010";
|
||||
case '-':
|
||||
return "010000101";
|
||||
case '0':
|
||||
return "000110100";
|
||||
case '1':
|
||||
return "100100001";
|
||||
case '2':
|
||||
return "001100001";
|
||||
case '3':
|
||||
return "101100000";
|
||||
case '4':
|
||||
return "000110001";
|
||||
case '5':
|
||||
return "100110000";
|
||||
case '6':
|
||||
return "001110000";
|
||||
case '7':
|
||||
return "000100101";
|
||||
case '8':
|
||||
return "100100100";
|
||||
case '9':
|
||||
return "001100100";
|
||||
case 'A':
|
||||
return "100001001";
|
||||
case 'B':
|
||||
return "001001001";
|
||||
case 'C':
|
||||
return "101001000";
|
||||
case 'D':
|
||||
return "000011001";
|
||||
case 'E':
|
||||
return "100011000";
|
||||
case 'F':
|
||||
return "001011000";
|
||||
case 'G':
|
||||
return "000001101";
|
||||
case 'H':
|
||||
return "100001100";
|
||||
case 'I':
|
||||
return "001001100";
|
||||
case 'J':
|
||||
return "000011100";
|
||||
case 'K':
|
||||
return "100000011";
|
||||
case 'L':
|
||||
return "001000011";
|
||||
case 'M':
|
||||
return "101000010";
|
||||
case 'N':
|
||||
return "000010011";
|
||||
case 'O':
|
||||
return "100010010";
|
||||
case 'P':
|
||||
return "001010010";
|
||||
case 'Q':
|
||||
return "000000111";
|
||||
case 'R':
|
||||
return "100000110";
|
||||
case 'S':
|
||||
return "001000110";
|
||||
case 'T':
|
||||
return "000010110";
|
||||
case 'U':
|
||||
return "110000001";
|
||||
case 'V':
|
||||
return "011000001";
|
||||
case 'W':
|
||||
return "111000000";
|
||||
case 'X':
|
||||
return "010010001";
|
||||
case 'Y':
|
||||
return "110010000";
|
||||
case 'Z':
|
||||
return "011010000";
|
||||
default:
|
||||
return "011000100";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
@@ -103,7 +103,7 @@ if (isset($error_message))
|
||||
<?php echo nl2br($this->config->item('return_policy')); ?>
|
||||
</div>
|
||||
<div id='barcode'>
|
||||
<?php echo "<img src='index.php/barcode?barcode=$receiving_id&text=$receiving_id&width=250&height=50' />"; ?>
|
||||
<?php echo "<img src='index.php/barcode/receipt?barcode=$receiving_id&text=$receiving_id&width=250&height=50' />"; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->load->view("partial/footer"); ?>
|
||||
|
||||
@@ -110,7 +110,7 @@ if (isset($error_message))
|
||||
<?php echo nl2br($this->config->item('return_policy')); ?>
|
||||
</div>
|
||||
<div id='barcode'>
|
||||
<?php echo "<img src='index.php/barcode?barcode=$sale_id&text=$sale_id&width=250&height=50' />"; ?>
|
||||
<?php echo "<img src='index.php/barcode/receipt?barcode=$sale_id&text=$sale_id&width=250&height=50' />"; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php $this->load->view("partial/footer"); ?>
|
||||
|
||||
Reference in New Issue
Block a user