| |
VB.NET - Ein- und UmsteigerVB.NET Bild Drucken | | | Autor: mastersnow | Datum: 02.02.11 09:28 |
| Hallo,
ich habe folgendes Problem. Ich erstelle beim Programmstart ein Screenshot und speichere es.
Dieses Screenshot muss jetzt auch direkt gedruckt werden. Leider druckt er nur einen Teil des Screenshots.
Wie kann ich den Ausdruck automatisch anpassen das er komplett auf eine DIN a4 seite kommt.
Vielen Dank | |
Re: VB.NET Bild Drucken | | | Autor: mastersnow | Datum: 02.02.11 11:09 |
| Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
'Screenshot erstellen
'On Error GoTo Fehler
Dim b As New Bitmap(SystemInformation.VirtualScreen.Width, _
SystemInformation.VirtualScreen.Height)
Using g As Graphics = Graphics.FromImage(b)
g.CopyFromScreen(0, 0, 0, 0, b.Size)
End Using
b.Save("H:\screenshot_drucken.jpg", Imaging.ImageFormat.Jpeg)
Dim oImage As Image = Image.FromFile("H:\screenshot_drucken.jpg")
PictureBox1.Image = oImage
With PrintDocument1
' Drucker für den Ausdruck festlegen
'.PrinterSettings.PrinterName = "PDFCreator"
' Dokument-Title
.DocumentName = "Print Picture"
' Ausdruck starten
.Print()
End With
Me.Close()
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
Handles PrintDocument1.PrintPage
Dim gr As Graphics = e.Graphics
' Verweis auf das Bild festlegen
Dim oImage As Image = PictureBox1.Image
' Rechteck für den Ausdruck festlegen
' Position + Originalgröße
Dim p As New Point(e.MarginBounds.Left, e.MarginBounds.Top)
Dim r As New Rectangle(p.X, p.Y, oImage.Width, oImage.Height)
' Bild drucken
gr.DrawImage(oImage, e.MarginBounds)
gr.Dispose()
End Sub
End Class Ich bin jetzt in der zwischenzeit soweit das wir mir das Bild komplett auf die Seite druckt. Jetzt muss ich es nur noch hinbekommen das er es im Querformat druckt das es nicht so verzerrt ist.
Weiß einer wie? | |
Re: VB.NET Bild Drucken | | | Autor: Manfred X | Datum: 02.02.11 11:24 |
| Hallo!
Hier der Code für die verzerrungsfreie Größenanpassung und
Positionierung/Zentrierung eines Bildes in einer vorgegebenen
Fläche.
Dim PrintWidth, PrintHeight As Integer 'Größe Druckfläche
Dim outWidth, outHeight, outLeft, outTop As Integer 'Druckgröße Bild
PrintWidth = 1024 : PrintHeight = 756 'Anpassen für DIN A4
Dim bmp_in As New Drawing.Bitmap("Bilddatei original Screenshot")
Dim bmp_out As New Drawing.Bitmap(PrintWidth, PrintHeight)
Dim g As Drawing.Graphics = Drawing.Graphics.FromImage(bmp_out)
g.Clear(Drawing.Color.White)
'Positionieren und Zoomen
outWidth = CInt(bmp_in.Width / bmp_in.Height * PrintHeight)
outHeight = PrintHeight
outLeft = CInt((PrintWidth - outWidth) / 2) : outTop = 0
If outWidth > PrintWidth Then
outHeight = CInt(bmp_in.Height / bmp_in.Width * PrintWidth)
outWidth = PrintWidth
outTop = CInt((PrintHeight - outHeight) / 2) : outLeft = 0
End If
'Bild in Fläche eintragen
g.DrawImage(bmp_in, outLeft, outTop, outWidth, outHeight)
'Bild speichern
bmp_out.Save("Ausgabebild", Drawing.Imaging.ImageFormat.Jpeg) MfG
Manfred | |
Re: VB.NET Bild Drucken | | | Autor: mastersnow | Datum: 02.02.11 11:30 |
| Ich habe das Bild drehen jetzt einfach über die Querformat ausgabe des Druckers geregelt. Jetzt muss ich nur den Druckrand kleiner bekommen dann bin ich zufrieden.
Me.PrintDocument1.DefaultPageSettings.Landscape = True Das war der Befehl zum drehen des Druckers. | |
Re: VB.NET Bild Drucken | | | Autor: mastersnow | Datum: 02.02.11 11:53 |
| Jao war das einfachste und schnellste, hast du vlt. noch eine Idee wie ich den Rand. ca. 2,5 cm weg bekomme beim drucken? | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|