Já fiz isso muitas e muitas vezes.
com ele você desenha a etiqueta e pode imprimir para um arquivo o resultado é algo como isso :
^XA
^SZ2^JMA
^MCY^PMN
^PW831
~JSN
^MD9
^JZY
^LH0,0^LRN
^XZ
^XA
^FO596,23
^BY5^BXN,5,200,36,36,5,_^FH\^FD{bar2d}^FS
^FT20,38
^CI0
^A0N,17,23^FDFROM:^FS
^FT94,42
^FT20,59
^FT20,81
^FT20,130
^A0N,25,34^FDMADE IN BRAZIL^FS
^FT346,38
^A0N,17,23^FDTO:^FS
^FT382,38
^FT346,59
^FT346,104
^FT346,123
^A0N,17,23^FDPLANT:^FS
^FT474,167
^A0N,45,61^FD{dock}^FS
^FO333,14
^GB0,149,2^FS
^FT20,235
^A0N,45,61^FD{part}^FS
^FT20,102
^FT346,229
^A0N,17,26^FDPART DESC.:^FS
^FT346,258
^A0N,23,31^FD{desc}^FS
^FT346,81
^FT20,259
^A0N,17,23^FDPART (P):^FS
^FO0,269
^GB825,0,3^FS
^FO20,374
^BY3^BCN,61,N,N^FD>:1J>5{bar1d}^FS
^FO0,358
^GB825,0,3^FS
^FT20,485
^A0N,17,23^FDLICENSE PLATE (1J)R^FS
^FT596,389
^A0N,17,23^FDQUANTITY (Q):^FS
^FT20,347
^A0N,17,23^FDLOT#(1T):^FS
^FT598,334
^A0N,17,23^FDPO#(K):^FS
^FT596,354
^A0N,23,36^FD{ped}^FS
^FT598,312
^A0N,23,31^FD{data}^FS
^FT596,443
^A0N,45,61^FD{qtd}^FS
^FT20,313
^A0N,25,34^FD{lot}^FS
^FT604,290
^A0N,17,23^FDENG. DATE :^FS
^FT20,459
^A0N,28,38^FD{licplate}^FS
^FO0,493
^GB825,0,3^FS
^FT20,511
^A0N,17,23^FDSUPPLIER AREA^FS
^FT20,594
^A0N,17,23^FDVER(Z): {version}^FS
^PQ{copias},0,1,Y
^XZ
Veja que essa etiqueta está na linguagem da Zebra ZPL2 e eu coloquei as variáveis dentro de { variavel }
então quando quero imprimir o PHP lê esse template, substitui as variáveis e manda imprimir (normalmente usando o LPR)
É simples assim, em usa rede local.