Eu faço da seguinte forma:
monto o layout da etiqueta usando Zebra-Designer, com QRCode/Codigo de Barras/Texto/Borda, gero um arquivo txt, colo estes dados no meu fonte substituindo as constantes por variáveis e mando para impressora.
Aqui na empresa trabalhos com impressoras Zebra e DataMax, ambas funcionam perfeitamente com impressão de QRCode e Código de Barras.
Na maquina onde vai ser feita a impressão, precisa compartilhar a impressora e fazer o mapeamento da porta LPT1 ou LPT2, com Net Use
Abaixo um exemplo de etiqueta com QRCode que utilizo.
// CONFIGURA A IMPRESSORA
MSCBPRINTER("ZEBRA","LPT2",,40,.F.,,,,,,.T.)
MSCBWrite("^XA")
MSCBWrite("^MMT")
MSCBWrite("^PW559")
MSCBWrite("^LL0240")
MSCBWrite("^LS0")
// Produto
MSCBWrite("^FT010,040^A0N,40,24^FH\^CI28^FD" + Alltrim((cAlias)->D1_COD) + " - " + Alltrim((cAlias)->B1_DESC) + "^FS^CI27")
// Fornecedor
MSCBWrite("^FT170,070^A0N,25,24^FH\^CI28^FD" + (cAlias)->D1_FORNECE + " - " + Substr((cAlias)->A2_NOME,1,20) + "^FS^CI27")
// Lote
MSCBWrite("^FT170,100^A0N,25,24^FH\^CI28^FDLote: " + (cAlias)->D1_LOTECTL + "^FS^CI27")
// Validade do Lote
MSCBWrite("^FT170,130^A0N,25,24^FH\^CI28^FDVal.: " + DTOC((STOD((cAlias)->D1_DTVALID))) + "^FS^CI27")
// Quantidade
MSCBWrite("^FT170,160^A0N,25,24^FH\^CI28^FDQtde.: " + AllTrim(Transform(nProdQtde, "@E 999,999,999.9999" )) + " " + (cAlias)->B1_UM + "^FS^CI27")
// Data de Recebimento
MSCBWrite("^FT170,190^A0N,25,24^FH\^CI28^FDRec: " + DTOC(DDATABASE) + "^FS^CI27")
// QR Code
MSCBWrite("^FT11,230^BQN,2,4")
MSCBWrite("^FH\^FDLA," + cQrCode + "^FS")
MSCBWrite("^PQ1,0,1,Y^XZ")
// FINALIZA IMPRESSAO
MSCBEND()
//LIBERA IMPRESSORA
MSCBCLOSEPRINTER()