Druck-Problem

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Nick33.

    Druck-Problem

    Hallo! Ich arbeite gerade an einer Druck-Funktion. Ich hab mal mein Gehirn angestrengt und bin bereits so weit, dass mein Programm den Drucktext an den Drucker leitet. Aber der springt nur kurz an und dann lässt er das Drucken doch sein. Zur Info: Der Drucker druckt wohl, an ihm liegts net ;)

    Hier ist mein bisheriger Code:

    VB.NET-Quellcode

    1. Private Sub DruckenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DruckenToolStripMenuItem.Click
    2. If TabControl1.TabCount > 0 Then
    3. PrintDialog1.ShowDialog()
    4. Dim RTB As CustomRTB = TabControl1.SelectedTab.Tag
    5. PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings
    6. PrintDocument1.DocumentName = TabControl1.SelectedTab.Text
    7. PrintDocument1.Site = RTB.Site
    8. PrintDocument1.Print()
    9. End If
    10. End Sub


    Danke schonmal im Vorraus!

    Kouki
    er weiß ja garnicht Was er drucken soll ;). Beim drucken musst du alles mit GDI+ selbst auf das Blatt zeichnen. Das bedeutet du musst das PrintDocument Global als WithEvents deklarieren (oder AddHandler nutzen) und im Event PrintPage die ganze Seite zeichnen, es gibt auch genug C&P Lösungen.
    guck mal in die PrintPageEventArgs des PrintPage Events rein (als Name nat. e). Dort findest du ein Object was ein Graphics-Object representiert und da kannst du ganz einfach mit DrawString drauf zeichnen. Ließ dir mal den GDI+ Teil durch, da wird schon was drin stehen, zudem gibt es ja das umfangreiche Handbuch zu Visual Basic 2008 als OpenBook, da gibt es ein ganzes Kapitel über Drucken ;).
    Also erstmal brauchst du das PrintDocument-Steuerelement.

    Dann füge in das Click-Event deines Drucken-Buttons folgendes ein:

    VB.NET-Quellcode

    1. PrintDocument1.Print()


    Jetzt erstelle das Printpage-Ereignis des PrintDocument-Elementes.

    Dann instanziiere die Graphics-Klasse:

    VB.NET-Quellcode

    1. Dim g As Graphics = e.Graphics


    Dann erstelle eine neue Font, z. B. Arial:

    VB.NET-Quellcode

    1. Dim font As New Font("Arial", 12, FontStyle.Regular, GraphicsUnit.Point)


    Jetzt malen wir aufs Blatt:

    VB.NET-Quellcode

    1. g.DrawString("Dein String", font, Brushes.Black, 20, 20)


    Die DrawString KLasse ist wie folg aufgebaut: (Zu Druckender String, Schriftart, Farbe (Als Brush), X, Y)

    Bitte schön =)