View File Name : jquery-barcode.js
";
var bar1 = "
";
var len, current;
for(var y=0; y
0){
content += (current == '0' ? bar0 : bar1).replace("&W", len * mw);
}
}
if (settings.showHRI){
content += ""+hri+"
";
}
this.resize($container, mw * columns).html(content);
},
// css 1D barcode renderer
digitToCss: function($container, settings, digit, hri){
var w = barcode.intval(settings.barWidth);
var h = barcode.intval(settings.barHeight);
this.digitToCssRenderer($container, settings, this.bitStringTo2DArray(digit), hri, w, h);
},
// css 2D barcode renderer
digitToCss2D: function($container, settings, digit, hri){
var s = barcode.intval(settings.moduleSize);
this.digitToCssRenderer($container, settings, digit, hri, s, s);
},
// svg barcode renderer
digitToSvgRenderer: function($container, settings, digit, hri, mw, mh){
var lines = digit.length;
var columns = digit[0].length;
var width = mw * columns;
var height = mh * lines;
if (settings.showHRI){
var fontSize = barcode.intval(settings.fontSize);
height += barcode.intval(settings.marginHRI) + fontSize;
}
// svg header
var svg = '';
// create a dom object, flush container and add object to the container
var object = document.createElement('object');
object.setAttribute('type', 'image/svg+xml');
object.setAttribute('data', 'data:image/svg+xml,'+ svg);
this.resize($container, width).append(object);
},
// svg 1D barcode renderer
digitToSvg: function($container, settings, digit, hri){
var w = barcode.intval(settings.barWidth);
var h = barcode.intval(settings.barHeight);
this.digitToSvgRenderer($container, settings, this.bitStringTo2DArray(digit), hri, w, h);
},
// svg 2D barcode renderer
digitToSvg2D: function($container, settings, digit, hri){
var s = barcode.intval(settings.moduleSize);
this.digitToSvgRenderer($container, settings, digit, hri, s, s);
},
// canvas barcode renderer
digitToCanvasRenderer : function($container, settings, digit, hri, xi, yi, mw, mh){
var canvas = $container.get(0);
if ( !canvas || !canvas.getContext ) return; // not compatible
var lines = digit.length;
var columns = digit[0].length;
var ctx = canvas.getContext('2d');
ctx.lineWidth = 1;
ctx.lineCap = 'butt';
ctx.fillStyle = settings.bgColor;
ctx.fillRect (xi, yi, columns * mw, lines * mh);
ctx.fillStyle = settings.color;
for(var y=0; y 0) && (current == '1') ){
ctx.fillRect (xi + (columns - len) * mw, yi + y * mh, mw * len, mh);
}
}
if (settings.showHRI){
var dim = ctx.measureText(hri);
ctx.fillText(hri, xi + Math.floor((columns * mw - dim.width)/2), yi + lines * mh + settings.fontSize + settings.marginHRI);
}
},
// canvas 1D barcode renderer
digitToCanvas: function($container, settings, digit, hri){
var w = barcode.intval(settings.barWidth);
var h = barcode.intval(settings.barHeight);
var x = barcode.intval(settings.posX);
var y = barcode.intval(settings.posY);
this.digitToCanvasRenderer($container, settings, this.bitStringTo2DArray(digit), hri, x, y, w, h);
},
// canvas 2D barcode renderer
digitToCanvas2D: function($container, settings, digit, hri){
var s = barcode.intval(settings.moduleSize);
var x = barcode.intval(settings.posX);
var y = barcode.intval(settings.posY);
this.digitToCanvasRenderer($container, settings, digit, hri, x, y, s, s);
}
};
$.fn.extend({
barcode: function(datas, type, settings) {
var digit = "",
hri = "",
code = "",
crc = true,
rect = false,
b2d = false;
if (typeof(datas) == "string"){
code = datas;
} else if (typeof(datas) == "object"){
code = typeof(datas.code) == "string" ? datas.code : "";
crc = typeof(datas.crc) != "undefined" ? datas.crc : true;
rect = typeof(datas.rect) != "undefined" ? datas.rect : false;
}
if (code == "") return(false);
if (typeof(settings) == "undefined") settings = [];
for(var name in barcode.settings){
if (settings[name] == undefined) settings[name] = barcode.settings[name];
}
switch(type){
case "std25":
case "int25":
digit = barcode.i25.getDigit(code, crc, type);
hri = barcode.i25.compute(code, crc, type);
break;
case "ean8":
case "ean13":
digit = barcode.ean.getDigit(code, type);
hri = barcode.ean.compute(code, type);
break;
case "upc":
digit = barcode.upc.getDigit(code);
hri = barcode.upc.compute(code);
break;
case "code11":
digit = barcode.code11.getDigit(code);
hri = code;
break;
case "code39":
digit = barcode.code39.getDigit(code);
hri = code;
break;
case "code93":
digit = barcode.code93.getDigit(code, crc);
hri = code;
break;
case "code128":
digit = barcode.code128.getDigit(code);
hri = code;
break;
case "codabar":
digit = barcode.codabar.getDigit(code);
hri = code;
break;
case "msi":
digit = barcode.msi.getDigit(code, crc);
hri = barcode.msi.compute(code, crc);
break;
case "datamatrix":
digit = barcode.datamatrix.getDigit(code, rect);
hri = code;
b2d = true;
break;
}
if (digit.length == 0) return($(this));
// Quiet Zone
if ( !b2d && settings.addQuietZone) digit = "0000000000" + digit + "0000000000";
var $this = $(this);
var fname = 'digitTo' + settings.output.charAt(0).toUpperCase() + settings.output.substr(1) + (b2d ? '2D' : '');
if (typeof(barcode[fname]) == 'function') {
barcode[fname]($this, settings, digit, hri);
}
return($this);
}
});
}(jQuery));