// Encoding documentation // http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf import Barcode from "../Barcode.js"; class pharmacode extends Barcode{ constructor(data, options){ super(data, options); this.number = parseInt(data, 10); } encode(){ var z = this.number; var result = ""; // http://i.imgur.com/RMm4UDJ.png // (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34) while(!isNaN(z) && z != 0){ if(z % 2 === 0){ // Even result = "11100" + result; z = (z - 2) / 2; } else{ // Odd result = "100" + result; z = (z - 1) / 2; } } // Remove the two last zeroes result = result.slice(0, -2); return { data: result, text: this.text }; } valid(){ return this.number >= 3 && this.number <= 131070; } } export {pharmacode};