You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.6 KiB
PHP
52 lines
2.6 KiB
PHP
<? /* version 1.1
|
|
Code By Andrew Jackson
|
|
Adapted From Dan Billeci
|
|
dabilleci@hotmail.com
|
|
|
|
USAGE:
|
|
echo bar128( "MyBarCode123" [,Height In Pixels] ); /// PRINTS HTML IMG TABLE OF THE CODE
|
|
Info From: http://www.barcode-1.net/pub/russadam/128code.html
|
|
|
|
*///Define Constants: height is a constant in div.b128 as height of bars
|
|
?>
|
|
<style>
|
|
div.b128{
|
|
border-left: 1px black solid;
|
|
height: 30px;
|
|
}
|
|
</style>
|
|
|
|
<?
|
|
global $char128asc,$char128charWidth;
|
|
$char128asc=' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
|
|
$char128wid = array(
|
|
'212222','222122','222221','121223','121322','131222','122213','122312','132212','221213', // 0-9
|
|
'221312','231212','112232','122132','122231','113222','123122','123221','223211','221132', // 10-19
|
|
'221231','213212','223112','312131','311222','321122','321221','312212','322112','322211', // 20-29
|
|
'212123','212321','232121','111323','131123','131321','112313','132113','132311','211313', // 30-39
|
|
'231113','231311','112133','112331','132131','113123','113321','133121','313121','211331', // 40-49
|
|
'231131','213113','213311','213131','311123','311321','331121','312113','312311','332111', // 50-59
|
|
'314111','221411','431111','111224','111422','121124','121421','141122','141221','112214', // 60-69
|
|
'112412','122114','122411','142112','142211','241211','221114','413111','241112','134111', // 70-79
|
|
'111242','121142','121241','114212','124112','124211','411212','421112','421211','212141', // 80-89
|
|
'214121','412121','111143','111341','131141','114113','114311','411113','411311','113141', // 90-99
|
|
'114131','311141','411131','211412','211214','211232','23311120' ); // 100-106
|
|
|
|
////Define Function
|
|
function bar128($text) { // Part 1, make list of widths
|
|
global $char128asc,$char128wid;
|
|
$w = $char128wid[$sum = 104]; // START symbol
|
|
$onChar=1;
|
|
for($x=0;$x<strlen($text);$x++) // GO THRU TEXT GET LETTERS
|
|
if (!( ($pos = strpos($char128asc,$text[$x])) === false )){ // SKIP NOT FOUND CHARS
|
|
$w.= $char128wid[$pos];
|
|
$sum += $onChar++ * $pos;
|
|
}
|
|
$w.= $char128wid[ $sum % 103 ].$char128wid[106]; //Check Code, then END
|
|
//Part 2, Write rows
|
|
$html="<table cellpadding=0 cellspacing=0><tr>";
|
|
for($x=0;$x<strlen($w);$x+=2) // code 128 widths: black border, then white space
|
|
$html .= "<td><div class=\"b128\" style=\"border-left-width:{$w[$x]};width:{$w[$x+1]}\"></div>";
|
|
//return "$html<tr><td colspan=".strlen($w)." align=center><font family=arial size=2><b>$text</table>";
|
|
return "$html<tr><td colspan=".strlen($w)."</table>";
|
|
}
|