Mit diesem Beispiel lässt sich ein mehrzeiliger Text mit autom. Wort- und Zeilenumbruch ausdrucken. Erstellt ein neues Windows-Forms-Projekt und platziert eine TextBox, sowie einen CommandButton auf die Form. Die Eigenschaft "MultiLine" der TextBox bitte auf TRUE festlegen und in der Höhe entsprechend anpassen. Beim Klick auf den Command-Button soll der Text mit einer Überschrift versehen ausgedruckt werden. Als kleines Schmankerl wird der Text selbst noch eingrahmt. Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' PrintDocument-Objekt erstellen Dim pd As New System.Drawing.Printing.PrintDocument ' Ereignishandler hinzufügen AddHandler pd.PrintPage, AddressOf Me.Drucken ' Drucker festlegen pd.PrinterSettings.PrinterName = "PDFCreator" ' Ausdruck starten pd.Print() End Sub Private Sub Drucken(ByVal sender As Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) ' Maße des druckbaren Bereichs Dim X As Double = e.MarginBounds.Left Dim Y As Double = e.MarginBounds.Top Dim B As Double = e.MarginBounds.Width Dim H As Double = e.MarginBounds.Height ' Schriftart für Überschrift und eigentlichen Text festlegen Dim Font_Überschrift As New Font("Arial", 10, FontStyle.Bold) Dim Font_Text As New Font("Arial", 10, FontStyle.Regular) ' Höhe des mehrzeiligen Textes Dim Hoch As Double ' Farbe für das Rechteck, das um den mehrzeiligen Text angezeigt wird Dim Schwarz As New Pen(Color.Black, 0.2) With e.Graphics Dim S As SizeF ' Größe (Ausmaß) des mehrzeiligen Textes S = .MeasureString(Me.TextBox1.Text, Font_Text, B) Hoch = Ausgabenhöhe(S, B) ' Überschrift ausgeben .DrawString("Eine kleine Überschrift über dem Rahmen", _ Font_Überschrift, Brushes.Black, X, Y) ' Rechteck für die Ausgabe des Textes Dim drawRect As New RectangleF(X, Y + 20, B, Hoch) ' Text ausgeben .DrawString(Me.TextBox1.Text, Font_Text, Brushes.Black, drawRect) ' Text schwarz einrahmen .DrawRectangle(Schwarz, CInt(X - 2), CInt(Y + 18), CInt(B + 4), CInt(Hoch + 2)) End With ' keine weiteren Seiten e.HasMorePages = False End Sub ' Hilfsfunktion Public Function Ausgabenhöhe(ByVal S As SizeF, ByVal B As Double) As Double Dim H As Double If S.Width > B Then H = (S.Width / B) * S.Height Else H = S.Height End If Return H End Function Dieser Tipp wurde bereits 18.042 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Dieter Otter Alle Datumsangaben einer Datei ermitteln Eine Funktion, welche das Erstellungsdatum, das Datum des letzten Zugriffs und der letzten Speicherung einer Datei zurückgibt. Neu! sevPopUp 2.0 ![]() Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... |
||||||||||||||||
|
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. |
|||||||||||||||||


Text beim Ausdrucken autom. umbrechen (VB.NET)


