Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting ESCPOS commands instead of Uint8Array of bytes #27

Open
umutesen opened this issue Jul 24, 2019 · 4 comments
Open

Getting ESCPOS commands instead of Uint8Array of bytes #27

umutesen opened this issue Jul 24, 2019 · 4 comments

Comments

@umutesen
Copy link

The encode appears to generate an Uint8Array array containing all the bytes. How can I generate ESC/POS commands instead of the byte array?

@bakrianoo
Copy link

I am searching for this feature too.

@bakrianoo
Copy link

@umutesen I found a solution which might help you
https://www.npmjs.com/package/jszpl

@waweru-kamau
Copy link

waweru-kamau commented Jan 6, 2021

I found a small function to handle decoding Uint8Array:

function Utf8ArrayToStr(array) {
    var out, i, len, c;
    var char2, char3;

    out = "";
    len = array.length;
    i = 0;
    while(i < len) {
    c = array[i++];
    switch(c >> 4)
    { 
      case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
        // 0xxxxxxx
        out += String.fromCharCode(c);
        break;
      case 12: case 13:
        // 110x xxxx   10xx xxxx
        char2 = array[i++];
        out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
        break;
      case 14:
        // 1110 xxxx  10xx xxxx  10xx xxxx
        char2 = array[i++];
        char3 = array[i++];
        out += String.fromCharCode(((c & 0x0F) << 12) |
                       ((char2 & 0x3F) << 6) |
                       ((char3 & 0x3F) << 0));
        break;
    }
    }

    return out;
}

Source here

@alesrosina
Copy link

You could also do it a bit easier:

const escpos = new EscPosEncoder();

const printValue = escpos.initialize()
       .line('This is a test line')
       .encode();

// this is a string representation
const result = Buffer.from(printValue.buffer).toString();
      

If you are using this from browser, then I recomend also using tihs lib: https://github.com/feross/buffer

@NielsLeenheer NielsLeenheer transferred this issue from NielsLeenheer/EscPosEncoder Sep 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants