Javascript code by Birger Nielsen to produce a Code 128 barcode using 2 images
(one a white pixel, the other a black pixel)
Rescued from
http://www.246.dk/code128.html
which has been taken down.
<script type="text/javascript">
<!--
{
value = new Array(
' ','!','"','#','$','%',
'&',"'",'(',')','*','+',
',','-','.','/','0','1',
'2','3','4','5','6','7',
'8','9',':',';','<','=',
'>','?','@','A','B','C',
'D','E','F','G','H','I',
'J','K','L','M','N','O',
'P','Q','R','S','T','U',
'V','W','X','Y','Z','[',
'\\',']','^','_','`','a',
'b','c','d','e','f','g',
'h','i','j','k','l','m',
'n','o','p','q','r','s',
't','u','v','w','x','y',
'z','{','|','}','~','DEL',
'FNC3', 'FNC2', 'SHIFT', 'CODE C', 'FNC4' , 'CODE A',
'FNC1'
);
code128 = new Array(
'212222','222122','222221','121223','121322','131222',
'122213','122312','132212','221213','221312','231212',
'112232','122132','122231','113222','123122','123221',
'223211','221132','221231','213212','223112','312131',
'311222','321122','321221','312212','312212','322112',
'322211','212123','232121','111323','131123','131321',
'112313','132113','132311','211313','231113','231311',
'112133','112331','132131','113123','113321','133121',
'313121','211331','231131','213113','213311','213131',
'311123','311321','331121','312113','312311','332111',
'314111','221411','431111','111224','111422','121124',
'121421','141122','141221','112214','112412','122114',
'122411','142112','142211','241211','221114','413111',
'241112','134111','111242','121142','121241','114212',
'124112','124211','411212','421112','421211','212141',
'214121','412121','111143','111341','131141','114113',
'114311','411113','411311','113141','114131','311141',
'411131'
)
barcode=prompt("String to transform into Code128","");
barcodeok = (barcode != null);
if (barcodeok) barcodeok = (barcode != "");
if (barcodeok) {
chksum = 104;
code = barcode;
m = 1;
for (i = 0; i < barcode.length; i++) {
v = -1;
for (j = 0; j < value.length; j++) {
if (value[j] == barcode.charAt(i)) {
v = j;
}
}
chksum += m * v;
m++;
}
chksum = chksum % 103;
barcode = barcode + value[chksum];
wstr = "";
for (i = 0; i < barcode.length; i++) {
v = -1;
for (j = 0; j < value.length; j++) {
if (value[j] == barcode.charAt(i)) {
v = j;
}
}
wstr += code128[v];
}
wstr = "211214" + wstr + "2331112";
l = "\x3C"; g = "\x3E";
astr = l + 'html' + g + "\n" + l + 'head' + g + "\n" +
l + 'title' + g + code + l + '/title' + g + "\n" +
l + '/head' + g + "\n";
astr += l + 'body' + g + "\n";
astr += l + 'table border=0 cellspacing=0 cellpadding=0' + g + "\n" +
l + 'tr' + g;
for (i = 0; i < wstr.length; i++) {
for (j = 0; j < wstr.charAt(i); j++) {
astr += l + 'td' + g + l +
'img src="http://www.246.dk/Pbc-' +
(1 - i%2) + '.png" alt="' +
(1 - i%2) + '"' + g + l + '/td' + g + "\n";
}
}
astr += l + '/tr' + g + "\n";
astr += l + 'caption' + g + code + l + '/caption' + g + "\n";
astr += l + '/table' + g + "\n" + l + '/body' + g + "\n" + l + '/html' + g + "\n";
aPopUp= window.open('','code', 'toolbar=yes,menubar=yes,width=500,height=60');
aPopUp.document.write(astr);
aPopUp.document.close();
}
}
// -->
</script>