PdfClass como fazer um retangulo com fundo colorido?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1322
Registrado em: 06 Jul 2004 00:44
Contato:

PdfClass como fazer um retangulo com fundo colorido?

Mensagem por ANDRIL »

Bom dia!

Estou desenhando um retangulo, gostaria de colocar as letras pretas e o fundo cinza usando o PDFClass do José Quintas.

Código: Selecionar todos

 oPDF:DrawRetangle( 9, 0, nMaxCol/4, 5.5, Nil, Nil, Nil ) //fundo cinza
 oPDF:DrawText( 10, 1, "Vendedor:", Nil, 8, "Helvetica", Nil, Nil )  //letras pretas
Já procurei na documentação
https://libharu.sourceforge.net/example ... mage_demo_
e fiz testes, consegui alterar a linha do box mas não o background.

Há essa possibilidade?
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20447
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Re: PdfClass como fazer um retangulo com fundo colorido?

Mensagem por JoséQuintas »

Acho que não pensei nisso, mas dá uma olhada no método DrawZebrado() ou algo assim.
Talvez com base nele possamos alterar o DrawRetangle(), se precisar.
A forma de definir cor na harupdf não é igual windows, e não lembro se tentei converter, na época.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20447
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Re: PdfClass como fazer um retangulo com fundo colorido?

Mensagem por JoséQuintas »

olhando o manual da harupdf

List of Color Operators
HPDF_Page_SetGrayFill
HPDF_Page_SetGrayStroke
HPDF_Page_SetRGBFill
HPDF_Page_SetRGBStroke
HPDF_Page_SetCMYKFill
HPDF_Page_SetCMYKStroke

List of Path Painting Operators
HPDF_Page_Stroke
HPDF_Page_ClosePathStroke
HPDF_Page_Fill
HPDF_Page_Eofill
HPDF_Page_FillStroke
HPDF_Page_EofillStroke
HPDF_Page_ClosePathFillStroke
HPDF_Page_ClosePathEofillStroke
HPDF_Page_EndPath

A primeira lista apenas define o padrão
A segunda lista, não sei se tem mais, define um preenchimento
Pra certas coisas, tem a definição e o fim da definição, que seria pra cada desenho.
https://libharu.sourceforge.net/graphics.html

No harbour tem exemplo colorido.


.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20447
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Re: PdfClass como fazer um retangulo com fundo colorido?

Mensagem por JoséQuintas »

test.prg do harbour
ex1.png
ex1.png (107.59 KiB) Exibido 65 vezes
ex2.png
ex2.png (36.94 KiB) Exibido 65 vezes
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1322
Registrado em: 06 Jul 2004 00:44
Contato:

Re: PdfClass como fazer um retangulo com fundo colorido?

Mensagem por ANDRIL »

Olá José!
Seguindo sua dica de verificar o método DrawZebrado() fiz as alterações abaixo:

Era:
oPDF:DrawRetangle( 9, 0, nMaxCol/4, 5.5, Nil, Nil, Nil )
Mudei para
oPDF:DrawRetangle( 9, 0, nMaxCol/4, 5.5, 0.2, 2, {0.7,0.7,0.7} )

Funcionou, desenha um retangulo com a cor cinza no background.
Obrigado!
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20447
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Re: PdfClass como fazer um retangulo com fundo colorido?

Mensagem por JoséQuintas »

Agora que fui olhar os fontes da PDFClass.
Tenho uma versão local, de meu uso, e a do github que é pública.
Nenhuma das duas tem esse DrawRetangle()

Não é pra esconder recursos.
Por exemplo, na minha versão local tem o preview de quando usa saída matricial, obrigando o uso de GTWVG.
Durante a criação do PDF, também mostro na tela a numeração de página que está sendo gerada, é interessante pra acompanhamento.
Isso não poderia estar na versão pública, porque tela depende de lib gráfica em uso, e até se é windows ou linux.
E sabemos que existem muitas libs gráficas: gtwvg, gtwvt, hwgui, hmg 3, hmg extended, oohg, fivewin, xailer, etc.
É complicado manter duas versões da mesma coisa, mas no caso da pdfclass acabou sendo necessário.
Eventualmente posso adicionar algum recurso na versão local, pra testar primeiro, e esquecer de atualizar na versão pública depois.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1322
Registrado em: 06 Jul 2004 00:44
Contato:

Re: PdfClass como fazer um retangulo com fundo colorido?

Mensagem por ANDRIL »

José, buscando no forum como fazer um recibo em PDF achei um tópico acho que 2017 do Jairo, onde ele conseguiu desenhar um recibo e deixou um ZIP com o fonte. Neste zip estava a PdfClass, e através deste exemplo, fui criando o meu recibo.

Tempo depois achei um post que tinha seu repositorio no GitHub, onde baixei a versão mais atual da PdfClass e realmente não dinha a DrawRetangle(), acabei adicionando ela na versão mais recente para compatibilidade com meu código.

Parabéns pelo projeto!
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Responder