none
Tamanho da pagina se ajustar à quantidade de dados impressos. RRS feed

  • Discussão Geral

  • Olá gente, poderiam me ajudar?

    Fiz um sistema que irá imprimir os pedidos em uma impressora matricial mecaf diebold, usei o "print document" e de fato ele imprimiu os dados corretamente, porém o cupom saiu do tamanho de uma folha sufite.

    Alguém consegue me ajudar com uma forma de fazer o tamanho do cupom ser dinâmico conforme a quantidade de dados? 

    Segue o código de impressão. 

     

       Private Sub Imprimir_pedido_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles Imprimir_pedido.PrintPage
            Dim N_end As Integer = 0

            N_end = Cmb_endereco_entrega.Items.IndexOf(Cmb_endereco_entrega.Text)
            'Dados_cliente(6) 0-Codigo,1-Telefone,2-Nome,3-Nascimento,4-obs,5-data_cad,6-outros_telefones
            '  Dados_cliente_endereco(8) '0 -Código, 1-Rua.2-Numero,3-Bairro,4-Cep,5-Cidade,6-Complemento,7-Referencia,8-Data_criado
            '  0-Código,1-Código_produto,2-Descricao,3-tipo,4-qtd_estoque,5-ultima_reposicao,6-valor,7-info_adicionais,8-status
            '   0-Código,1-nome_grupo,2-controla_estoque,3-acrescimo,4-desconto,5-status,6-permi_fracionamento,7-fracionamento_max,8-forma_cobrança
            Dim Y As Integer = 15
            e.Graphics.DrawString("Pizzeria Monteiro", New Font("Arial", 10, FontStyle.Regular), Brushes.Black, 10, Y)
            Y += 15
            e.Graphics.DrawString("-------------------------------------------------------------------------------------------------", New Font("Arial", 6, FontStyle.Regular), Brushes.Black, 10, Y)
            Y += 15

            If Txt_taxa_entrega.Text > 0 Then
                e.Graphics.DrawString("Pedido.:" & num_pedido & "    Data e hora: " & Now.Date & " às " & TimeOfDay & vbCrLf & "Cliente: " & Txt_cliente_nome.Text & "    Telefone: " & Txt_telefone.Text & vbCrLf &
             "End: " & Dados_cliente_endereco(1, N_end).ToString() & ", " & Dados_cliente_endereco(2, N_end).ToString() & ", " & Dados_cliente_endereco(6, N_end).ToString() & vbCrLf &
             "Bairro.:" & Dados_cliente_endereco(3, N_end).ToString() & ", Cidade: " & Dados_cliente_endereco(5, N_end).ToString() & vbCrLf &
             "Ref: " & Dados_cliente_endereco(7, N_end).ToString(), New Font("Arial", 7, FontStyle.Regular), Brushes.Black, 10, Y)
                Y += 55
                e.Graphics.DrawString("-------------------------------------------------------------------------------------------------", New Font("Arial", 6, FontStyle.Regular), Brushes.Black, 5, Y)
                Y += 10
            Else
                e.Graphics.DrawString("Pedido.:" & num_pedido & "    Data e hora:" & Now.Date & " às " & TimeOfDay, New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 10, Y)
                Y += 20
                e.Graphics.DrawString("-------------------------------------------------------------------------------------------------", New Font("Arial", 10, FontStyle.Regular), Brushes.Black, 10, Y)
                Y += 20
            End If
            e.Graphics.DrawString("Tipo", New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 10, Y)
            e.Graphics.DrawString("Qtd", New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 50, Y)
            e.Graphics.DrawString("Produto", New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 80, Y)
            e.Graphics.DrawString("Valor", New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 250, Y)
            Y += 13
            For i = 0 To Dgv_itens_pedido.Rows.Count - 1
                If Dgv_itens_pedido.Item(3, i).Value <> "Entrega" Then
                    Dim obs As String = ""
                    e.Graphics.DrawString(Dgv_itens_pedido.Item(3, i).Value.ToString(), New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 10, Y)
                    e.Graphics.DrawString(Dgv_itens_pedido.Item(4, i).Value.ToString(), New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 60, Y)
                    e.Graphics.DrawString(Dgv_itens_pedido.Item(2, i).Value.ToString(), New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 80, Y)
                    e.Graphics.DrawString(formatar_valor(Dgv_itens_pedido.Item(9, i).Value.ToString()), New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 250, Y)
                    '  e.Graphics.DrawString(Dgv_itens_pedido.Item(9, i).Value.ToString(), New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 160, Y)

                    '       e.Graphics.DrawString(Dgv_itens_pedido.Item(4, i).Value.ToString() & " " & Formatar_texto(Dgv_itens_pedido.Item(3, i).Value.ToString(), 10, " ") & Formatar_texto(Dgv_itens_pedido.Item(2, i).Value.ToString(), 30, " ") & " " & Dgv_itens_pedido.Item(5, i).Value.ToString() & formatar_valor(Dgv_itens_pedido.Item(9, i).Value.ToString()), New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 5, Y)
                    If Dgv_itens_pedido.Item(10, i).Value <> "" Then
                        Y += 14
                        e.Graphics.DrawString("Obs.:" & Dgv_itens_pedido.Item(10, i).Value.ToString, New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 10, Y)

                    End If
                    Y += 14
                End If

            Next

            e.Graphics.DrawString("-------------------------------------------------------------------------------------------------", New Font("Arial", 6, FontStyle.Regular), Brushes.Black, 10, Y)
            Y += 18
            e.Graphics.DrawString("Forma Pagamento:" & Txt_forma_pagam.Text, New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 10, Y)
            Y += 18
            If Txt_taxa_entrega.Text > 0 Then
                e.Graphics.DrawString("Taxa de entrega: " & Txt_taxa_entrega.Text, New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 10, Y)
                Y += 18
            End If
            e.Graphics.DrawString("Receber: " & formatar_valor(Txt_valor_cliente.Text) & "     " & "Troco: R$ " & Txt_troco.Text & vbCrLf & vbCrLf & "Total do pedido: R$ " & Txt_total_pedido.Text, New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 10, Y)
        End Sub

    Chamada do método acima

        Private Sub ImprimirToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ImprimirToolStripMenuItem.Click

            Imprimir_pedido.Print()
        End Sub
    sábado, 28 de abril de 2018 03:51