forstpointler
Goto Top

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.

Content-Key: 1621

Url: https://administrator.de/contentid/1621

Printed on: April 26, 2024 at 14:04 o'clock

Member: Forstpointler
Forstpointler Jul 29, 2004 at 10:38:18 (UTC)
Goto Top
Problem gelöst, war nur wieder mal ein 2zeiler.
Member: usurpator
usurpator Nov 15, 2005 at 09:54:21 (UTC)
Goto Top
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