I've been experimenting with a Start Micronics SM-T300i thermal POS printer. Some observations:
Constructing the bytes to send to the printer from a static bitmap was expensive. My tact was to take that C# code sample, and write to a file, that I include in my B4A "Files". Call it like "Logo.bin", created by the quick-n-dirty Visual Studio application. Then at print time I simply relay these well formed bytes to the printer, and it is much quicker than translating it from a bitmap on the Android device.
I attempted to use PAGE MODE to print a logo on left side, and company address info in text on the right side. I could not for the life of me make this work. It ALWAYS positioned the text below the bitmap, rather than beside. I had thought this was supposed to be the advantage of page mode. So when I made the logo heading, I included the company address info making a full page width image (3", 576 pixels) for the bin file. This looks quite good and works around the positioning problem well.
And finally, I found when done printing it would often abort and quit printing part way through. While closing down the BT printer access I do the FLUSH, and then call a routine with a 2 second delay to finish up closing. So 1) open, 2) do printing, 3) flush, 4) delay, 5) close. This 2 second delay gave the printer the opportunity to complete the task of printing all in the buffer. If you completely close before the printer is done, then I found it aborts, and much of the printing is missing.
Not entirely your question, but perhaps the BIN file for the static receipt heading graphics is helpful.