C sharp - Imprimir un Form en SharpDevelop

   
Vista:

Imprimir un Form en SharpDevelop

Publicado por Josue (1 intervención) el 08/02/2013 18:50:59
Hola, estoy trabajando VB en SharpDevelop, mi problema es que necesito imprimir un formulario, estoy utilizando printdialog y print document pero no imprime nada este es mi codigo

Private Sub VistaPrevia(ByVal TipoFuente As String, ByVal TamañoFuente As Byte, _
ByVal TextoImpresion As String, ByVal e As System.Drawing.Printing.PrintPageEventArgs)

Dim Fuente As New Font(TipoFuente, TamañoFuente)
Dim AreaImpresion_Alto, AreaImpresion_Ancho, MargenIzquierdo, MargenSuperior As Integer

With Me.PrintDocument1.DefaultPageSettings
'Area Neta de Impresion (se descuenta los margenes)
AreaImpresion_Alto = .PaperSize.Height - .Margins.Top - .Margins.Bottom
AreaImpresion_Ancho = .PaperSize.Width - .Margins.Left - .Margins.Right
MargenIzquierdo = .Margins.Left
MargenSuperior = .Margins.Top

'Verificar si se ha elegido el modo horizontal
If .Landscape Then
Dim NroTemp As Integer
NroTemp = AreaImpresion_Alto
AreaImpresion_Alto = AreaImpresion_Ancho
AreaImpresion_Ancho = NroTemp
End If
Dim Formato As New StringFormat(StringFormatFlags.LineLimit)
Dim Rectangulo As New RectangleF(MargenIzquierdo, MargenSuperior, _
AreaImpresion_Ancho, AreaImpresion_Alto)
Dim NroLineasImpresion As Integer = CInt(AreaImpresion_Alto / Fuente.Height)
Dim NroLineasRelleno, NroLetrasLinea As Integer
Static CaracterActual As Integer

e.Graphics.MeasureString(Mid(Me.ActiveMdiChild.Controls(0).Text, +1), Fuente, _
New SizeF(AreaImpresion_Ancho, AreaImpresion_Alto), Formato, NroLetrasLinea, _
NroLineasRelleno)
e.Graphics.DrawString(Mid(TextoImpresion, CaracterActual + 1), Fuente, _
Brushes.Black, Rectangulo, Formato)
CaracterActual += NroLetrasLinea
If CaracterActual < TextoImpresion.Length Then
e.HasMorePages = True
Else
e.HasMorePages = False
CaracterActual = 0
End If
End With

End Sub


'PrintDocument.PrintPage (Evento): Se produce cuando se necesita el
'resultado que se va a imprimir para la página actual.

Private Sub PrintDocument2_PrintPage(ByVal sender As System.Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs)
VistaPrevia("Arial", 12, Me.ActiveMdiChild.Controls(0).Text, e)


y mi boton tiene
Sub PrintPreviewButtonClick(sender As Object, e As EventArgs)
PrintDialog1.Document = PrintDocument2
If PrintDialog1.ShowDialog = DialogResult.OK Then
PrintDocument2.Print()
End If

pero no me imprime nada
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder