Panel Inhalt im Querformat drucken

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Panel Inhalt im Querformat drucken

    Hallo,
    ich habe schon Google befragt, aber nicht die wirkliche Lösung gefunden..

    Ich möchte den Inhalt (Textboxen, Text, evtl. Bilder usw.) die in einem Panel stehen drucken lassen im Querformat

    jetzt habe ich hier im Forum nur den Code der für das komplette Form zuständig ist gefunden

    VB.NET-Quellcode

    1. Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    2. Dim bmp As New Bitmap(Me.Width, Me.Height)
    3. Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height))
    4. e.Graphics.DrawImage(bmp, 0, 0)
    5. End Sub
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
    8. PrintDocument1.Print()
    9. End If
    10. End Sub


    Umschreiben klappt bei mir irgendwie nicht .. und wenn ich den Code so verwende, kann ich selbst wenn ich beim Drucker die Eigenschaften auf Querformat stelle das Form nicht im Querformat ausdrucken..
    er schneidet es ab.

    Wäre schön, wenn das mit dem Panel klappen würde und ich Hilfe von Euch bekommen könnte.. danke
    Das Zauberwort heißt Landscape.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. PrintDocument1.DefaultPageSettings.Landscape = True
    3. PrintDocument1.Print()
    4. End Sub
    5. Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    6. e.Graphics.DrawString("bla", New Font("Arial", 30), Brushes.Black, 30, 30)
    7. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Okey,
    wenn ich das default Settings nehme dann kann ich mir keinen Drucker auswählen.. deswegen war das mit dem PrintDiag schon so OK denke ich..
    ich will ihm halt nur sagen, dass er im Querformat drucken soll..


    Außerdem muss ich das mit dem Panel noch irgendwie auf die Reihe bekommen

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
    3. PrintDocument1.DefaultPageSettings.Landscape = True
    4. PrintDocument1.Print()
    5. End If
    6. End Sub
    Was ist mit dem Panel?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    tuvok schrieb:

    VB.NET-Quellcode

    1. Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height))
    Da musst Du halt die Grenzen des Labels reinsetzen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim pt As Point = Button1.Location
    3. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hm..
    warum will ich wissen wo der Button sitzt?
    *nachdenk*

    ich habe ja das Panel quasi als Umrandung genutzt.. und das ist genau die größe die ich quasi brauche für mein DIN A4 Blatt hm jetzt muss grad stark überlegen was ich mit der Button Position will?
    weil der Druck Button kommt eh dann später in die Leiste oben
    Ich hätte auch schreiben können:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim pt As Point = PictureBox17.Location
    3. End Sub
    :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    irgendwie versteh ich das grad nicht so ganz .. ich hab da zwar jetzt das panel1 reingesetzt .. aber so ganz richtig war das wohl net .. ich muss mir das mit dem drucken mal richtig anschauen
    denke ich, weil er druckt immer noch das ganze Form

    Also ich habe jetzt mal
    die Location von dem Panel1 angegeben

    VB.NET-Quellcode

    1. Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height))
    2. e.Graphics.DrawImage(bmp, 0, 0)


    dann verschiebt sich nur der Startpunkt auf dem Blatt wo er anfängt zu drucken *seufz*


    VB.NET-Quellcode

    1. Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    2. Dim bmp As New Bitmap(Me.Width, Me.Height)
    3. Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height))
    4. e.Graphics.DrawImage(bmp, 0, 0)
    5. End Sub
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
    8. PrintDocument1.DefaultPageSettings.Landscape = True
    9. PrintDocument1.Print()
    10. Dim pt As Point = Panel1.Location
    11. End If
    12. End Sub

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „tuvok“ ()

    Du bist wohl noch nicht ganz reif für das Hauptforum. :D

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim bmp As New Bitmap(Me.Panel1.Width, Me.Panel1.Height)
    3. Me.Panel1.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Panel1.Width, Me.Panel1.Height))
    4. bmp.Save("c:\Temp\Panel.bmp", Imaging.ImageFormat.Bmp)
    5. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Dim bmp As New Bitmap(Me.Panel1.Width, Me.Panel1.Height)
    Ist doch alles da.
    Das Save ist nur, um sie sich mal schnell ansehen zu können.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Huhu Ihr Helfer...

    ich habe die Option PrintDocument1.DefaultPageSettings.Landscape = True ja nun eingebaut jetzt habe ich das Problem .. das Menü geht ja auf und ich könnte mir theoretisch den Drucker auswählen
    auf dem ich drucken will, das Problem ist nur, das der trotzdem immer den Standard nimmt.. mache ich das Landscape raus dann druckt er wieder nicht im Querformat also so wie ich das gern hätte

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. PrintDocument1.DefaultPageSettings.Landscape = True
    3. PrintDialog1.ShowDialog()
    4. 'PrintPreviewDialog1.ShowDialog()
    5. ' oder
    6. PrintDocument1.Print()
    7. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    das hab ich ja eig. schon


    VB.NET-Quellcode

    1. Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click
    2. If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
    3. PrintDocument1.DefaultPageSettings.Landscape = True
    4. PrintDocument1.Print()
    5. End If
    6. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „tuvok“ ()

    Dieser Dein / mein Code liefert bei mir mit

    VB.NET-Quellcode

    1. Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    2. Dim g As Graphics = e.Graphics
    3. g.DrawString("bla", New Font("Arial", 20), Brushes.Black, 30, 30)
    4. End Sub
    Bilder
    • Quer.jpg

      25,79 kB, 703×492, 228 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo Ihr,
    ich habe immer noch das Problem, wenn ich drucken möchte, dass er immer nur auf dem Standart Drucker drucken möchte.. egal ob ich im Menü einen anderen auswähle oder nicht

    VB.NET-Quellcode

    1. #Region "Form drucken"
    2. Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    3. Dim bmp As New Bitmap(Me.Panel1.Width, Me.Panel1.Height)
    4. Me.Panel1.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Panel1.Width, Me.Panel1.Height))
    5. e.Graphics.DrawImage(bmp, 15, 15)
    6. End Sub
    7. Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click
    8. If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
    9. PrintDocument1.DefaultPageSettings.Landscape = True
    10. PrintDocument1.Print()
    11. End If
    12. End Sub
    13. #End Region



    Desweiteren stehe ich noch vor dem Problem, dass ich jetzt ein TabControl machen möchte, wo quasi 2 verschiedene Panels drin sind.. wie sage ich dann dem PrintDocument,
    welches Panel er drucken soll?

    Danke für die Hilfe