Rubrik: Drucker | VB-Versionen: VB2005, VB2008 | 06.10.08 |
Seitenvorschau als Bild speichern Dieser Tipp zeigt, wie sich der Inhalt des Seitenvorschaufensters als Bild speichern lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 10.300 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wie man Bilder oder Text ausdrucken oder zunächst in einem Seitenvorchaufenster anzeigen kann, haben wir Ihnen bereits gezeigt.
Heute zeigen wir Ihnen, wie sich der Inhalt des Seitenvorschaufensters als Bild abspeichern lässt.
Hierzu erstellen wir einfach einen Screenshot des Clientbereichs der Seitenvorschau und speichern diesen als JPG-Datei ab.
Erstellen Sie ein neues Projekt, platieren auf die Form einen Button und fügen nachfolgenden Code in den Codeteil der Form ein:
Public Class Form1 ' PrintDocument-Objekt Dim WithEvents pDocument As New Printing.PrintDocument ' PrintPreviewDialog Dim WithEvents pDialog As New PrintPreviewDialog
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click With pDialog .Document = pDocument ' Größe des Seitenvorschaufensters auf 800x600 festlegen .Width = 800 .Height = 600 .Top = 0 .Left = 0 ' Vorschau anzeigen .ShowDialog() End With End Sub
Private Sub pDocument_PrintPage(ByVal sender As Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pDocument.PrintPage ' Hier den Code für den Ausdruck einfügen ' ... ' Bsp.: Bild ausdrucken Dim oImage As Image = My.Resources.logo ' 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 im angegebenen Rechteck drucken gr.DrawImage(oImage, r) gr.Dispose() End Sub
Das Erstellen des Screenshots erfolgt im Activated-Ereignis des PrintPreviewDialogs.
Private Sub pDialog_Activated(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles pDialog.Activated ' Höhe der Toolbar Dim tbHeight As Integer = 25 With pDialog.RectangleToScreen(pDialog.ClientRectangle) ' neues Bitmap-Objekt erstellen Dim bmp As New Bitmap(.Width, .Height - tbHeight, _ Imaging.PixelFormat.Format24bppRgb) Using g As Graphics = Graphics.FromImage(bmp) ' Inhalt des Vorschaufensters kopieren g.CopyFromScreen(.Left, .Top + tbHeight - 1, 0, 0, _ New Size(.Width, .Height - tbHeight)) End Using ' Bild als JPG-Datei speichern bmp.Save("d:\test.jpg", Drawing.Imaging.ImageFormat.Jpeg) End With End Sub
End Class