Jump to content

Etiquetas Códigos de Barras


Recommended Posts

Posted

Bom dia,

Estou com um problema com a emissão de  etiquetas para uma impressora Zebra (Modelo 2746e). Quero usar ZPL, mas não sei como incluir nos commandos zpl as minhas váriáveis, lidas num datarow.

Sistematizando:

Tenho registos numa BD.

Leio os dados obtendo datatable.

Itero o datatable obendo os datarows

Quero imprimir uma ou mais etiquetas por cada datarow(tenho outro ciclo para emitir um nº de etiquetas, dependendo de um valor de uma coluna "Quantiy" do próprio datarow).

Até aqui tudo rola.

Um exemplo ZPL:

N

q609

Q203,26

B26,26,0,UA0,2,2,152,B,"603679025109"

A253,26,0,3,1,1,N,"SKU 6205518 MFG 6354"

A253,56,0,3,1,1,N,"2XIST TROPICAL BEACH"

A253,86,0,3,1,1,N,"STRIPE SQUARE CUT TRUNK"

A253,116,0,3,1,1,N,"BRICK"

A253,146,0,3,1,1,N,"X-LARGE"

P1,1

A questão é: Susbtituir os dados estáticos pelos dados lidos em cada datarow.

Nota: Este exemplo de etiqueta está neste tutorial: http://nicholas.piasecki.name/blog/2009/03/sending-raw-epl2-directly-to-a-zebra-lp2844-via-c/ - Tem código c#, é muito claro em tudo, mas não percebi a parte que enuncio aqui.

Aceito sugestões para outras abordagens ao problema o que desde já agradeço.

António Fernandes.

Posted

Esta explicado no tópico Printing the label directly from C#

Precisa de um código da Microsoft e corrigir um pequeno bug no código.

Basicamente vc gera uma String usando o stringbuilder e manda para a impressora.

Fernando Lage Bastos - MCP/MCTS/MCPD

Posted

Obrigado pela resposta,

Se eu tivesse percebido, não tinha postado a dúvida.

A classe recebe uma string como parametro, eu quero enviar-lhe um datarow (até podem ser várias strings; façoa a extração antes, é indiferente).

Constroi um string e envia para a impressora, eu quero construir uma string com vários campos extraidos do datarow (em várias linhas da etiqueta, claro).

Esta é a minha dúvida.

Obrigado.

Posted

Qual a estrutura deste datarow? Porque depende da estrutura dele e também do tipo/tamanho de etiqueta que deseja fazer, porém o código básico usando o exemplo do site seria o seguinte:

 StringBuilder sb;

            if (printerName == null)
            {
                throw new ArgumentNullException("printerName");
            }

foreach(var row in meuDataTable)
{
            sb = new StringBuilder();
            sb.AppendLine();
            sb.AppendLine("N");
            sb.AppendLine("q609");
            sb.AppendLine("Q203,26");
            sb.AppendLine(string.Format(
                CultureInfo.InvariantCulture,
                "B26,26,0,UA0,2,2,152,B,\"{0}\"",
                row["campoDoUpcAqui"));
            sb.AppendLine(string.Format(
                CultureInfo.InvariantCulture,
                "B2A253,26,0,3,1,1,N,\"{0}\"",
                row["campoDaDescricaoDaPrimeiraLinhaAqui"));
            sb.AppendLine(string.Format(
                CultureInfo.InvariantCulture,
                "B2A253,56,0,3,1,1,N,\"{0}\"",
                row["colunaDaDescricaoDaSegundaLinhaAqui"));

            sb.AppendLine(string.Format(
                CultureInfo.InvariantCulture,
                "B2A253,86,0,3,1,1,N,\"{0}\"",
                row["colunaDaDescricaoDaTerceiraLinhaAqui"));

            sb.AppendLine("P1,1");
            RawPrinterHelper.SendStringToPrinter(printerName, sb.ToString());


}

Fernando Lage Bastos - MCP/MCTS/MCPD

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.