Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
DrawString, taglio stringa e paragrafi
martedì 15 dicembre 2009 - 11.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
mar 15 dic 2009 - 11:25
Ciao a tutti,
in VB.NET 2005, quando scrivo del testo con l'oggetto PrintPageEventArgs,
ad esempio con:
Dim StringToPrint As String = "Mia stringa ..."
Dim NormalBrush As New System.Drawing.SolidBrush(System.Drawing.Color.Black)
Dim NormalFont As New System.Drawing.Font("Verdana", 8, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point)
Dim StringSize As System.Drawing.SizeF = e.Graphics.MeasureString(StringToPrint, NormalFont)
e.Graphics.DrawString(StringToPrint, NormalFont, NormalBrush, CurrentLeft, CurrentTop)
... come posso gestire questi due casi:
1) StringToPrint in larghezza va oltre lo spazio disponibile (dovrei quindi tagliare la stringa)
2) StringToPrint è un paragrafo, composto da più linee e eventualmente da allineare (devo usare altri metodi?)
Grazie per l'attenzione,
Davide
Allora
,
ecco due soluzioni alternative per il taglio stringa:
Dim Stringa As String = "Mia stringa ...".Trim
Dim Left As Int16 = 150S
Dim Top As Int16 = 150S
Dim MaxWidth As Int16 = 10S
Dim Font As New System.Drawing.Font("Verdana", 8, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point)
Dim Brush As New System.Drawing.SolidBrush(System.Drawing.Color.Black)
Dim Size As System.Drawing.SizeF = e.Graphics.MeasureString(Stringa, Font)
Dim Rettangolo As New System.Drawing.Rectangle(Left, Top, MaxWidth, System.Convert.ToInt16(Size.Height))
e.Graphics.DrawString(Stringa, Font, Brush, System.Drawing.RectangleF.op_Implicit(Rettangolo), New System.Drawing.StringFormat(Drawing.StringFormatFlags.LineLimit))
oppure
For Cut As Byte = 0 To 255
Size = e.Graphics.MeasureString(Stringa, Font)
If (Size.Width > MaxWidth AndAlso Stringa.Length >= 1S) Then ' TAGLIA
Stringa = Stringa.Substring(0, Stringa.Length - 1S).Trim
Else ' NON TAGLIA, STAMPA ED ESCE
e.Graphics.DrawString(Stringa, Font, Brush, Left, Top)
Exit For
End If
Next Cut
Per quanto riguarda i paragrafi, lavori in corso ...
Davide
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !