PRINT DOCUMENT CONFIGURAR CAMPO DO TIPO MEMO
Boa tarde, pessoal.
Estou desenvolvendo um programa, em vb.net e estou tentando usar o objeto printer, printdocument.
utilizo o seguinte comando: e.Graphics.DrawString(analise.ToString, FonteNormal, Brushes.Black, MargemEsquerda + 100, PosicaoDaLinha, New StringFormat())
os dados do campo analise é do tipo memorando e o meu problema é imprimi-lo no formulário pois ele ultrapassa a largura da página. Como posso configurar para imprimir em mais linhas?
Terei que usar mais 4 campos do tipo memorando, estou parado neste problema, pois se os dados que vierem deste campo for pouco, então não haveria problema. Se alguém puder me ajudar aqui? Obrigado.
Estou desenvolvendo um programa, em vb.net e estou tentando usar o objeto printer, printdocument.
utilizo o seguinte comando: e.Graphics.DrawString(analise.ToString, FonteNormal, Brushes.Black, MargemEsquerda + 100, PosicaoDaLinha, New StringFormat())
os dados do campo analise é do tipo memorando e o meu problema é imprimi-lo no formulário pois ele ultrapassa a largura da página. Como posso configurar para imprimir em mais linhas?
Terei que usar mais 4 campos do tipo memorando, estou parado neste problema, pois se os dados que vierem deste campo for pouco, então não haveria problema. Se alguém puder me ajudar aqui? Obrigado.
Ola Hélio,
Não sei qual a complexidade do seu relatório, mas pq vc não usa o report viewer? Ele quebra o texto automaticamente para vc...
Não sei qual a complexidade do seu relatório, mas pq vc não usa o report viewer? Ele quebra o texto automaticamente para vc...
Oi Ichirara, obrigado. O relatório não é complexo, há apenas uma tabela, bd é access 2007. Eu até pensei em utilizar o report viewer, o problema estava em posicionar os campos no relatório também, rsrsrsrsrsr. Para mim parecia mais fácil o print repórter ... mas estou totalmente aberto a ideias. Obrigado.
Alguém ai teria alguma ideia ou solução para este probleminha?
Pessoal, me indicaram o MeasureString, então fiz assim:
Dim linhadeimpressao As New SizeF(670, FonteNormal.Height)
PosicaoDaLinha = PosicaoDaLinha + 25
e.Graphics.DrawString([Ô]Analise Situação:[Ô], FonteNegrito, Brushes.Black, MargemEsquerda, PosicaoDaLinha, New StringFormat())
PosicaoDaLinha = PosicaoDaLinha + 25
While analise.Length > 0
e.Graphics.MeasureString(analise, FonteNormal, linhadeimpressao, StringFormat.GenericDefault, caracteres, linhas)
e.Graphics.DrawString(analise.Substring(0, caracteres), FonteNormal, Brushes.Black, MargemEsquerda, PosicaoDaLinha, New StringFormat)
PosicaoDaLinha += FonteNormal.Height
If PosicaoDaLinha > e.MarginBounds.Height Then
Exit While
End If
analise = analise.Substring(caracteres)
LinhaAtual += 1
End While
[ô]PosicaoDaLinha = PosicaoDaLinha + 25
e.Graphics.DrawString(analise.ToString, FonteNormal, Brushes.Black, MargemEsquerda, PosicaoDaLinha, New StringFormat())
PosicaoDaLinha = PosicaoDaLinha + 30
consegui quebrar o texto, mas não estou conseguindo montar a palavra no final da frase. Por exemplo, [Ô]correspondente[Ô] no final da folha, esta colocando [Ô]c[Ô] e na próxima linha [Ô]orrespondente[Ô] , em diversas palavras esta ocorrendo isto.
Alguém ai teria uma solução ?
Dim linhadeimpressao As New SizeF(670, FonteNormal.Height)
PosicaoDaLinha = PosicaoDaLinha + 25
e.Graphics.DrawString([Ô]Analise Situação:[Ô], FonteNegrito, Brushes.Black, MargemEsquerda, PosicaoDaLinha, New StringFormat())
PosicaoDaLinha = PosicaoDaLinha + 25
While analise.Length > 0
e.Graphics.MeasureString(analise, FonteNormal, linhadeimpressao, StringFormat.GenericDefault, caracteres, linhas)
e.Graphics.DrawString(analise.Substring(0, caracteres), FonteNormal, Brushes.Black, MargemEsquerda, PosicaoDaLinha, New StringFormat)
PosicaoDaLinha += FonteNormal.Height
If PosicaoDaLinha > e.MarginBounds.Height Then
Exit While
End If
analise = analise.Substring(caracteres)
LinhaAtual += 1
End While
[ô]PosicaoDaLinha = PosicaoDaLinha + 25
e.Graphics.DrawString(analise.ToString, FonteNormal, Brushes.Black, MargemEsquerda, PosicaoDaLinha, New StringFormat())
PosicaoDaLinha = PosicaoDaLinha + 30
consegui quebrar o texto, mas não estou conseguindo montar a palavra no final da frase. Por exemplo, [Ô]correspondente[Ô] no final da folha, esta colocando [Ô]c[Ô] e na próxima linha [Ô]orrespondente[Ô] , em diversas palavras esta ocorrendo isto.
Alguém ai teria uma solução ?
nAnalise = Analise.Substring(caracteres)
If Len(nAnalise) > 0 Then
Letra = nAnalise.Substring(0, 1)
Do While Not Letra = [Ô] [Ô] Or Letra = [Ô],[Ô] Or Letra = [Ô].[Ô]
caracteres -= 1
nAnalise= Analise.Substring(caracteres)
Letra = nAnalise.Substring(0, 1)
Loop
End If
Oi Damasceno, boa tarde, Quando alterei a lógica pela sua dica, entrou em loop , e sem substituir do do while not letra ...., corta a palavra e joga o restante para a linha de baixo. Mas preciso estudar um pouco mais, pois quando imprimo mais registros, não está paginando corretamente. Tá um sufoco, rsrsrsrsrsr ( O texto é só abobrinha, para testar o tamanho mesmo).
Pessoal,
Acabei utilizando o reportviewer mesmo. Estava fazendo o agrupamento errado. Mas tudo resolvido.
Obrigado.
Acabei utilizando o reportviewer mesmo. Estava fazendo o agrupamento errado. Mas tudo resolvido.
Obrigado.
Tópico encerrado , respostas não são mais permitidas