UNPKG

cnf-barcode

Version:
43 lines (34 loc) 929 B
// 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() { let z = this.number; let 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 };