none
Imprimir um PictureBox RRS feed

  • Pergunta

  • Olá a todos, usando VB no Visual Studio, abri um formulário e nele colei um PictureBox1, encima deste PictureBox1 colei outro PictureBox2. O PictureBox2 pintei o seu interior de preto fazendo PictureBox2.BackColor=Color.Black, agora quero imprimir somente este PictureBox2. Usei o ícone da impressora com ToolStrip e agora gostaria de saber qual a melhor rotina para imprimir o PictureBox2. Alguém pode me dar uma luz?

    Grato/Durval Jr.

      
    quarta-feira, 28 de setembro de 2016 03:08

Respostas

  • Bom dia Durval Teixeira,

    Obrigado pela participação no Fórum MSDN.

    Tente o seguinte:

    Dim WithEvents printDoc As New Printing.PrintDocument()
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            printDoc.Print()
        End Sub
    
        Private Sub PrintImage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles printDoc.PrintPage
            e.Graphics.DrawImage(PictureBox2.Image, e.MarginBounds.Left, e.MarginBounds.Top)
        End Sub
    Atenciosamente,

    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Durval Teixeira quinta-feira, 29 de setembro de 2016 03:09
    quarta-feira, 28 de setembro de 2016 14:46
    Moderador
  • Robson, muito obrigado por me dar esta força.

    A rotina que você me passou está gerando o seguinte erro na linha abaixo:

    e.Graphics.DrawImage(PictureBox2.Image, e.MarginBounds.Left, e.MarginBounds.Top)

    tipo de erro: ArgumentNullException was unhandled

    Sei que isso deve ser muito simples de resolver mas quando ainda não dominamos quase nada, ficamos num escuro total.

    Grato por enquanto.

    • Marcado como Resposta Durval Teixeira quinta-feira, 29 de setembro de 2016 04:03
    quarta-feira, 28 de setembro de 2016 19:04
  • Olá,

    verifique se não há algum argumento com o valor Null sendo passado para o método DrawImage.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Durval Teixeira quinta-feira, 29 de setembro de 2016 03:08
    quarta-feira, 28 de setembro de 2016 20:20
    Moderador
  • Robson, inseri uma imagem no PictureBox2 e ai deu certo, imprimiu a imagem inserida. Por falta dessa imagem realmente o argumento era considerado como Null.

    Mas talvez por falta de melhor explicação ao pedir esta instrução é que ainda não cheguei onde queria. Apesar de estar usando um PictureBox eu não quero imprimir uma imagem, eu quero imprimir só o próprio PictureBox2 pintado de preto. Então a impressão seria apenas um pequeno retângulo preto.

    Aproveitando o embalo porque também não saberia como fazer, este PictureBox2 terá que ter um endereço (XY) e seu tamanho é bem reduzido seu size é 15;9

    Obrigado amigo./Durval 

    • Marcado como Resposta Durval Teixeira quinta-feira, 29 de setembro de 2016 19:37
    quarta-feira, 28 de setembro de 2016 22:42

Todas as Respostas

  • Bom dia Durval Teixeira,

    Obrigado pela participação no Fórum MSDN.

    Tente o seguinte:

    Dim WithEvents printDoc As New Printing.PrintDocument()
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            printDoc.Print()
        End Sub
    
        Private Sub PrintImage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles printDoc.PrintPage
            e.Graphics.DrawImage(PictureBox2.Image, e.MarginBounds.Left, e.MarginBounds.Top)
        End Sub
    Atenciosamente,

    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Durval Teixeira quinta-feira, 29 de setembro de 2016 03:09
    quarta-feira, 28 de setembro de 2016 14:46
    Moderador
  • Robson, muito obrigado por me dar esta força.

    A rotina que você me passou está gerando o seguinte erro na linha abaixo:

    e.Graphics.DrawImage(PictureBox2.Image, e.MarginBounds.Left, e.MarginBounds.Top)

    tipo de erro: ArgumentNullException was unhandled

    Sei que isso deve ser muito simples de resolver mas quando ainda não dominamos quase nada, ficamos num escuro total.

    Grato por enquanto.

    • Marcado como Resposta Durval Teixeira quinta-feira, 29 de setembro de 2016 04:03
    quarta-feira, 28 de setembro de 2016 19:04
  • Olá,

    verifique se não há algum argumento com o valor Null sendo passado para o método DrawImage.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Durval Teixeira quinta-feira, 29 de setembro de 2016 03:08
    quarta-feira, 28 de setembro de 2016 20:20
    Moderador
  • Robson, inseri uma imagem no PictureBox2 e ai deu certo, imprimiu a imagem inserida. Por falta dessa imagem realmente o argumento era considerado como Null.

    Mas talvez por falta de melhor explicação ao pedir esta instrução é que ainda não cheguei onde queria. Apesar de estar usando um PictureBox eu não quero imprimir uma imagem, eu quero imprimir só o próprio PictureBox2 pintado de preto. Então a impressão seria apenas um pequeno retângulo preto.

    Aproveitando o embalo porque também não saberia como fazer, este PictureBox2 terá que ter um endereço (XY) e seu tamanho é bem reduzido seu size é 15;9

    Obrigado amigo./Durval 

    • Marcado como Resposta Durval Teixeira quinta-feira, 29 de setembro de 2016 19:37
    quarta-feira, 28 de setembro de 2016 22:42