Desenhar um retângulo com HPDF

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

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Desenhar um retângulo com HPDF

Mensagem por rubens »

Bom dia...

Estou tentando desenhar um retângulo com a HPDF mas não desenha nada quando abre o pdf.
Estou usando a função

Código: Selecionar todos

HPDF_Page_Rectangle( pdf, 30, 30, 100, 100 )
mas não desenha nada.

Segue o código completo para ver se alguém consegue me ajudar.

Código: Selecionar todos

Function main()

pdf := HPDF_New()
HPDF_SetCompressionMode( pdf, HPDF_COMP_ALL )
page  := HPDF_AddPage(pdf)

						    *   L   R    W    H
HPDF_Page_Rectangle( pdf, 30, 30, 100, 100 )

cFILETOSAVE :=  'TESTEPDF.PDF'
x_ret= HPDF_SaveToFile( pdf, cFILETOSAVE )
HPDF_Free( pdf )
HB_RUN( 'START /MAX sumatra\sumatrapdf.exe -reuse-instance -lang pt '+cFILETOSAVE)   //-restrict -fullscreen
return nil
Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Desenhar um retângulo com HPDF

Mensagem por Toledo »

Rubens, acho que faltou apenas iniciar a página:

Código: Selecionar todos

oPage := HPDF_AddPage(pdf)
HPDF_Page_Rectangle( oPage, 30, 30, 100, 100 )
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Desenhar um retângulo com HPDF

Mensagem por rubens »

Boa tarde Toledo...

Tá inicializando a pagina na linha 05.

Só que não desenha...

Código: Selecionar todos

Function pdf2()

pdf := HPDF_New()
HPDF_SetCompressionMode( pdf, HPDF_COMP_ALL )
oPage 		:= HPDF_AddPage(pdf)

/* HPDF_Page_BeginText(page)
HPDF_Page_MoveTextPos(page,15,height-20)
font 		:= HPDF_GetFont( pdf, "Courier", NIL )
fontsize := 12
HPDF_Page_SetFontAndSize(oPage, font, fontsize)

FOR X = 1 TO 10
   aPos :=HPdf_Page_GetCurrentPos( oPage )
   cCOL :=STR( aPOS[1] )
   cROW :=STR( aPOS[2] )
	HPDF_Page_ShowText(page, 'LINHA: '+cROW +  '  COLUNA: '+cCOL )
	HPDF_Page_MoveTextPos(oPage,0,-12.5)
NEXT

HPDF_Page_EndText(oPage)
*/

*HPDF_Page_FillStroke( pdf ) 
*HPDF_Page_SetRGBFill( pdf, 0.9, 0.9, 0.9 )
*HPDF_Page_SetRGBStroke( pdf, 0.9, 0.9, 0.9 )

						    *   L   R    W    H
HPDF_Page_Rectangle( oPage, 30, 30, 100, 100 )

cFILETOSAVE :=  'TESTEPDF.PDF'
x_ret= HPDF_SaveToFile( pdf, cFILETOSAVE )

HPDF_Free( pdf )

HB_RUN( 'START /MAX sumatra\sumatrapdf.exe -reuse-instance -lang pt '+cFILETOSAVE)   //-restrict -fullscreen

return nil
Se eu "descomento" da linha 07 até a linha 21, ele imprime o texto do for/next. mas não desenha o retângulo.
Com a classe do Quintas eu consegui desenha e fazer o zebrado que eu quero, mas para eu inserir a classe dele no meu projeto agora, vai me dar muito trabalho devido aos relatórios já estarem todos prontos com a minha rotina da HPDF.

Só esse bendito retângulo não sai. Se eu conseguir desenha um, quebro a cabeça mais aqui e desenho o zebrado nos meus relatórios.
Ficou muito jóia os relatórios... Juntando uns códigos aqui e ali, consegui montar uma rotina que reconhece se a impressora é matricial ou laser e já direciona o tipo da impressão conforme o tipo da impressora já gerando o PDF configurado com os códigos ASCII dos relatórios da matricial.

Obrigado,

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Desenhar um retângulo com HPDF

Mensagem por Toledo »

Rubens, segue um demo:

Código: Selecionar todos

#include "harupdf.ch"

Function main()

oPdf := HPDF_New()
HPDF_SetCompressionMode( oPdf, HPDF_COMP_ALL )
oPage  := HPDF_AddPage(oPdf)
HPDF_Page_SetLineWidth( oPage, 1 )
                      *   L   R    W    H
HPDF_Page_Rectangle( oPage, 30, 30, 100, 100 )

HPDF_Page_Stroke( oPage )

cFILETOSAVE :=  'TESTEPDF.PDF'
x_ret= HPDF_SaveToFile( oPdf, cFILETOSAVE )
HPDF_Free( oPdf )
HB_RUN( 'START /MAX sumatra\sumatrapdf.exe -reuse-instance -lang pt '+cFILETOSAVE)   //-restrict -fullscreen
return nil
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Desenhar um retângulo com HPDF

Mensagem por rubens »

Bom dia...

Valeu Toledo...

Clareou, daí o resto foi só pesquisar e testar...

Obrigado...
Veja como ficou, agora todos os relatórios vão ficar com essa aparência...
Obrigado...
:{ :D
Zebrado.png
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desenhar um retângulo com HPDF

Mensagem por JoséQuintas »

Não sei se seguiu o mesmo princípio, mas eu tinha postado por aqui a classe pra PDF:

https://pctoledo.org/forum/viewto ... &start=165

De repente, uma rotina pode ter algo que outra não tem.
Não custa verificar.

Nota:
Nem toda laser imprime o zebrado.
Também dá pra desenhar linhas, imagens, etc.

De qualquer forma, parabéns, nem todo mundo se entendeu com Harupdf.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Desenhar um retângulo com HPDF

Mensagem por rubens »

Quintas...

Eu compilei sua pdfclass, inclusive consegui integrar no meu sistema...
Você simplificou o negócio de tal forma não tem como alguém não conseguir trabalhar com sua classe quando parte do zero.. e a melhor parte a flexibilidade de poder interagir com ela mesclando os métodos dela com as funções da HPDF.
Quando eu tive coragem de dar uma olhada nela eu já tinha feito quase tudo aqui... daí para eu adaptar ela aqui no que já estava pronto ia dar mais trabalho...
Mas só consegui o zebrado por causa da sua classe e de uma postagem que você fez mostrando um exemplo de zebrado e claro que hora que o Toledo mato a charada do Fill.
Mas de qualquer forma tô muito satisfeito.
Muito obrigado Toledo e Quintas...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Desenhar um retângulo com HPDF

Mensagem por Vlademiro »

Amigos, tentei compilar o exemplo postado pelo Toledo, mas deu o seguinte erro :

/usr/bin/ld: /usr/local/lib/harbour/liblibhpdf.a(hpdfstre.o): referência indefinida ao símbolo 'deflate'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line


Uso o harbour 3.2 será que é isso ?
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Desenhar um retângulo com HPDF

Mensagem por Vlademiro »

Up
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Desenhar um retângulo com HPDF

Mensagem por JoséQuintas »

Pelo jeito ainda não resolveu, de minha parte só dá pra chutar:

Código: Selecionar todos

/usr/bin/ld: /usr/local/lib/harbour/liblibhpdf.a(hpdfstre.o): referência indefinida ao símbolo 'deflate'
O erro acima acusa falta de algo da própria LIB.
Pode ser mistura de versões de Harbour, ou bug mesmo.

Código: Selecionar todos

//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
Parece que isso indica a falta de algo na linha de comando.

Tente compilar usando -w3 -es2, porque se faltar alguma definição de arquivo CH, a compilação mostra isso.
Fora isso, não pude perceber se é Linux ou Windows, dependendo do caso, melhor postar no harbour-users pra ter ajuda mais apropriada, ou correção, caso seja bug.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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/
Responder