I created an iOS app that prints labels to a QLn320 and ZQ620 mobile printer. If the printer is not calibrated, it rolls out 3 labels for every one I try to print.
This app will be in 100 different locations that already have uncalibrated printers; obviously I can't drive to 100 locations to plug them into the Zebra Setup Utility.
If I programmatically send ~jc^xa^jus^xz to the printer, it prints out about 8 completely black labels plus a few more. If I continue to send the calibration command, it will send 3 labels for every 1 I intend to print. If I remove the calibration command, it will subsequently print properly. In other words, it seems if I send the calibration command just once, it will actually work. The question is, is there a way for the app to know when to send the calibration command? Is there a way to query the device to see if it's calibrated?
I notice if I send this in the Zebra Setup Utility:
! U1 getvar "media.type"
! U1 getvar "media.sense_mode"
I already get a return of "label" and "bar" even though it's not truly calibrated to my needs. It seems to require the ~jc^xa^jus^xz command.
Any advice would be appreciated. I prefer to not confuse the users and require some sort of one time "Calibrate" button. Thanks!