none
Impressão Codigo de Barras RRS feed

  • Pergunta

  • Bom dia, no meu código abaixo tenho um select que faço referencia a uma lista que faz impressão das minhas etiquetas, e neste mesmo select eu tenho um campo chamado CB.CB0_CODETI. Este campo esta preenchido com um valor já, agora na minha lista de impressão preciso que este campo seja impresso em formato de codigo de barras, ean128, é possivel se for por favor como faço este tipo de impressão direto no código.

    Desde já agradeço.

    segue abaixo meu codigo.

    namespace MenuRelatorios
    {
        public partial class frmEtiquetas : Form
        {
            int largura;
            int altura;

            List<string> ListaImpEtiqueta = new List<string>();
            string sNomeImpressora = System.Configuration.ConfigurationSettings.AppSettings["ImpressoraPadrao"];

            public frmEtiquetas()
            {
                InitializeComponent();
            }

            private void frmEtiquetas_Load(object sender, EventArgs e)
            {

            }

            private void btnPesquisar_Click(object sender, EventArgs e)
            {
                vizualização.Document = EtiquetaProdPS;
                vizualização.InvalidatePreview();
            }

            public string retornaCodBarras(string txtNGuiaFrac)
            {
                string ret = string.Empty;
                string connectionString = this.DataTable1TableAdapter.Connection.ConnectionString;

                using (SqlConnection con = new SqlConnection(connectionString))
                {
                    con.Open();
                    string strQuery = @" SELECT
                                         SC.C2_NUM,
                                         SB.B1_DESC,
                                         SC.C2_XNPAIS,
                                         CONVERT(VARCHAR(10), CAST( SC.C2_XDTFAB AS DATE),103) AS DATAF,
                                         CONVERT(VARCHAR(10), CAST( SC.C2_XDTVALI AS DATE),103) AS DATAV,
                                         SC.C2_XLOTEF,
                                         SC.C2_XLOTE,
                                         SB.B1_XDCB,
                                         SB.B1_XCAS,
                                         CAST(SB.B1_PESO AS NUMERIC(15, 3)) AS PESO,
                                         SB.B1_XSEGUM,
                                         SC.C2_XNOMFA,
                                         CB.CB0_CODETI,
                                         SC.C2_QUANT
                                  FROM SC2020 AS SC
                                  INNER JOIN SB1020 AS SB WITH (NOLOCK) ON SB.B1_COD = SC.C2_PRODUTO
                                  INNER JOIN CB0020 AS CB WITH (NOLOCK) ON CB.CB0_LOTE = SC.C2_XLOTE
                                  WHERE C2_NUM = '" + txtNGuiaFrac + "'";
                    using (SqlCommand command = new SqlCommand(strQuery, con))

                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            reader.GetString(12);
                            ret = reader[12].ToString();

                            ListaImpEtiqueta.Add("Produto: " + (reader[1].ToString()) + "                                             " +"N° Guia: " + reader[0].ToString());
                            ListaImpEtiqueta.Add("Fabricação: " +(reader[3].ToString()) + "              " + "Validade: " + reader[4].ToString() + "              " + "Qtda. : " + reader[9].ToString() + reader[10].ToString());
                            ListaImpEtiqueta.Add("Lote Fabr.: " + (reader[5].ToString()) + "                                         " + "Lote Inter.: " + reader[6].ToString());
                            ListaImpEtiqueta.Add("Fabricante : " + (reader[11].ToString()) + "       " + "País Orig.: " + reader[2].ToString());
                            ListaImpEtiqueta.Add("DCB: " + (reader[7].ToString()) + "                                          " + reader[12].ToString());

                            break;

                        }
                    }
                    con.Close();
                }
                return ret;
            }

            private void txtNGuiaFrac_KeyDown(object sender, KeyEventArgs e)
            {
                    if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Tab)
                    {
                        txtCodBarras.Text = retornaCodBarras(txtNGuiaFrac.Text);
                        txtQuant.Text = retornaQunat(txtNGuiaFrac.Text);
                        txtNGuiaFrac.Focus();
                    }
            }

            private void btnFechar_Click(object sender, EventArgs e)
            {
                Close();
            }

            private void btnImprimir_Click(object sender, EventArgs e)
            {
                EtiquetaProdPS.PrinterSettings.PrinterName = sNomeImpressora;
                EtiquetaProdPS.Print();
            }

            private void EtiquetaProdPS_PrintPage(object sender, PrintPageEventArgs e)
            {
                Font letra = new Font("Aerial", 10, FontStyle.Regular, GraphicsUnit.Pixel);
                SolidBrush cor = new SolidBrush(Color.Black);
                Rectangle retangulo = new Rectangle(12, 36, largura, 30);

                int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                    y += 15;
                }
            }
        }
    }


    JUNIOR GUERREIRO T.I

    segunda-feira, 30 de janeiro de 2017 10:59

Respostas

  • Junior Guerreiro

    Você pode tentar isso

    e.Graphics.DrawString(frase.Split(':')[1].ToString(), codBarras, cor, new Point(220, y));



    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:54
    segunda-feira, 30 de janeiro de 2017 17:31
  • Remove esta linha

    e.Graphics.DrawString("Cod.: ", letra, cor, new Point(180, y));


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:55
    segunda-feira, 30 de janeiro de 2017 17:44
  • Ah! ok.

    Tem duas opções:

    1- foreach (string frase in ListaImpEtiqueta)
                {
                    e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                    y += 15;
                }

    Neste código vc pode por um if e perguntar se a frase contem o texto cdb, se for verdadeiro você muda o valor da variável "letra" para a fonte EAN apenas para esse valor. Algo assim:

     private void EtiquetaProdPS_PrintPage(object sender, PrintPageEventArgs e)
            {
                Font letra = new Font("Aerial", 10, FontStyle.Regular, GraphicsUnit.Pixel);
                Font fonteCodigoBarras = new Font("FonteEAN", 10, FontStyle.Regular, GraphicsUnit.Pixel);
                SolidBrush cor = new SolidBrush(Color.Black);
                Rectangle retangulo = new Rectangle(12, 36, largura, 30);
    
                int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    if (frase.contains("DCB")){
                        e.Graphics.DrawString("DCB: ", letra, cor, new Point(15, y));
                        e.Graphics.DrawString(frase, fonteCodigoBarras, cor, new Point(20, y));
                    }
                    else
                        e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                    y += 15;
                }
            }

    2- Outra opção é criar um report. No report você muda a fonte do label onde vai mostrar o código de barra para a fonte do ean.

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:55
    segunda-feira, 30 de janeiro de 2017 12:50
  • Olá!

    Cara, não sei se é porque voltei do almoço mas não entendi o que vc precisa nessa ultima resposta :-)

    No mais eu vi que vc me mandou uma copia do seu código que tem um erro:

    Errado:

    int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    if (frase.contains("DCB"))
                    {
                        e.Graphics.DrawString("DCB: ", letra, cor, new Point(15, y));
                        e.Graphics.DrawString(frase, codBarras, cor, new Point(20, y));
    
                    }
                    else
                    {
                        e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                        y += 15;
                    }
                }

    Certo:

    int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    if (frase.contains("DCB")){
                        e.Graphics.DrawString("DCB: ", letra, cor, new Point(15, y));
                        e.Graphics.DrawString(frase, fonteCodigoBarras, cor, new Point(20, y));
                    }
                    else
                        e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                    y += 15;
                }

    Notou? O "y += 15;" esta fora do if.

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:55
    segunda-feira, 30 de janeiro de 2017 16:46
  • Então Pablo vc tem skype, podemos tc por lá ai tento te explicar melhor seria possivel, e que não quero que saia o nome do Campo na impressão

     if (frase.contains("DCB")


    JUNIOR GUERREIRO T.I


    segunda-feira, 30 de janeiro de 2017 16:49
  • Junior,

    Então, não está lendo porque como falei antes ai, esta linha de código esta com um erro:

    e.Graphics.DrawString(frase, codBarras, cor, new Point(220, y));

    Se vc debugar vai ver que a variável "frase" vem carregado com algo assim:

    "COD: 1123233445556669977"

    Mas vc apenas deve passar o código sem o "COD: ". Entende? Você tem que tratar essa string e somente enviar o numero sem o "COD: ".

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:54
    segunda-feira, 30 de janeiro de 2017 17:20

Todas as Respostas

  • Olá Junior!

    Então, se entendi bem, para imprimir o código de barras basta você trocar a fonte da label para uma fonte de código de barras que suporte ean128.

    Tem na internet a fonte para baixar de forma gratuita.

    segunda-feira, 30 de janeiro de 2017 11:23
  • Pablo blz eu tenho já o codigo instalado, só não sei como colocar isso no meu código, sou novato ainda, se vc tiver algum video ou um passo a passou de como faço isso, de como coloco no meu codigo pra sair a impressão.

    JUNIOR GUERREIRO T.I

    segunda-feira, 30 de janeiro de 2017 11:45
  • Junior,

    Vou te explicar o que eu fiz para funcionar. Baixei a fonte TT do ean. Logo instalei a fonte no sistema, o que pode ser feito com um duplo click no arquivo dela. Feito isto, você abre o visual studio, coloca uma label num form ou algo assim, troca a fonte dela para a fonte ean (que agora deve aparecer na lista de fontes instaladas). Insere um código numérico na label para testar, você vai ver que vai mostrar o código de barras e não os números.

    É isto mesmo?

    segunda-feira, 30 de janeiro de 2017 12:03
  • Isso mesmo eu já fiz no meu campo, vou te mandar meu form, o problema e que não estou consehuindo colocar no meu codigo para sair na impressão, porque estou usando pra imprimir o printdocument.

    segue meu form, este form e o código acima que coloquei na pergunta.



    JUNIOR GUERREIRO T.I


    segunda-feira, 30 de janeiro de 2017 12:17
  • Olá Junior Guerreiro

    Segue o link 

    https://social.msdn.microsoft.com/Forums/vstudio/pt-BR/0ff64608-bfef-4c16-83a5-f86c033e4eee/cdigo-de-barras-com-printdocument?forum=vscsharppt


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    segunda-feira, 30 de janeiro de 2017 12:39
  • Ah! ok.

    Tem duas opções:

    1- foreach (string frase in ListaImpEtiqueta)
                {
                    e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                    y += 15;
                }

    Neste código vc pode por um if e perguntar se a frase contem o texto cdb, se for verdadeiro você muda o valor da variável "letra" para a fonte EAN apenas para esse valor. Algo assim:

     private void EtiquetaProdPS_PrintPage(object sender, PrintPageEventArgs e)
            {
                Font letra = new Font("Aerial", 10, FontStyle.Regular, GraphicsUnit.Pixel);
                Font fonteCodigoBarras = new Font("FonteEAN", 10, FontStyle.Regular, GraphicsUnit.Pixel);
                SolidBrush cor = new SolidBrush(Color.Black);
                Rectangle retangulo = new Rectangle(12, 36, largura, 30);
    
                int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    if (frase.contains("DCB")){
                        e.Graphics.DrawString("DCB: ", letra, cor, new Point(15, y));
                        e.Graphics.DrawString(frase, fonteCodigoBarras, cor, new Point(20, y));
                    }
                    else
                        e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                    y += 15;
                }
            }

    2- Outra opção é criar um report. No report você muda a fonte do label onde vai mostrar o código de barra para a fonte do ean.

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:55
    segunda-feira, 30 de janeiro de 2017 12:50
  • Daniel bom dia... Só preciso imprimir em formato de codigo de barras o  numero que esta embaixo da Pais na etiqueta, mas não consigo colocar no meu codigo acima..

    JUNIOR GUERREIRO T.I

    segunda-feira, 30 de janeiro de 2017 12:56
  • Você precisa passar o nome da Font que será impresso!

    No exemplo isso é mostrado!


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    segunda-feira, 30 de janeiro de 2017 12:58
  • Agora vi que meu código tem um pequeno erro. Ali onde imprime o código, "frase" esta enviando "DCB: " + o código. Tem que quebrar a string "frase" e enviar comente o código.
    segunda-feira, 30 de janeiro de 2017 13:05
  • Pablo pode me ajudar com o erro abaixo, quando jogo seu codigo ele não acha o contains

        int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    if (frase.contains("DCB"))
                    {
                        e.Graphics.DrawString("DCB: ", letra, cor, new Point(15, y));
                        e.Graphics.DrawString(frase, codBarras, cor, new Point(20, y));

                    }
                    else
                    {
                        e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                        y += 15;
                    }


    JUNIOR GUERREIRO T.I



    segunda-feira, 30 de janeiro de 2017 13:25
  • Adiciona o using system.linq 
    segunda-feira, 30 de janeiro de 2017 13:32
  • Pablo esta dando esta mensagem abaixo.


    JUNIOR GUERREIRO T.I

    segunda-feira, 30 de janeiro de 2017 13:44
  • Junior,

    Você adicionou o "using system.linq" ?

    segunda-feira, 30 de janeiro de 2017 14:02
  • Sim add sim

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Drawing.Printing;
    using System.Management;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Linq;


    JUNIOR GUERREIRO T.I

    segunda-feira, 30 de janeiro de 2017 14:09
  • Bom, vc tem o using system.linq duas vezes. Tira um deles.

    Se o erro persiste tem que ver o que pode estar acontecendo...

    Abre um projeto de console novo e tenta fazer este exemplo:

    https://www.dotnetperls.com/contains

    segunda-feira, 30 de janeiro de 2017 14:21
  • Ja acertei aqui Pablo eu quem estava fazendo errado, novato e complicado, mas assim tem um detalhe que preciso te perguntar o campo que quero imprimir o codigo de barras não e o campo CAS e sim um campo que não estou colocando nome, o campo correto e este aqui " + reader[12].ToString());
    eu não estou colocando nome nele na minha list, pra colocar este campo no codigo que vc me mandou no lugar do CAS.


    JUNIOR GUERREIRO T.I

    segunda-feira, 30 de janeiro de 2017 14:24
  • Olá!

    Cara, não sei se é porque voltei do almoço mas não entendi o que vc precisa nessa ultima resposta :-)

    No mais eu vi que vc me mandou uma copia do seu código que tem um erro:

    Errado:

    int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    if (frase.contains("DCB"))
                    {
                        e.Graphics.DrawString("DCB: ", letra, cor, new Point(15, y));
                        e.Graphics.DrawString(frase, codBarras, cor, new Point(20, y));
    
                    }
                    else
                    {
                        e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                        y += 15;
                    }
                }

    Certo:

    int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    if (frase.contains("DCB")){
                        e.Graphics.DrawString("DCB: ", letra, cor, new Point(15, y));
                        e.Graphics.DrawString(frase, fonteCodigoBarras, cor, new Point(20, y));
                    }
                    else
                        e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                    y += 15;
                }

    Notou? O "y += 15;" esta fora do if.

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:55
    segunda-feira, 30 de janeiro de 2017 16:46
  • Então Pablo vc tem skype, podemos tc por lá ai tento te explicar melhor seria possivel, e que não quero que saia o nome do Campo na impressão

     if (frase.contains("DCB")


    JUNIOR GUERREIRO T.I


    segunda-feira, 30 de janeiro de 2017 16:49
  • Olá Junior Guerreiro

    Manda o seu código como esta neste momento!


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    segunda-feira, 30 de janeiro de 2017 17:07
  • Daniel este e meu codigo. Daniel ate estou imprimindo o codigo de barras como nosso amigo Pablo me orientou, agora estou testando com o coletro e não esta lendo o codigo de barras.

    namespace MenuRelatorios
    {
        public partial class frmEtiquetas : Form
        {
            int largura;
            int altura;

            List<string> ListaImpEtiqueta = new List<string>();
            string sNomeImpressora = System.Configuration.ConfigurationSettings.AppSettings["ImpressoraPadrao"];

            public frmEtiquetas()
            {
                InitializeComponent();
            }

            private void frmEtiquetas_Load(object sender, EventArgs e)
            {

            }

            private void btnPesquisar_Click(object sender, EventArgs e)
            {
                vizualização.Document = EtiquetaProdPS;
                vizualização.InvalidatePreview();
                
            }

            public string retornaCodBarras(string txtNGuiaFrac)
            {
                string ret = string.Empty;
                string connectionString = this.DataTable1TableAdapter.Connection.ConnectionString;

                using (SqlConnection con = new SqlConnection(connectionString))
                {
                    con.Open();
                    string strQuery = @" SELECT
                                         SC.C2_NUM,
                                         SB.B1_DESC,
                                         SC.C2_XNPAIS,
                                         CONVERT(VARCHAR(10), CAST( SC.C2_XDTFAB AS DATE),103) AS DATAF,
                                         CONVERT(VARCHAR(10), CAST( SC.C2_XDTVALI AS DATE),103) AS DATAV,
                                         SC.C2_XLOTEF,
                                         SC.C2_XLOTE,
                                         SB.B1_XDCB,
                                         SB.B1_XCAS,
                                         CAST(SB.B1_PESO AS NUMERIC(15, 3)) AS PESO,
                                         SB.B1_XSEGUM,
                                         SC.C2_XNOMFA,
                                         CB.CB0_CODETI,
                                         SC.C2_QUANT
                                  FROM SC2020 AS SC
                                  INNER JOIN SB1020 AS SB WITH (NOLOCK) ON SB.B1_COD = SC.C2_PRODUTO
                                  INNER JOIN CB0020 AS CB WITH (NOLOCK) ON CB.CB0_LOTE = SC.C2_XLOTE
                                  WHERE C2_NUM = '" + txtNGuiaFrac + "'";
                    using (SqlCommand command = new SqlCommand(strQuery, con))

                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            reader.GetString(12);
                            ret = reader[12].ToString();

                            ListaImpEtiqueta.Add("Produto: " + (reader[1].ToString()) + "                                             " +"N° Guia: " + reader[0].ToString());
                            ListaImpEtiqueta.Add("Fabricação: " +(reader[3].ToString()) + "              " + "Validade: " + reader[4].ToString() + "              " + "Qtda. : " + reader[9].ToString() + reader[10].ToString());
                            ListaImpEtiqueta.Add("Lote Fabr.: " + (reader[5].ToString()) + "                                         " + "Lote Inter.: " + reader[6].ToString());
                            ListaImpEtiqueta.Add("Fabricante : " + (reader[11].ToString()) + "       " + "País Orig.: " + reader[2].ToString());
                            ListaImpEtiqueta.Add("CAS: " + (reader[8].ToString()));                 
                            ListaImpEtiqueta.Add("DCB: " + (reader[7].ToString()) + "                                             " + reader[12].ToString());
                            ListaImpEtiqueta.Add("Cod.: " + (reader[12].ToString()));

                            break;

                        }
                    }
                    con.Close();
                }
                return ret;
            }

            public string retornaQunat(string txtNGuiaFrac)
            {
                string ret = string.Empty;
                string connectionString = this.DataTable1TableAdapter.Connection.ConnectionString;

                using (SqlConnection con = new SqlConnection(connectionString))
                {
                    con.Open();
                    string strQuery = @" SELECT
                                         SC.C2_NUM,
                                         SB.B1_DESC,
                                         SC.C2_XNPAIS,
                                         CONVERT(VARCHAR(10), CAST( SC.C2_XDTFAB AS DATE),103) AS DATAF,
                                         CONVERT(VARCHAR(10), CAST( SC.C2_XDTVALI AS DATE),103) AS DATAV,
                                         SC.C2_XLOTEF,
                                         SC.C2_XLOTE,
                                         SB.B1_XDCB,
                                         SB.B1_XCAS,
                                         CAST(SB.B1_PESO AS NUMERIC(15, 3)) AS PESO,
                                         SB.B1_XSEGUM,
                                         SC.C2_XNOMFA,
                                         CB.CB0_CODETI,
                                         SC.C2_QUANT
                                  FROM SC2020 AS SC
                                  INNER JOIN SB1020 AS SB WITH (NOLOCK) ON SB.B1_COD = SC.C2_PRODUTO
                                  INNER JOIN CB0020 AS CB WITH (NOLOCK) ON CB.CB0_LOTE = SC.C2_XLOTE
                                  WHERE C2_NUM = '" + txtNGuiaFrac + "'";
                    using (SqlCommand command = new SqlCommand(strQuery, con))

                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            reader.GetDouble(13);
                            ret = reader[13].ToString();
                            break;
                        }
                    }
                    con.Close();
                }
                return ret;
            }

            private void txtNGuiaFrac_KeyDown(object sender, KeyEventArgs e)
            {
                    if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Tab)
                    {
                        txtCodBarras.Text = retornaCodBarras(txtNGuiaFrac.Text);
                        txtQuant.Text = retornaQunat(txtNGuiaFrac.Text);
                        txtNGuiaFrac.Focus();
                    }
            }

            private void btnFechar_Click(object sender, EventArgs e)
            {
                Close();
            }

            private void btnImprimir_Click(object sender, EventArgs e)
            {
                EtiquetaProdPS.PrinterSettings.PrinterName = sNomeImpressora;
                EtiquetaProdPS.Print();
            }

            private void EtiquetaProdPS_PrintPage(object sender, PrintPageEventArgs e)
            {
                Font codBarras = new Font("Bar-Code 39", 12);
                Font letra = new Font("Aerial", 9, FontStyle.Regular, GraphicsUnit.Pixel);
                SolidBrush cor = new SolidBrush(Color.Black);
                Rectangle retangulo = new Rectangle(12, 36, largura, 30);

                int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    if (frase.Contains("Cod"))
                    {
                        e.Graphics.DrawString("Cod.: ", letra, cor, new Point(180, y));
                        e.Graphics.DrawString(frase, codBarras, cor, new Point(220, y));
                    }
                    else
                    {
                        e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                        y += 14;
                    }
                }
            }

        }
    }


    JUNIOR GUERREIRO T.I


    segunda-feira, 30 de janeiro de 2017 17:11
  • Junior,

    Então, não está lendo porque como falei antes ai, esta linha de código esta com um erro:

    e.Graphics.DrawString(frase, codBarras, cor, new Point(220, y));

    Se vc debugar vai ver que a variável "frase" vem carregado com algo assim:

    "COD: 1123233445556669977"

    Mas vc apenas deve passar o código sem o "COD: ". Entende? Você tem que tratar essa string e somente enviar o numero sem o "COD: ".

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:54
    segunda-feira, 30 de janeiro de 2017 17:20
  • Pablo então esta imprimindo sim o codigo de barras como vc explicou acima como mostro na imagem abaixo.

     int y = 55;
                foreach (string frase in ListaImpEtiqueta)
                {
                    if (frase.Contains("Cod"))
                    {
                        e.Graphics.DrawString("Cod.: ", letra, cor, new Point(180, y));
                        e.Graphics.DrawString(frase, codBarras, cor, new Point(220, y));
                    }
                    else
                    {
                        e.Graphics.DrawString(frase, letra, cor, new Point(15, y));
                        y += 14;
                    }


    JUNIOR GUERREIRO T.I

    segunda-feira, 30 de janeiro de 2017 17:29
  • Junior Guerreiro

    Você pode tentar isso

    e.Graphics.DrawString(frase.Split(':')[1].ToString(), codBarras, cor, new Point(220, y));



    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:54
    segunda-feira, 30 de janeiro de 2017 17:31
  • Remove esta linha

    e.Graphics.DrawString("Cod.: ", letra, cor, new Point(180, y));


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Junior Guerreiro terça-feira, 31 de janeiro de 2017 10:55
    segunda-feira, 30 de janeiro de 2017 17:44
  • Vlw resolvido o problema. Obrigado a todos.

    JUNIOR GUERREIRO T.I

    terça-feira, 31 de janeiro de 2017 10:56