Java - Web Como Justificar texto em relatório PDF

621 views
Skip to first unread message

Paulo Alves

unread,
Sep 1, 2009, 1:20:58 PM9/1/09
to gugportoal...@googlegroups.com, sup...@artech-brasil.com

Olá

 

Preciso gerar contratos e aditivos que possuem trechos dinâmicos como a descrição das partes, valor por extenço, etc... e o texto precisa estar “justificado”, como no Word.

Gostaria se alguém tem alguma sugestão para implementar isso em Java web.

 

Desde já agradeço a ajuda.

 

SDS

 

Paulo Alves da Silva

Departamento de Informática

Fone 3205-0756

Cirinvest Trading S/A
paulo...@cirinvest.com 
www.cirinvest.com
Fone/Fax 51 3594-3777 3205-0777
MSN
paulo...@cirinvest.com
Skype pauloadasilva

 Só imprima esta pagina se for realmente necessário. A natureza agradece

 



__________ Informação do ESET NOD32 Antivirus, versão da vacina 4386 (20090901) __________

A mensagem foi verificada pelo ESET NOD32 Antivirus.

http://www.eset.com

Tatiana Golin

unread,
Sep 1, 2009, 2:15:12 PM9/1/09
to gugportoal...@googlegroups.com
Oi Paulo,
eu tive de fazer isso também ...
 
minha solução, parece tosca, mas funcionou.
eu gero um arquivo no word com os dados ... no formato justificado, etc ...
depois na hora de gerar o pdf eu abro este arquivo tipo word, e para cada linha do arquivo eu dou um print no pdf.
se vc encontrar outra solução me avisa.
 
Tatiana



No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.5.409 / Virus Database: 270.13.74/2339 - Release Date: 09/01/09 06:52:00

Fernando Ferreira

unread,
Sep 8, 2009, 9:45:06 PM9/8/09
to GUG Porto Alegre/Brasil
Precisei imprimir contratos com formatação como no word na Web. Uma
outra abordagem para o tema é escrever o contrato diretamente em um
web panel e inserir a tag de justificação no html (é bem simples).
Funciona muito bem. Você pode inserir grids, etc, para exibir dos
dados. O resultado é muito bom e vc pode gerar o PDF a partir da
página web com uma dessas impressoras PDF.

Fernando Ferreira

On 1 set, 14:20, "Paulo Alves" <paulo.al...@cirinvest.com> wrote:
> Olá
>
> Preciso gerar contratos e aditivos que possuem trechos dinâmicos como a
> descrição das partes, valor por extenço, etc... e o texto precisa estar
> “justificado”, como no Word.
>
> Gostaria se alguém tem alguma sugestão para implementar isso em Java web.
>
> Desde já agradeço a ajuda.
>
> SDS
>
> Paulo Alves da Silva
>
> Departamento de Informática
>
> Fone 3205-0756
>
> Cirinvest Trading S/A
>  <mailto:paulo.al...@cirinvest.com> paulo.al...@cirinvest.com  
>  <http://www.cirinvest.com/>www.cirinvest.com
> Fone/Fax 51 3594-3777 3205-0777
> MSN  <mailto:paulo.al...@cirinvest.com> paulo.al...@cirinvest.com

Emmerich Käfer - SWINF

unread,
Oct 20, 2009, 8:55:58 AM10/20/09
to gugportoal...@googlegroups.com

Tatiana,

Quando tu diz que “da um print no pdf”, quer dizer no próprio relatório do Genexus? Não consegui entender como esta retornando as linhas do Word... tem como ajudar?

 

Atenciosamente,

Emmerich Käfer
Software Warranty Informática


Paulo Alves

unread,
Oct 20, 2009, 10:08:41 AM10/20/09
to gugportoal...@googlegroups.com

Pessoal, eu consegui uma rotina em vb para justificar o texto.

 

Como não programo vb, segue a rotina em anexo pra “tradução” para o GX.

 

Acho que ai resolvemos a parada.

 

 

 

SDS

 

 

Paulo Alves da Silva

Departamento de Informática

Fone 3205-0756

Cirinvest Trading S/A
paulo...@cirinvest.com 
www.cirinvest.com
Fone/Fax 51 3594-3777 3205-0777
MSN
paulo...@cirinvest.com
Skype pauloadasilva

 Só imprima esta pagina se for realmente necessário. A natureza agradece




__________ Informação do ESET NOD32 Antivirus, versão da vacina 4525 (20091020) __________



A mensagem foi verificada pelo ESET NOD32 Antivirus.

http://www.eset.com


__________ Informação do ESET NOD32 Antivirus, versão da vacina 4525 (20091020) __________



A mensagem foi verificada pelo ESET NOD32 Antivirus.

http://www.eset.com


__________ Informação do ESET NOD32 Antivirus, versão da vacina 4526 (20091020) __________

Rotina Justificado - VB.pdf

AngrA

unread,
Oct 20, 2009, 11:35:07 AM10/20/09
to gugportoal...@googlegroups.com
Dae Fórum,

Só este tipo de justificar texto, funciona apenas  com fontes onde os caracteres tenham o mesmo tamanho, como Courier New por exemplo. Já fontes do tipo arial não vai ficar legal.

2009/10/20 Paulo Alves <paulo...@cirinvest.com>

Pessoal, eu consegui uma rotina em vb para justificar o texto.

 

Como não programo vb, segue a rotina em anexo pra “tradução” para o GX.

 

Acho que ai resolvemos a parada.

 

 

 

SDS

 

 

Paulo Alves da Silva

Departamento de Informática

Fone 3205-0756

Cirinvest Trading S/A
paulo...@cirinvest.com 
www.cirinvest.com
Fone/Fax 51 3594-3777 3205-0777
MSN
paulo...@cirinvest.com
Skype pauloadasilva

 Só imprima esta pagina se for realmente necessário. A natureza agradece

 

De: gugportoal...@googlegroups.com [mailto:gugportoal...@googlegroups.com] Em nome de Emmerich Käfer - SWINF


Enviada em: terça-feira, 20 de outubro de 2009 10:56
Para: gugportoal...@googlegroups.com




__________ Informação do ESET NOD32 Antivirus, versão da vacina 4525 (20091020) __________



A mensagem foi verificada pelo ESET NOD32 Antivirus.

http://www.eset.com


__________ Informação do ESET NOD32 Antivirus, versão da vacina 4525 (20091020) __________



A mensagem foi verificada pelo ESET NOD32 Antivirus.

http://www.eset.com


__________ Informação do ESET NOD32 Antivirus, versão da vacina 4526 (20091020) __________

Emmerich Käfer - SWINF

unread,
Oct 20, 2009, 11:38:39 AM10/20/09
to gugportoal...@googlegroups.com

Exatamente.. em genexus eu tenho uma rotina que faz isso para mim, mas quero uma justificação correta, para qualquer fonte! A idéia do Word era boa, apenas não compreendi como poderia ler as linhas...

 

Atenciosamente,

Emmerich Käfer
Software Warranty Informática

Paulo Alves

unread,
Feb 2, 2010, 11:52:51 AM2/2/10
to gugportoal...@googlegroups.com, gxbra...@gxtech.com.uy

Olá, ao invés de perguntar alguma coisa, desta vez vai minha contribuição...

 

Hehehe

 

Consegui implementar a rotina para justificar o texto.

 

Detalhe:

Fonte Courier New e não usar NewLine() ou “Ctrl Enter”

 

 

  &Tamanho = 70   // Tamanho do texto no print block

 

   &Texto = 'Declaramos que a duplicata ' + TituloReceberNumero.Trim() + ' emitida por ' + &EmpresaRazaoSocial.Trim() + ' com vencimento em '

   &Texto += Trim(TituloReceberDataVencimento.ToString()) + ', contra o sacado ' + ClienteNome.Trim() + ' no valor de R$ ' + Trim(ToFormattedString(TituloReceberValorTotal))

   &Texto += ' foi devidamente quitada e não nos opomos ao cancelamento do protesto.'

 

   &NLin = GxMlines(&Texto.Trim(), &Tamanho)

   &Lin =1

   Do While &Lin <= &NLin

      &TextoJustificar = GxGetMli(&Texto.Trim(),&Lin, &Tamanho)

      If &Lin < &NLin     // Ultima linha não precisa justificar

         If Len(&TextoJustificar.Trim()) < &Tamanho

            Do 'Justifica'

         Endif

      Endif

 

      &linha = &TextoJustificar

 

      Print Paragrafo

 

      &Lin = &Lin + 1

   Enddo  

 

//==========

Sub 'Justifica'

   &Posicao = 0

   &Espacos = 1

   &PosicaoAtual = 1

   &PosicaoFinal = StrSearchRev(&TextoJustificar, ' ', &Tamanho)  // Pega posição últimos espaços

   Do While Len(&TextoJustificar) < &Tamanho

      Do While &PosicaoAtual < &PosicaoFinal

          Do Case

          Case &Espacos = 1

             &Posicao = StrSearch(&TextoJustificar, ' ', &PosicaoAtual) 

          Case &Espacos = 2

             &Posicao = StrSearch(&TextoJustificar, '  ', &PosicaoAtual) 

          Case &Espacos = 3

             &Posicao = StrSearch(&TextoJustificar, '   ', &PosicaoAtual) 

          Case &Espacos = 4

             &Posicao = StrSearch(&TextoJustificar, '    ', &PosicaoAtual) 

          Case &Espacos = 5

             &Posicao = StrSearch(&TextoJustificar, '     ', &PosicaoAtual) 

          Case &Espacos = 6

             &Posicao = StrSearch(&TextoJustificar, '      ', &PosicaoAtual) 

          EndCase

 

          If &Posicao <> 0

             &InicioRestante = &Posicao + 1

             &Restante       = &Tamanho - &InicioRestante

             &TextoJustificar = Substr(&TextoJustificar, 1, &Posicao) + ‘ ‘ + Substr(&TextoJustificar, &InicioRestante, &Restante)

          Endif

 

          &PosicaoAtual = &InicioRestante + 2

 

          If Len(&TextoJustificar) >= &Tamanho

             Exit

          Endif

  

      Enddo

      If Len(&TextoJustificar) < &Tamanho 

         &Espacos += 1

         &PosicaoAtual = 1

      Endif

   Enddo  

EndSub

 

 

Paulo Alves da Silva

Departamento de Informática

Fone 3205-0756

Cirinvest Trading S/A
paulo...@cirinvest.com 
www.cirinvest.com
Fone/Fax 51 3594-3777 3205-0777
MSN
paulo...@cirinvest.com
Skype pauloadasilva

 Só imprima esta pagina se for realmente necessário. A natureza agradece

 

De: gugportoal...@googlegroups.com [mailto:gugportoal...@googlegroups.com] Em nome de Tatiana Golin


Enviada em: terça-feira, 1 de setembro de 2009 15:15
Para: gugportoal...@googlegroups.com


--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito no Grupo "GUG Porto Alegre/Brasil" nos Grupos do Google.
 Para postar neste grupo, envie um e-mail para gugportoal...@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para gugportoalegrebr...@googlegroups.com
 Para ver mais opções, visite este grupo em http://groups.google.com.br/group/gugportoalegrebrasil?hl=pt-BR

-~----------~----~----~----~------~----~------~--~---


__________ Informação do ESET NOD32 Antivirus, versão da vacina 4387 (20090901) __________



A mensagem foi verificada pelo ESET NOD32 Antivirus.

http://www.eset.com


__________ Informação do ESET NOD32 Antivirus, versão da vacina 4387 (20090901) __________

Higor Morbini

unread,
Aug 9, 2013, 9:03:02 AM8/9/13
to gugportoal...@googlegroups.com, gxbra...@gxtech.com.uy, paulo...@cirinvest.com
Olá, vasculhando encontrei seu topico.

Tentei implementar o codigo que tu forneceu, porem, ele n efetua o print na tela, teria como dar um help?

 Para cancelar a sua inscrição neste grupo, envie um e-mail para gugportoalegrebrasil+unsub...@googlegroups.com

Reply all
Reply to author
Forward
0 new messages