Grafikausdruck m. Visual Basic
Picturebox auf Drucker ausgeben
Hallo,
sollte jemand mein Problem lösen können, würde ich mich riesig freuen.
Nun mein Problem: In einer Form werden einige Tabelarische Daten in Listfelder und
Textfelder angezeigt, dazu werden in einer Picturebox noch ca. 10 Kurven gezeichnet.
Leider kann ich diese Formular nicht 1:1 (print.form1) auf dem Drucker ausgeben. Die Kurven werden
nicht ausgegeben!
Wer kann mir helfen!
Danke.
Hallo,
sollte jemand mein Problem lösen können, würde ich mich riesig freuen.
Nun mein Problem: In einer Form werden einige Tabelarische Daten in Listfelder und
Textfelder angezeigt, dazu werden in einer Picturebox noch ca. 10 Kurven gezeichnet.
Leider kann ich diese Formular nicht 1:1 (print.form1) auf dem Drucker ausgeben. Die Kurven werden
nicht ausgegeben!
Wer kann mir helfen!
Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1621
Url: https://administrator.de/contentid/1621
Ausgedruckt am: 25.11.2024 um 18:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo forstpointler
mit folgender Funktion habe ich den Ausdruck einer Form am laufen:
Public Sub PrintForm()
' Gibt eine Bildschirmkopie einer am Bildschirm komplett
' sichtbaren Form auf dem Drucker aus (Screenshot).
' Platzieren Sie diesen Code im Form-Klassenmodul der
' Form, die Sie ausdrucken möchten.
' Zunächst: Bildschirmkopie der Form erzeugen.
' Nachteil: Verdeckte und anderweitig nicht sichtbare
' Teile(der) WinForm werden nicht mit in die Grafik ' aufgenommen.
' Graphics-Objekt für die Form erzeugen
Dim formGraphics As Graphics = Me.CreateGraphics
' Kompatible Bitmap erzeugen und Graphics-Objekt abholen
formImage = New Bitmap(Me.Width, Me.Height, formGraphics)
Dim memGraphics As Graphics = Graphics.FromImage(formImage)
' Quell- und Ziel-DCs abholen
Dim sourceDC As IntPtr = formGraphics.GetHdc
Dim targetDC As IntPtr = memGraphics.GetHdc
' Kopieren ("Screenshot")
BitBlt(targetDC, 0, 0, Me.ClientRectangle.Width, Me.ClientRectangle.Height, sourceDC, Me.ClientRectangle.X, Me.ClientRectangle.Y, SRCCOPY)
' Alternative Variante folgend auskommentiert:
' Mit dem folgenden Code wird die gesamte Form (inkl. Rändern
' und Titelzeile) in die Ziel-Bitmap kopiert: ' BitBlt(targetDC, _
' 0, 0, Me.Size.Width, Me.Size.Height, _ ' sourceDC, _
' 0, 0, _ ' SRCCOPY)
' DCs freigeben
formGraphics.ReleaseHdc(sourceDC)
formGraphics.Dispose()
memGraphics.ReleaseHdc(targetDC)
memGraphics.Dispose()
' In formImage steht die Abbildung der Form nun zur Verfügung.
' Die Abbildung aus formImage ausdrucken:
' Bild drehen:
tempbild = formImage
tempbild.RotateFlip(RotateFlipType.Rotate90FlipNone)
formImage = tempbild
PrintDocument1.Print()
formGraphics.Dispose()
End Sub
Private Sub MenuItem12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
PrintForm()
End Sub
Gruss usurpator
mit folgender Funktion habe ich den Ausdruck einer Form am laufen:
Public Sub PrintForm()
' Gibt eine Bildschirmkopie einer am Bildschirm komplett
' sichtbaren Form auf dem Drucker aus (Screenshot).
' Platzieren Sie diesen Code im Form-Klassenmodul der
' Form, die Sie ausdrucken möchten.
' Zunächst: Bildschirmkopie der Form erzeugen.
' Nachteil: Verdeckte und anderweitig nicht sichtbare
' Teile(der) WinForm werden nicht mit in die Grafik ' aufgenommen.
' Graphics-Objekt für die Form erzeugen
Dim formGraphics As Graphics = Me.CreateGraphics
' Kompatible Bitmap erzeugen und Graphics-Objekt abholen
formImage = New Bitmap(Me.Width, Me.Height, formGraphics)
Dim memGraphics As Graphics = Graphics.FromImage(formImage)
' Quell- und Ziel-DCs abholen
Dim sourceDC As IntPtr = formGraphics.GetHdc
Dim targetDC As IntPtr = memGraphics.GetHdc
' Kopieren ("Screenshot")
BitBlt(targetDC, 0, 0, Me.ClientRectangle.Width, Me.ClientRectangle.Height, sourceDC, Me.ClientRectangle.X, Me.ClientRectangle.Y, SRCCOPY)
' Alternative Variante folgend auskommentiert:
' Mit dem folgenden Code wird die gesamte Form (inkl. Rändern
' und Titelzeile) in die Ziel-Bitmap kopiert: ' BitBlt(targetDC, _
' 0, 0, Me.Size.Width, Me.Size.Height, _ ' sourceDC, _
' 0, 0, _ ' SRCCOPY)
' DCs freigeben
formGraphics.ReleaseHdc(sourceDC)
formGraphics.Dispose()
memGraphics.ReleaseHdc(targetDC)
memGraphics.Dispose()
' In formImage steht die Abbildung der Form nun zur Verfügung.
' Die Abbildung aus formImage ausdrucken:
' Bild drehen:
tempbild = formImage
tempbild.RotateFlip(RotateFlipType.Rotate90FlipNone)
formImage = tempbild
PrintDocument1.Print()
formGraphics.Dispose()
End Sub
Private Sub MenuItem12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
PrintForm()
End Sub
Gruss usurpator