ZEBRA printers have an easy way for programming the label to print. I have used it for a ZPM4+ printer but the documentation states this procedure is valid for all Zebra printers.
Basically, the printer breaks down the label into two parts: fixed items and variable items. These two parts are sent to the printer separately, so the communication is reduced to the minimum (fixed parts are sent only once and variable parts every time you need a label to be printed).
Fixed parts are built into a text file with .ZPF extension, while variable items are built into a .ZPV file. With a tool supplied with the printer (BarOne) you are able to build your label graphically, and this tool produces the two files with fixed parts and sample variable parts (but with some effort and a lot of error-and-correct attempts you could build ZPV and ZPV files from scratch...).
The .ZPF file can be sent directly to the printer, while you will need to create your own .ZPV file based on the structure of the sample one.
Attached a document from Zebra that explains all this procedure.