Hi Leute!
Ich habe ein PrintDialog und ein Printdocument indem eine Liste generiert wird die über mehrere Seiten geht.
Das drucken über mehrer Seien ist kein Problem. Jetzt will ich erreichen das man im PrintDialog einstellt das nur Seite 1-2 oder nur Seite 2 gedruckt werden sollen. Hab da auch was bei Galileo Open book gefunden aber irgendwie fuktioniert das nicht ganz richtig.
Es sind immoment Date vorhanden für zwei Seiten, Wenn ich im Dialog alle Seiten drucken auswähle kommen auch alle Seiten wie gewünscht raus aber bei Seite 1 bis 1 oder Seite 2 bis 2 kommen nur Blätter mit den Spalten Überschriften.
Kann mir einer helfen wo der Fehler ist?
Ich habe ein PrintDialog und ein Printdocument indem eine Liste generiert wird die über mehrere Seiten geht.
Das drucken über mehrer Seien ist kein Problem. Jetzt will ich erreichen das man im PrintDialog einstellt das nur Seite 1-2 oder nur Seite 2 gedruckt werden sollen. Hab da auch was bei Galileo Open book gefunden aber irgendwie fuktioniert das nicht ganz richtig.
VB.NET-Quellcode
- 'pd3 = Printdocument
- 'Dim von as Integer
- 'Dim bis as Integer
- Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- pd3.DefaultPageSettings.Landscape = True
- Dim d As New PrintDialog() : d.Document = pd3 : d.AllowSomePages = True
- If d.ShowDialog() = DialogResult.OK Then
- pd3.DocumentName = "Musterbuch" & Date.Today.Year
- Select Case d.PrinterSettings.PrintRange
- Case Printing.PrintRange.AllPages
- von = 1 : bis = d.PrinterSettings.MaximumPage
- Case Printing.PrintRange.SomePages
- von = d.PrinterSettings.FromPage : bis = d.PrinterSettings.ToPage
- End Select
- pd3.Print()
- End If
- End Sub
- Private Sub pd3_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pd3.PrintPage
- Dim font1 As New Font("Arial", 10, FontStyle.Regular, GraphicsUnit.Point)
- Dim font2 As New Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Point)
- Dim font3 As New Font("Arial", 25, FontStyle.Bold, GraphicsUnit.Point)
- Dim penAus As New Pen(Brushes.Black, 2)
- Dim penIn As New Pen(Brushes.Black, 1)
- Dim oben As Integer = 120
- Dim zeilen_pro_seite As Integer = 34
- Static zeilenzähler As Integer
- Static counter As Integer = 1
- Static seite = 1
- Dim pagecount As Integer = (mainLoader.Items.Count - 1) / 34
- Dim diff As Integer = mainLoader.Items.Count - 1
- If diff - pagecount > 0 Then
- pagecount += 1
- End If
- 'Seiten Titel aufbauen
- e.Graphics.DrawString("Datum", font2, Brushes.Black, 20, 100)
- e.Graphics.DrawString("Lieferant", font2, Brushes.Black, 100, 100)
- e.Graphics.DrawString("Betreuer", font2, Brushes.Black, 180, 100)
- e.Graphics.DrawString("Muster", font2, Brushes.Black, 300, 100)
- e.Graphics.DrawString("Menge", font2, Brushes.Black, 620, 100)
- e.Graphics.DrawString("Order", font2, Brushes.Black, 680, 100)
- e.Graphics.DrawString("Tracking", font2, Brushes.Black, 820, 100)
- e.Graphics.DrawString("Forw.", font2, Brushes.Black, 945, 100)
- e.Graphics.DrawString("Eingang", font2, Brushes.Black, 1000, 100)
- For counter = counter To mainLoader.Items.Count - 1
- If seite >= von AndAlso seite <= bis Then
- zeilenzähler += 1
- If zeilenzähler >= zeilen_pro_seite Then
- zeilenzähler = 0
- seite += 1
- e.HasMorePages = True
- Exit Sub
- Else
- e.HasMorePages = False
- 'Druck Routine
- End If
- End If
- Next
- e.HasMorePages = False
- zeilenzähler = 0
- counter = 1
Es sind immoment Date vorhanden für zwei Seiten, Wenn ich im Dialog alle Seiten drucken auswähle kommen auch alle Seiten wie gewünscht raus aber bei Seite 1 bis 1 oder Seite 2 bis 2 kommen nur Blätter mit den Spalten Überschriften.
Kann mir einer helfen wo der Fehler ist?