| |
VB.NET - Ein- und UmsteigerPrinting - Problem - Nach erster Zeile ist ein Abstand, aber der Rest stimmt :-O | | | Autor: Seek1 | Datum: 30.06.21 17:37 |
| Hallo Leute,
Ich will einfach einen Text ausdrucken, der via vbnewline getrennte ist.
Dazu habe ich mal ein Kleines Programm zum Testen erstellt:
Public PrintString As String
Public linecount As Integer
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
Handles Button1.Click
If PrintDialog.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
Exit Sub
End If
Dim prnt As New Printing.PrintDocument
prnt.PrinterSettings = PrintDialog.PrinterSettings
prnt.DocumentName = "TestPrint " & My.Computer.Clock.LocalTime.ToString
PrintString = ""
For i = 1 To 185
PrintString = PrintString & " " & i & vbNewLine
Next i
linecount = 0
AddHandler prnt.PrintPage, AddressOf PrintPageHandler
prnt.Print()
RemoveHandler prnt.PrintPage, AddressOf PrintPageHandler
End Sub
Public Sub PrintPageHandler(ByVal sender As Object, ByVal args As _
Printing.PrintPageEventArgs)
Dim Lines() As String = PrintString.Split(vbNewLine)
Dim Fontt As New Font("Arial", 10, FontStyle.Regular, _
GraphicsUnit.Pixel)
Dim Actline As String
Dim VerticalPos As Integer = 20
Do
Actline = Lines(linecount)
args.Graphics.DrawString(Actline, Fontt, Brushes.Black, 20, _
VerticalPos)
VerticalPos = VerticalPos + Fontt.Height
If linecount < UBound(Lines) Then
linecount = linecount + 1
End If
If VerticalPos + (4 * Fontt.Height) >= args.PageBounds.Bottom Then
args.HasMorePages = True
Return
End If
Loop Until linecount >= UBound(Lines)
End Sub Nun da Problem:
Es wird folgendes auf der ersten Seite ausgedruckt:
1
2
3
4
5
6
Woher kommt der Abstand bei der ersten Zeile?
Auf den nächsten Seiten scheint es zu stimmen. | |
Re: Printing - Problem - Nach erster Zeile ist ein Abstand, aber der Rest stimmt :-O | | | Autor: Seek1 | Datum: 30.06.21 18:01 |
| Und jetzt haltet euch fest:
Actline = VerticalPos.ToString
args.Graphics.DrawString(Actline, Fontt, Brushes.Black, 20, VerticalPos) ergibt:
20
32
44
56
...
Kein Abstand nach der ersten Zeile !
An was liegt das?
Das Array Actlines wird schön von 1 bix X befüllt.
Da ist keine Leerzeile drinnen.
Wenn ich das Programm durchsteppe, bekomme ich für VerticalPos auch immer die 20, 32, 44, 56, ....
Habe auch schon versucht, ob ein Steuerzeichen mitübergeben wird.
Actline = CStr(Lines(linecount).ToString.Replace(vbNewLine, "N")) Leider ohne Erfolg | |
Re: Printing - Problem - Nach erster Zeile ist ein Abstand, aber der Rest stimmt :-O | | | Autor: Seek1 | Datum: 30.06.21 18:19 |
| Actline = Lines(linecount).TrimStart(CChar(vbCr), CChar(vbLf))
Problem gelöst. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|