Usuário com melhor resposta
Imprimir Label Centralizado Usando o PrintDocument

Pergunta
-
Bom dia Pessoal, como faço para imprimir uma Label conforme as configurações do Form ?
Fiz a configuração da Label para sair Centralizado, AutoSize = False e TextAlign = Middle Center, Porém na Impressão ele não sai Centralizado... Estou Usando o PrintDocument, com o código Abaixo:
Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
lblnomecracha.TextAlign = ContentAlignment.MiddleCenter
Dim G As Graphics = e.Graphics
Dim c As String = lblnomecracha.Text
Dim fontetexto As New Font("Swis721 Cn BT", lblnomecracha.Font.Size, FontStyle.Bold, System.Drawing.GraphicsUnit.Point)
Dim P As New Point(0, 261)
G.DrawString(c, fontetexto, Brushes.Orange, P)End Sub
OBS: Não queria usar o New Point(0, 261), Queria que ele Buscasse a posição exatamente como ele esta no Form.
Respostas
-
Você pode usar o enum StringFormatFlags para definir uma informação de layout de uma string.
Dim sff As New StringFormatFlags() sff.LineAlignment = StringAlignment.Center sff.Alignment = StringAlignment.Center G.DrawString(c, fontetexto, Brushes.Orange, Me.ClientRectangle, sff)
Ou pode usar o método DrawText da classe TextRenderer.
TextRenderer.DrawText(G, c, fontetexto, Me.ClientRectangle, Color.Orange, TextFormatFlags.HorizontalCenter Or TextFormatFlags.VerticalCenter)
Método TextRenderer.DrawText:
http://msdn.microsoft.com/en-us/library/system.windows.forms.textrenderer.drawtext%28v=vs.110%29.aspxEnumeração StringFormatFlags:
http://msdn.microsoft.com/en-us/library/system.drawing.stringformatflags%28v=vs.110%29.aspx
Enumeração TextFormatFlags:
http://msdn.microsoft.com/en-us/library/system.windows.forms.textformatflags%28v=vs.110%29.aspx- Marcado como Resposta Giovani Cr quarta-feira, 19 de fevereiro de 2014 12:19
Todas as Respostas
-
Você pode usar o enum StringFormatFlags para definir uma informação de layout de uma string.
Dim sff As New StringFormatFlags() sff.LineAlignment = StringAlignment.Center sff.Alignment = StringAlignment.Center G.DrawString(c, fontetexto, Brushes.Orange, Me.ClientRectangle, sff)
Ou pode usar o método DrawText da classe TextRenderer.
TextRenderer.DrawText(G, c, fontetexto, Me.ClientRectangle, Color.Orange, TextFormatFlags.HorizontalCenter Or TextFormatFlags.VerticalCenter)
Método TextRenderer.DrawText:
http://msdn.microsoft.com/en-us/library/system.windows.forms.textrenderer.drawtext%28v=vs.110%29.aspxEnumeração StringFormatFlags:
http://msdn.microsoft.com/en-us/library/system.drawing.stringformatflags%28v=vs.110%29.aspx
Enumeração TextFormatFlags:
http://msdn.microsoft.com/en-us/library/system.windows.forms.textformatflags%28v=vs.110%29.aspx- Marcado como Resposta Giovani Cr quarta-feira, 19 de fevereiro de 2014 12:19
-
Não deu certo amigo,
Dim sff As New StringFormatFlags() sff.LineAlignment = StringAlignment.Center sff.Alignment = StringAlignment.Center G.DrawString(c, fontetexto, Brushes.Orange, Me.ClientRectangle, sff)
Da esse erro: 'LineAlignment' is not member of 'System.Drawing.StringFormatFlags'.
-