Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionImports System.Drawing.Printing Public Class ClassImpression Private myimage As Bitmap Private thectrl As Control Private position As Point Private Function Capturectrl() As Bitmap Dim memoryImage As Bitmap Dim memoryGraphics As Graphics memoryImage = Nothing Dim s As Size = thectrl.Size memoryGraphics = thectrl.CreateGraphics memoryImage = New Bitmap(s.Width, s.Height, memoryGraphics) memoryGraphics = Graphics.FromImage(memoryImage) memoryGraphics.CopyFromScreen(thectrl.Location, Point.Empty, New Size(memoryImage.Width, memoryImage.Height), CopyPixelOperation.SourceCopy) Return memoryImage End Function Public Function GetBitmap() As Bitmap Return Capturectrl() End Function Public Sub printdoc(Optional ByVal xp As Integer = 0, Optional ByVal yp As Integer = 0) Try position.X = xp position.Y = yp Dim printdoc As New PrintDocument Dim ppd As New PrintPreviewDialog myimage = Capturectrl() AddHandler printdoc.PrintPage, AddressOf printform 'paramètres de page Dim ps As New PageSettings ps.Landscape = False printdoc.DefaultPageSettings = ps 'indique à la prévisualisation le document à montrer ppd.Document = printdoc ppd.WindowState = FormWindowState.Maximized 'imprssion si ok If ppd.ShowDialog = Windows.Forms.DialogResult.OK Then ppd.Document.Print() End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub printform(ByVal sender As Object, ByVal e As PrintPageEventArgs) Try e.Graphics.DrawImage(myimage, position.X, position.Y) e.HasMorePages = False Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Sub New(ByVal ctrl As Control) thectrl = ctrl End Sub End Class
Dim printer As New ClassImpression(composant de ta form) printer.printdoc(300, 400)
Imports System.Drawing.Printing Public Class ClassImpression Private myimage As Bitmap Private thectrl As Form Private position As Point Private Function Capturectrl() As Bitmap Dim memoryImage As Bitmap Dim memoryGraphics As Graphics memoryImage = Nothing Dim s As Size = thectrl.Size memoryGraphics = thectrl.CreateGraphics memoryImage = New Bitmap(s.Width, s.Height, memoryGraphics) memoryGraphics = Graphics.FromImage(memoryImage) memoryGraphics.CopyFromScreen(thectrl.Location, Point.Empty, New Size(memoryImage.Width, memoryImage.Height), CopyPixelOperation.SourceCopy) Return memoryImage End Function Public Sub printdoc(Optional ByVal xp As Integer = 0, Optional ByVal yp As Integer = 0) Try position.X = xp position.Y = yp Dim printdoc As New PrintDocument Dim ppd As New PrintPreviewDialog myimage = Capturectrl() AddHandler printdoc.PrintPage, AddressOf printform 'paramètres de page Dim ps As New PageSettings ps.Landscape = False printdoc.DefaultPageSettings = ps 'indique à la prévisualisation le document à montrer ppd.Document = printdoc ppd.WindowState = FormWindowState.Maximized 'imprssion si ok If ppd.ShowDialog = Windows.Forms.DialogResult.OK Then ppd.Document.Print() End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub printform(ByVal sender As Object, ByVal e As PrintPageEventArgs) Try e.Graphics.DrawImage(myimage, position.X, position.Y) e.HasMorePages = False Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Public Sub New(ByVal ctrl As Form) thectrl = ctrl End Sub End Class 'dans ta form ajoute un bouton et dans l'event click Private Sub Button1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ButtonPlay.MouseClick Try Dim printer As New ClassImpression(Me) printer.printdoc(0, 0) Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub