none
Etiquetas RRS feed

  • Pergunta

  • Boas pessoal, estou a criar uma funcionalidade num programa que imprime etiquetas.

    Já consegui enviar a ordem para a impressora e que a mesma imprima a quantidade que quero.

    O problema é que a etiqueta saí totalmente branca sem nada escrito.
    Já experimentei enviar a ordem para uma impressora A4 e a descrição saí no meio da folha A4, portanto penso que o problema esteja na posição da descrição.

    Agora o problema é que não estou a perceber onde posso configurar isso...

    Aqui vai o código da label:

    Código (C#):
    private void printlabel_PrintPage(object sender, PrintPageEventArgs e)
             {
                     Graphics g = e.Graphics;
                     g.DrawString(last_reparacao + 1, new Font("Verdana", 30, FontStyle.Bold), new SolidBrush(Color.Black), new Point ( 0, 0 ));
             }

    E o código do botão "imprimir":
    Código (C#):
    PrintDocument print = new PrintDocument();
                     PrintDocument label = new PrintDocument();
                     print.PrinterSettings.PrinterName = cb_impressora_documentos.Text;
                     label.PrinterSettings.PrinterName = cb_impressora_etiquetas.Text;
                     print.PrintPage += new PrintPageEventHandler(printDoc_PrintPage);
                     PaperSize ps = new PaperSize("etiquetas", 2, 1);
                     label.DefaultPageSettings.PaperSize = ps;
                     label.PrintPage += new PrintPageEventHandler(printlabel_PrintPage);
                     print.Print();
                     //printPreview.Document = printlabel;
                   
                     for (int i = 0; i < numero_labels; i++)
                     {
                             //printPreview.ShowDialog();
                             label.Print();
                     }

    Agradeço qualquer ajuda que me possam dar...

    Cumprimentos          
    sexta-feira, 6 de maio de 2016 16:29

Respostas

  • Qual é a marca e o modelo da sua impressora. Cada impressora tem uma configuraçao um pouco diferente e normalmente codigos especificos para impressao.

    A definiçao do seu papersize esta estranha. A documentaçao diz:

    Public Sub New (
    name As String,
    width As Integer,
    height As Integer
    )

    Parameters
    name  Type: System.String The name of the paper.
    width  Type: System.Int32  The width of the paper, in hundredths of an inch. (centésimos de polegadas)
    height Type: System.Int32  The height of the paper, in hundredths of an inch. (centésimos de polegadas)

    Ou seja:

    PaperSize ps = new PaperSize("etiquetas", 2, 1);

    neste caso voce esta dizendo que o tamanho do papel é de 2/100 polegadas por 1/100 polegadas.

    Se voce quiser um papel de 2 por 1 polegadas voce tem que fazer:

    PaperSize ps = new PaperSize("etiquetas", 200, 100);

    Mas talvez o problema esteja ainda no delegate printlabel_PrintPage

    Poste o codigo para termos certeza.

    att



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------


    sexta-feira, 6 de maio de 2016 19:01
    Moderador

Todas as Respostas

  • Qual é a marca e o modelo da sua impressora. Cada impressora tem uma configuraçao um pouco diferente e normalmente codigos especificos para impressao.

    A definiçao do seu papersize esta estranha. A documentaçao diz:

    Public Sub New (
    name As String,
    width As Integer,
    height As Integer
    )

    Parameters
    name  Type: System.String The name of the paper.
    width  Type: System.Int32  The width of the paper, in hundredths of an inch. (centésimos de polegadas)
    height Type: System.Int32  The height of the paper, in hundredths of an inch. (centésimos de polegadas)

    Ou seja:

    PaperSize ps = new PaperSize("etiquetas", 2, 1);

    neste caso voce esta dizendo que o tamanho do papel é de 2/100 polegadas por 1/100 polegadas.

    Se voce quiser um papel de 2 por 1 polegadas voce tem que fazer:

    PaperSize ps = new PaperSize("etiquetas", 200, 100);

    Mas talvez o problema esteja ainda no delegate printlabel_PrintPage

    Poste o codigo para termos certeza.

    att



    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------


    sexta-feira, 6 de maio de 2016 19:01
    Moderador
  • Boas, obrigado desde já pela ajuda.

    O que eu pretendo é uma etiqueta com 50cm de largura e 25 de altura...

    A impressora é uma zebra LP2824Plus.

    O que me pediu de código:

    Código (C#):
    private void printlabel_PrintPage(object sender, PrintPageEventArgs e)
             {
                     Graphics g = e.Graphics;
                     g.DrawString(last_reparacao + 1, new Font("Verdana", 30, FontStyle.Bold), new SolidBrush(Color.Black), new Point ( 0, 0 ));
             }

    sábado, 7 de maio de 2016 19:33