[VB2005] PrintDialog Problem

Hallo Leute,

ich schreibe grade an einer Möglichkeit über den PrintDialog in Visual Basic 2005
etwas zu drucken. Mein Problem besteht jetzt darin das ich den Ausdruck im Querformat haben möchte.
Wenn ich es über den Druck Dialog -> Einstellungen Drucker -> Querformat/Landscape
probiere, interessiert es ihn herzlich wenig.

Meine Überlegung ist daher es ihm direkt mit dem Code mitzugeben. Aber wie? Ich habe noch nichts
gefunden womit es funktioniert

anbei mal der Code:

Code:
    Private WithEvents docToPrint As New Printing.PrintDocument


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        PrintDialog1.AllowSomePages = True

        Dim result As DialogResult = PrintDialog1.ShowDialog()

        If (result = Windows.Forms.DialogResult.OK) Then
            docToPrint.Print()
        End If

    End Sub

    Private Sub document_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
           Handles docToPrint.PrintPage

        ' Inhalt
        Dim text As String = "Das ist ein Test."
        Dim printFont As New System.Drawing.Font("Arial", 12, System.Drawing.FontStyle.Regular)

        ' Zeichnen des Rahmens
        ' Links
        e.Graphics.DrawLine(Pens.Black, 10, 10, 10, 500)
        ' Rechts
        e.Graphics.DrawLine(Pens.Black, 500, 10, 500, 500)
        ' Unten
        e.Graphics.DrawLine(Pens.Black, 10, 500, 500, 500)
        ' Oben
        e.Graphics.DrawLine(Pens.Black, 10, 10, 500, 10)

        ' Ausgabe des Strings.
        e.Graphics.DrawString(text, printFont, System.Drawing.Brushes.Black, 200, 10)
    End Sub

mfg Marc
 
Hallo

Das musst Du mit QueryPageSettings einstellen.
Code:
Public Class Form1
    Private WithEvents docToPrint As New Printing.PrintDocument
    Private Ausrichtung As Boolean

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        PrintDialog1.AllowSomePages = True

        If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            Ausrichtung = PrintDialog1.PrinterSettings.DefaultPageSettings.Landscape
            docToPrint.Print()
        End If
    End Sub

    Private Sub docToPrint_QueryPageSettings(ByVal sender As Object, ByVal e As System.Drawing.Printing.QueryPageSettingsEventArgs) Handles docToPrint.QueryPageSettings
        e.PageSettings.Landscape = Ausrichtung
    End Sub

    Private Sub docToPrint_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles docToPrint.PrintPage
        ' Inhalt
        Dim text As String = "Das ist ein Test."
        Dim printFont As New System.Drawing.Font("Arial", 12, System.Drawing.FontStyle.Regular)

        ' Zeichnen des Rahmens
        ' Links
        e.Graphics.DrawLine(Pens.Black, 10, 10, 10, 500)
        ' Rechts
        e.Graphics.DrawLine(Pens.Black, 500, 10, 500, 500)
        ' Unten
        e.Graphics.DrawLine(Pens.Black, 10, 500, 500, 500)
        ' Oben
        e.Graphics.DrawLine(Pens.Black, 10, 10, 500, 10)

        ' Ausgabe des Strings.
        e.Graphics.DrawString(text, printFont, System.Drawing.Brushes.Black, 200, 10)
    End Sub

End Class
 
Zurück