12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // 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};
|