Stampare una stringa Inclinata (ruoatata)

lunedì 27 ottobre 2008 - 12.44

ridaria Profilo | Expert

Cari amici, ho la necessità di stampare su a4 del testo inclinato, in modo verticale.

Mi spiego meglio:
Devo stampare delle stringhe a margine di un foglio, e tutta la stringa deve essere posta in verticale:

non del titp che segue:
c
i
a
o

Anche le singole lettere devono essere inclinate!


Grazie Mi date una Mano?!

Riccardo
Ridaria

alexmed Profilo | Guru

Ciao

Dim txt As String = "ciao"
Dim the_font As New Font("Times New Roman", 30, FontStyle.Bold, GraphicsUnit.Pixel)
Dim layout_rect As New RectangleF(0, 0, Me.ClientSize.Width - 1, Me.ClientSize.Height - 1)

Dim string_format As New StringFormat
string_format.Alignment = StringAlignment.Center
string_format.LineAlignment = StringAlignment.Center
string_format.FormatFlags = StringFormatFlags.DirectionVertical

e.Graphics.DrawString(txt, the_font, Brushes.Red, layout_rect, string_format)

Oppure:

http://www.java2s.com/Code/VB/2D/RotateandTransformText.htm

Ciao

ridaria Profilo | Expert

grazie per la risposta tutto ok
solo che
la stringa va dall'alto verso il basso, invece mi occorrerebbe che andasse dal basso verso l'alto.
Potresti dirmi cosa modificare o aggiungere?


Grazie di cuore

Riccardo
Ridaria

alexmed Profilo | Guru

Ciao
Prova così,

Dim vFont As New Font("Arial", 5, FontStyle.Regular)

gr.TranslateTransform(100, 100) ' Qui ci metti le coordinate dove vuoi stampare
gr.RotateTransform(270.0F)

gr.DrawString("CIAO", vFont, Brushes.Black, 0, 0)

Dopodichè, se devi scrivere altro devi reimpostare

gr.TranslateTransform(-100, -100)
gr.RotateTransform(-270.0F)

Ciao


ridaria Profilo | Expert

in che senso reimpostare??

Grazie ancora!


Ridaria

alexmed Profilo | Guru

Ciao

Scusa ma prima ero di fretta

Dim gr As Graphics = e.Graphics
Dim vFont As New Font("Arial", 10, FontStyle.Regular)

gr.DrawString("CIAO BLUE", vFont, Brushes.Blue, 10, 10)

gr.TranslateTransform(200, 200)
gr.RotateTransform(270.0F)

gr.DrawString("CIAO RED", vFont, Brushes.Red, 10, 10)
gr.DrawString("CIAO GREEN PRIMA", vFont, Brushes.Green, 10, 10)

gr.ResetTransform()

gr.DrawString("CIAO GREEN DOPO", vFont, Brushes.Green, 10, 10) 'Questa la stampa sopra quella Blue


Il "ResetTransform" ti consente di ripristinare l'origine dalla pagina e l'angolo di direzione.

Tanto per capirci le scritte in verde: hanno le stesse coordinate ma vengono stampate in punti diversi

Spero di essere stato più chiaro

Ciao
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5