Ionic4 + Capacitor Print Imagen on Thermal Printer

Good morning,

I have an application developed with “ionic 4 + capacitor” and to which I need to add the functionality of printing image on a bluetooth thermal printer, I have tested with the “ionic native” printer, ble and bluetoothserial plugins and I have not achieved anything, it prints me the string literally, the image I have is in svg format and the process I do is convert the base64 string to bytes.buffer before sending it, I don’t know if I’m doing something wrong, I also tried to encode the image in png / jpg and convert base64 to bytes.buffer and print me rare characters.

I attached here the code.

Greetings and thanks

androidPrint() {
        const conection = this.btSerial.connect(this.selected.id).subscribe(() => {
            this.bytes = this.base64ToArrayBuffer(this.base64);
            if (this.bytes !== null && this.bytes !== '' && this.bytes !== undefined) {
                this.loader.presentLoader(true);
                this.btSerial.write(this.bytes).then(() => {
                    this.loader.dismissLoader();
                    conection.unsubscribe();
                });
            }
        }, (err) => {
            this.loader.dismissLoader();
            this.alert.presentAlert({
                header: 'Error',
                subHeader: err.message,
                buttons: ['OK']
            });
        });
    }

    iosPrint() {
        this.ble.connect(this.selected.id).subscribe(() => {
            this.bytes = this.base64ToArrayBuffer(this.base64);
            if (this.bytes !== null && this.bytes !== '' && this.bytes !== undefined) {
                this.loader.presentLoader(true);
                this.ble.write(this.selected.id, '18F0', '2AF1', this.bytes).then(
                    () => {
                        this.loader.dismissLoader();
                    },
                    (err) => {
                        this.loader.dismissLoader();
                        this.alert.presentAlert({
                            header: 'Error',
                            subHeader: err.message,
                            buttons: ['OK']
                        });
                    }
                );
            }
        }, (err) => {
            this.loader.dismissLoader();
            this.alert.presentAlert({
                header: 'Error',
                subHeader: err.message,
                buttons: ['OK']
            });
        });
    }
// Create buffer from base64
    base64ToArrayBuffer(base64) {
        const cadena = atob(base64);
        const bytes = new Uint8Array(cadena.length);
        for (let i = 0; i < cadena.length; i++) {
            bytes[i] = cadena.charCodeAt(i);
        }
        return bytes.buffer;
    }

I hope you see answer

@joelcubero, what plugin you use?
And you fix it now ?