| |
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! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats März 2024 Dieter OtterUTF-8 Konvertierung von Dateien und StringsVB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 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
|
|