Hallo Manfred!
In der Druckvorschau wird nun alles richtig angezeit.
- Anzahl der Seiten
- Je Seite 3 Druckblöcke
Sag ich dann drucken, so wird nur eine Seite und nur mit diesen Zeilen gedruckt:
' Den Überschriftenblock festlegen
' *************************************************
' Blockverzeichnis
gr.DrawString(DWGFile, MyFont14, Brushes.Black, acXPos, acYPos)
' Trennlinie
gr.DrawLine(Pens.Red, acXPos, acYPos + 12, acXPos + 190, acYPos + 12)
' Materialgruppe filtern und drucken
Dim MGruppe As String = Microsoft.VisualBasic.Right(DWGFile, 3)
gr.DrawString("Für die Materialgruppe - " & MGruppe & " - gibt es folgende" & _
"Blöcke:", MyFont12, Brushes.Black, acXPos, acYPos + 20) Lass ich diese Zeile weg, wird in der Druckvorschau nur die erste Seite angezeigt - vollständig -
e.HasMorePages = ParentFileIndex < ParentFileNames.Count - 1 aber nur die zweite Seite gedruck, aber immerhin so wie sie sein sollte.
Hier noch mal die Übersicht:
'--global
Dim ParentFileIndex As Integer = -1
'...
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As _
System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
' Drawing aktivieren
' ***************************************************************
Dim gr As Graphics = e.Graphics
'...
' Den Überschriftenblock festlegen
' *************************************************
gr.DrawString(DWGFile, MyFont14, Brushes.Black, acXPos, acYPos)
' Trennlinie
gr.DrawLine(Pens.Red, acXPos, acYPos + 12, acXPos + 190, acYPos + 12)
'...
Dim MyDir As New System.IO.DirectoryInfo(DWGFile)
Dim MyFiles As System.IO.FileInfo() = MyDir.GetFiles("*_D.dwg")
Dim MyFile As System.IO.FileInfo
'...
Dim ParentFileNames As List(Of String) = New List(Of String)
For Each MyFile In MyFiles
ParentFileNames.Add(MyFile.Name)
Next
'...
Do While ParentFileIndex < ParentFileNames.Count - 1 And pageindex < 3
pageindex += 1
ParentFileIndex += 1
ParentFileName = ParentFileNames(ParentFileIndex)
'ab hier kommt der Druckblock sprich 3 je Seite
'dieses funktioniert auch.
'...
Loop
e.HasMorePages = ParentFileIndex < ParentFileNames.Count - 1
End Sub Diese letzte Zeile e.HasMorePage ... habe ich in den verschiedensten Varianten probiert.
Aber immer wieder wird nur die letzte Seite gedruckt, oder eine Seite mit nur den Überschriften.
Woran kann dies denn nun liegen?
mfg.
Dirk |