star-micronics / StarPRNT-SDK-iOS-Swift

StarPRNT SDK for iOS including libraries for supporting application development for Star printers.
https://www.star-m.jp/products/s_print/sdk/starprnt_sdk/manual/ios_swift/en/index.html
Other
41 stars 7 forks source link

SM-T300i not properly handles ISCBBuilder commands. #1

Closed andriiev closed 3 years ago

andriiev commented 3 years ago

Hi, I'm trying to configure printing on SM-T300i and faced the fact that some of the commands are working out incorrectly and someone correctly (this behavior both reproduces on my application and on your StarPRNT SDK)

1) appendFontStyle: does not work 2) appendEmphasis: when I call "func appendData(withInvert otherData: Data!)" I will apply emphasis to the rest of the whole content (not only for provided data) 3) appendLineSpace: does not work 4) appendCutPaper: when I add any of these modes printer feeds out too much paper after content (about 10 sm), as a workaround I have to add 4 empty lines after adding content 5) appendQrCodeData: it unable to print QR code, instead of this it prints: ###yS0yS1yS2yD1Hello World.yp*Cell: 8, while expected QR code for "Hello world" 6) appendBitmap: instead of images it prints a long long list of symbols

Some other simple commands like appendData, appendCharacterSpace, appendLineFeed works fine

andriiev commented 3 years ago

Resolved: you should not do like this guard let builder = StarIoExt.createCommandBuilder(emulation) else { assertionFailure("Expect valid StarIoExt builder") return nil }

gare-bear commented 3 years ago

@andriiev,

I know you open and closed the issue yourself (glad you figured it out so quickly 👍).

The SM-T300i supports two emulations; StarPRNT and ESC/POS. The issue you're describing is usually caused when you've set one emulation on the printer, but are using the other emulation in your CommandBuilder.

Because the emulation between printer & code is different, the commands are not interpreted correctly and the command values are printed instead.