COMO IMPRIMIR COLORIDO COM RICHTEXTBOX?

SERGIO 11/09/2009 23:58:50
#322682
Pessoal não estou conseguindo imprimir colorido ,eu uso o richtextbox e nele tem o colordialog para eu poder escolher a cor mais só imprime preto?

Public Class Form1
Private PrintPageSettings As New PageSettings
Private StringToPrint As String
Private PrintFont As New Font([Ô]Arial[Ô], 10)

botão imprimir
Try
[ô]Especifica as configurações da página atual
PrintDocument1.DefaultPageSettings = PrintPageSettings
[ô]Especifica o documento para a caixa de dialógo de impressão e mostra
StringToPrint = RichTextBox1.Text
PrintDialog1.Document = PrintDocument1
Dim result As DialogResult = PrintDialog1.ShowDialog
[ô]se clicar em ok,imprime documento para impressora
If result = Windows.Forms.DialogResult.OK Then
PrintDocument1.Print()
End If
Catch ex As Exception
[ô]exibe mensagem de erro
MessageBox.Show(ex.Message)
End Try
End Sub

e tem essa parte que é para imprimir o arquivo se ele for de multiplas páginas

Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim numChars As Integer
Dim numLines As Integer
Dim stringForPage As String
Dim strFormat As New StringFormat
[ô]Com base na configuração de pagina,define o retângulo desenhável na página
Dim rectDraw As New RectangleF( _
e.MarginBounds.Left, e.MarginBounds.Top, _
e.MarginBounds.Width, e.MarginBounds.Height)
[ô]Define a área para determinar quanto texto cabe em uma página
[ô]Diminui a altura por uma linha para assegurar que o texto não seja cortado
Dim sizeMeasure As New SizeF(e.MarginBounds.Width, _
e.MarginBounds.Height - PrintFont.GetHeight(e.Graphics))

[ô]Ao desenhar strings longas,quebra entre palavras
strFormat.Trimming = StringTrimming.Word
[ô]calcula quantos caracteres e linhas podem caber com base em sizeMeasure
e.Graphics.MeasureString(StringToPrint, PrintFont, _
sizeMeasure, strFormat, numChars, numLines)
[ô]Calcula a string que caberá em uma página
stringForPage = StringToPrint.Substring(0, numChars)
[ô]imprime a string na página atual
e.Graphics.DrawString(stringForPage, PrintFont, _
Brushes.Black, rectDraw, strFormat)
[ô]se houver mais texto,indica que há mais páginas
If numChars < StringToPrint.Length Then
[ô]subtrai texto da string que foi impressa
StringToPrint = StringToPrint.Substring(numChars)
e.HasMorePages = True
Else
e.HasMorePages = False
[ô]todo o texto foi impresso,então restaura string
StringToPrint = RichTextBox1.Text
End If


End Sub
JWCELYO 13/09/2009 18:56:33
#322775
aeu não entendi muito bem seu condigo mais acredito que problema este na instacia quando vc defini a as cores abre-se uma nova instacia
mas quando vc vai imprimir abre-se outra instaciar ou seja as configurações da primeira instacia ja não se define mais para esse nova impresão
seria legal vc define as configurações de cor com propriedades
SERGIO 14/09/2009 15:44:47
#322833
na segunda parte do código no evento printdocument_1 é só uma rotina para poder imprimir mais de uma página, eu queria saber como eu defino no código um geito de fazer tipo printfont = richtextbox.forecolor mais desse geito não funciona =/
Tópico encerrado , respostas não são mais permitidas