123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // Encoding specification:
- // http://www.barcodeisland.com/codabar.phtml
- import Barcode from "../Barcode.js";
- class codabar extends Barcode{
- constructor(data, options){
- if (data.search(/^[0-9\-\$\:\.\+\/]+$/) === 0) {
- data = "A" + data + "A";
- }
- super(data.toUpperCase(), options);
- this.text = this.options.text || this.text.replace(/[A-D]/g, '');
- }
- valid(){
- return this.data.search(/^[A-D][0-9\-\$\:\.\+\/]+[A-D]$/) !== -1;
- }
- encode(){
- var result = [];
- var encodings = this.getEncodings();
- for(var i = 0; i < this.data.length; i++){
- result.push(encodings[this.data.charAt(i)]);
- // for all characters except the last, append a narrow-space ("0")
- if (i !== this.data.length - 1) {
- result.push("0");
- }
- }
- return {
- text: this.text,
- data: result.join('')
- };
- }
- getEncodings(){
- return {
- "0": "101010011",
- "1": "101011001",
- "2": "101001011",
- "3": "110010101",
- "4": "101101001",
- "5": "110101001",
- "6": "100101011",
- "7": "100101101",
- "8": "100110101",
- "9": "110100101",
- "-": "101001101",
- "$": "101100101",
- ":": "1101011011",
- "/": "1101101011",
- ".": "1101101101",
- "+": "1011011011",
- "A": "1011001001",
- "B": "1001001011",
- "C": "1010010011",
- "D": "1010011001"
- };
- }
- }
- export {codabar};
|