Problem with printer label printing Argox OS-214 Plus C #

0

The Argox OS-214 Plus printer is cutting barcodes of products with 9 or more digits, making it impossible to read these codes.

What can I do to tag these bar codes with 9 or more digits?

My template is this:

[STX]L
H16
D22
101100000590010[DESCR0118]
101100000500010[DESCR1918]
101100000350020R$:[PRECO]
1E1101500000015[CODDEBARRAS]
101100000590155[DESCR0118]
101100000500155[DESCR1918]
101100000350170R$:[PRECO]
1E1101500000165[CODDEBARRAS]
101100000590300[DESCR0118]
101100000500300[DESCR1918]
101100000350310R$:[PRECO]
1E1101500000305[CODDEBARRAS]
E
[STX]Q

My code is this:

 public void ImprimirGondola(cad_impressora_spool imp, cad_produto produto, cad_etiqueta modelo, int copias)
        {
            for (int i = 0; i < copias; i++)
            {
                string impressora = string.Format("\\{0}\{1}", imp.Maquina, imp.Compartilhamento);

                string tempfile = Path.GetTempFileName();
                string text = modelo.template;

                // REPLACE DA VARIAVEL [STX]
                text = text.Replace("[STX]", ((char)2).ToString());

                bool continua = true;
                do
                {
                    if (text.IndexOf("[DESCR") >= 0)
                    {
                        // CAPTURA NOME INTEIRO DA VARIAVEL
                        string variavel = text.Substring(text.IndexOf("[DESCR"), 11);

                        // CAPTURA INICIO DE CARACTER E FIM
                        int startIndex = Convert.ToInt32(variavel.Substring(6, 2))-1;
                        int length = Convert.ToInt32(variavel.Substring(8, 2));

                        // CAPTURA DESCRICAO QUEBRADA
                        string descricaoTratada = produto.Descricao.PadRight(startIndex + length + 1, ' ').Substring(startIndex, length).Trim();
                        text = text.Replace(variavel, descricaoTratada);
                    }
                    else
                    {
                        continua = false;
                    }
                } while (continua);

                text = text.Replace("[PRECO]", produto.Preco_venda.ToString("N2"));
                text = text.Replace("[PRECOGRAMA]", (produto.Preco_venda/10).ToString("N2")); 

                // REPLACE DA VARIAVEL [TIPOUNI]
                text = text.Replace("[TIPOUNI]", produto.tipo_unidade);

                // REPLACE DA VARIAVEL [CODIGO]
                text = text.Replace("[CODIGO]", produto.Id.ToString());

                // REPLACE DA VARIAVEL [CODDEBARRAS]
                if (text.Contains("[CODDEBARRAS]"))
                {
                    int posicao = text.IndexOf("[CODDEBARRAS]");
                    string tipoDeBarra = string.Empty;
                    StringBuilder sb = new StringBuilder(text);
                    sb.Remove(posicao - 14, 1);

                    //IMPRESSÃO DE PRODUTOS COM 9 A 11 DIGITOS ESTÁ FICANDO COM
                     //O CODIGO DE BARRAS MUITO GRANDE E ESTÁ ESTOURANDO O TAMANHO DA ETIQUETA
                    if (produto.Id.ToString().Length == 13)
                    {
                        // EAN
                        //sb.Insert(posicao - 14, "F");
                        tipoDeBarra = "1F11";
                    }
                    else if (produto.Id.ToString().Length == 8)
                    {
                        // EAN 8
                        //sb.Insert(posicao - 14, "G");
                        tipoDeBarra = "1G11";
                    }
                    else
                    {
                        // CODIGO INTERNO
                        //sb.Insert(posicao - 14, "E");
                         tipoDeBarra = "1E11";
                    }

                    //text = sb.ToString();
                    text = text.Replace("1E11", tipoDeBarra);
                    text = text.Replace("[CODDEBARRAS]", produto.Id.ToString());

                }

                using (StreamWriter sw = new StreamWriter(tempfile))
                {
                    sw.Write(text);
                    sw.Close();
                }
                File.Copy(tempfile, impressora);
            }
        }
    
asked by anonymous 16.08.2018 / 14:26

0 answers