Necesito imprimir el contenido de un PictureBox, pero... lo que hay dentro no es una imagen. Simplemente uso el PictureBox como contenedor.
Lo que necesito imprimir es lo que dibujo dentro de el.
Con este codigo dibujo el grafico:
Código:
Private Sub Pic_Graf1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Pic_Graf1.Paint
Dim Superficie As Graphics
Dim Lapiz As Pen
Dim RectanguloSuperior As Rectangle
Dim RectanguloInferior As Rectangle
Dim RectanguloRelleno As Rectangle
Dim Relleno As SolidBrush
Dim Fuente As Font
If ActivateGraph_1 = False Then
Pic_Graf1.Image = My.Resources._50px_error
Me.Refresh()
Exit Sub
Else
Pic_Graf1.Image = Nothing
End If
Superficie = e.Graphics
Lapiz = New Pen(Color.Black, 2)
Relleno = New SolidBrush(Color.Gray)
Fuente = New Font("Arial", 12, FontStyle.Bold)
RectanguloSuperior = New Rectangle(5, 5, 100, 50)
RectanguloInferior = New Rectangle(5, 15, 100, 50)
RectanguloRelleno = New Rectangle(10, 30, 95, 15)
Superficie.FillRectangle(Relleno, RectanguloRelleno)
Superficie.FillEllipse(Relleno, RectanguloInferior)
Dim Valor1 As Integer = iPorcent_1_1
Dim Valor2 As Integer = iPorcent_1_2
Dim Valor3 As Integer = iPorcent_1_3
Dim Valor4 As Integer = iPorcent_1_4
Dim Porcent1 As Integer
Dim Porcent2 As Integer
Dim Porcent3 As Integer
Dim Porcent4 As Integer
Porcent1 = (Valor1 * 360) / 100
Porcent2 = ((Valor2 * 360) / 100)
Porcent3 = ((Valor3 * 360) / 100)
Porcent4 = ((Valor4 * 360) / 100)
'Rellena las secciones con diferentes colores
Relleno.Color = pic_ref1.BackColor
Superficie.FillPie(Relleno, RectanguloSuperior, 0, Porcent1)
Relleno.Color = pic_ref2.BackColor
Superficie.FillPie(Relleno, RectanguloSuperior, Porcent1, Porcent2)
Relleno.Color = pic_ref3.BackColor
Superficie.FillPie(Relleno, RectanguloSuperior, Porcent1 + Porcent2, Porcent3)
Relleno.Color = pic_ref4.BackColor
Superficie.FillPie(Relleno, RectanguloSuperior, Porcent1 + Porcent2 + Porcent3, Porcent4)
End Sub
Dim Superficie As Graphics
Dim Lapiz As Pen
Dim RectanguloSuperior As Rectangle
Dim RectanguloInferior As Rectangle
Dim RectanguloRelleno As Rectangle
Dim Relleno As SolidBrush
Dim Fuente As Font
If ActivateGraph_1 = False Then
Pic_Graf1.Image = My.Resources._50px_error
Me.Refresh()
Exit Sub
Else
Pic_Graf1.Image = Nothing
End If
Superficie = e.Graphics
Lapiz = New Pen(Color.Black, 2)
Relleno = New SolidBrush(Color.Gray)
Fuente = New Font("Arial", 12, FontStyle.Bold)
RectanguloSuperior = New Rectangle(5, 5, 100, 50)
RectanguloInferior = New Rectangle(5, 15, 100, 50)
RectanguloRelleno = New Rectangle(10, 30, 95, 15)
Superficie.FillRectangle(Relleno, RectanguloRelleno)
Superficie.FillEllipse(Relleno, RectanguloInferior)
Dim Valor1 As Integer = iPorcent_1_1
Dim Valor2 As Integer = iPorcent_1_2
Dim Valor3 As Integer = iPorcent_1_3
Dim Valor4 As Integer = iPorcent_1_4
Dim Porcent1 As Integer
Dim Porcent2 As Integer
Dim Porcent3 As Integer
Dim Porcent4 As Integer
Porcent1 = (Valor1 * 360) / 100
Porcent2 = ((Valor2 * 360) / 100)
Porcent3 = ((Valor3 * 360) / 100)
Porcent4 = ((Valor4 * 360) / 100)
'Rellena las secciones con diferentes colores
Relleno.Color = pic_ref1.BackColor
Superficie.FillPie(Relleno, RectanguloSuperior, 0, Porcent1)
Relleno.Color = pic_ref2.BackColor
Superficie.FillPie(Relleno, RectanguloSuperior, Porcent1, Porcent2)
Relleno.Color = pic_ref3.BackColor
Superficie.FillPie(Relleno, RectanguloSuperior, Porcent1 + Porcent2, Porcent3)
Relleno.Color = pic_ref4.BackColor
Superficie.FillPie(Relleno, RectanguloSuperior, Porcent1 + Porcent2 + Porcent3, Porcent4)
End Sub
Y ahora... lo que yo me pregunto... es como imprimo el grafico resultante?
Saludos.