Page 1 of 1

color en fuentes de haruPDF (SOLUCIONADO)

Posted: Sat Apr 06, 2019 9:46 am
by miarcod
Alguien usa HARUPdf
Estoy intentando utilizar esta clase pero al indicar una fuente de un color determinado con algunos colores me _.
Pongo un ejemplo

Code: Select all

#define HPDF_COMP_ALL                       0x0F
// HPDF_TextAlignment
#define HPDF_TALIGN_LEFT                    0
#define HPDF_TALIGN_RIGHT                   1
#define HPDF_TALIGN_CENTER                  2
#define HPDF_TALIGN_JUSTIFY                 3

#DEFINE AZUL    CLR_BLUE    //16711680
#DEFINE ROJO    CLR_RED     //255
#DEFINE VERDE   CLR_GREEN   //65280

STATIC FUNCTION TestHaru()
Local oPrint, oFont
oPrint := THaruPdf():New(".\pdf\testharu.pdf", NIL, NIL, NIL, .T., NIL)
oPrint:SetCompression( HPDF_COMP_ALL )
oFont := oPrint:DefineFont( 'Arial', 10 )

oPrint:StartPage()
WITH OBJECT oPrint
    //METHOD CmRect( nTop, nLeft, nBottom, nRight, oPen, nColor )
    :CmSay( 04.02, 10.2, "AZUL",  oFont, 5.0,AZUL     ,, HPDF_TALIGN_LEFT )
    :CmSay( 04.02, 12.2, "HBLUE", oFont, 5.0,CLR_HBLUE,, HPDF_TALIGN_LEFT )

    :CmSay( 04.52, 10.2, "VERDE",  oFont, 5.0,VERDE   ,, HPDF_TALIGN_LEFT )
    :CmSay( 05.02, 10.2, "ROJO",   oFont, 5.0,ROJO    ,, HPDF_TALIGN_LEFT )
    :CmSay( 05.52, 10.2, "GRAY",   oFont, 5.0,CLR_GRAY,, HPDF_TALIGN_LEFT )
    :CmSay( 05.52, 10.2, "GRAY",   oFont, 5.0,CLR_GRAY,, HPDF_TALIGN_LEFT )
    :CmSay( 06.02, 10.2, "YELLOW", oFont, 5.0,CLR_YELLOW,, HPDF_TALIGN_LEFT )


    :CmRect( 08.0, 10.0, 09, 16, 1, CLR_HBLUE)
     :CmSay( 08.2, 10.2, "HBLUE 8,10, 09,16", oFont, 5.0,CLR_HBLUE,, HPDF_TALIGN_LEFT )

    :CmRect( 10.0, 10.0, 11, 16, 2, CLR_HRED)
     :CmSay( 10.2, 10.2, "HRED 10,10, 11,16", oFont, 5.0,CLR_RED, HPDF_TALIGN_LEFT )

    //RoundBox( nTop, nLeft, nBottom, nRight, nWidth, nHeight, oPen, nColor, nBackColor )
     :CMRoundBox(   14,    10,      15,     12,     0.1,     0.1,    3,  CLR_HGREEN,        CLR_YELLOW)
END

oPrint:EndPage()
oprint:eND()
RETURN NIL
 
Alguna pista
Gracias

Re: color en fuentes de haruPDF

Posted: Sat Apr 06, 2019 10:31 am
by cnavarro
Es raro, a mi me funciona bien, y en tu código no veo nada que indique que lo estés haciendo mal
Puedes poner una imagen?
Image

Re: color en fuentes de haruPDF

Posted: Sat Apr 06, 2019 3:45 pm
by miarcod
Perdón por la ignorancia
¿Existe alguna forma de poner una imagen en un mensaje sin necesidad de subirla a algún servidor externo?
Si solo se puede a través de un servidor.
¿Que servidores me recomendáis?

Un saludo

Re: color en fuentes de haruPDF

Posted: Sat Apr 06, 2019 3:55 pm
by cnavarro

Re: color en fuentes de haruPDF

Posted: Sun Apr 07, 2019 9:13 am
by miarcod
gracias

La imagen del pdf que se genera es esta

Image

Re: color en fuentes de haruPDF

Posted: Sun Apr 07, 2019 10:48 am
by cnavarro
Pues no entiendo el motivo, tu ejemplo parece funcionar correctamente

Image

Re: color en fuentes de haruPDF

Posted: Mon Apr 08, 2019 5:57 am
by miarcod
Gracias, voy a probar a realizar un ejemplo aislado del programa en el que estoy trabajando.

Re: color en fuentes de haruPDF

Posted: Tue Apr 09, 2019 6:25 pm
by miarcod
Hola de nuevo
He probado a descargar de nuevo la libreria y a montar otro ejemplo pero los colores siguen saliendo cambiados

La libreria la descargo desde https://bitbucket.org/carlos_mora/pdfprinter ¿será esta la correcta?

Si utilizo los metodos cmSAyBitmap() o cmRect() no obtengo ninguna salida
pero Si enlazo en lugar de usar png.lib de la librería uso png.lib de harbour si funciona el metodo cmsaybitmap()
el método cmRect lo tenía reprogramado creando cuatro lineas...

Estaré mezclando librrerías incompatibles

Esta es la salida que obtengo con el ejemplo que tiene la libreria
Gracias

Image

Re: color en fuentes de haruPDF

Posted: Wed Apr 10, 2019 6:36 pm
by miarcod
Al final lo he solucionado con un parche aunque no me gusta
He modificado los métodos de la clase y en la selección del color hago la llamada a una función que ajusta los colores a lo que me sale impreso

Code: Select all

...
      nClrText := Ajustacolor(nClrText)     // Ajuste colores MAF
      c := HPDF_Page_GetRGBFill( ::hPage )
      HPDF_Page_SetRGBFill( ::hPage, ( Int( nClrText / 0x10000 ) % 256 ) / 256.00, ( Int( nClrText / 0x100 )  % 256 )  / 256.00, ( nClrText  % 256 ) / 256.00 )
 
y estos son los ajustes

Code: Select all

STATIC FUNCTION AjustaColor(nColor)
//RETURN nColor
DO CASE
   CASE nColor == CLR_RED    ; RETURN CLR_BLUE
   CASE nColor == CLR_HRED   ; RETURN CLR_HBLUE
   CASE nColor == CLR_BLUE   ; RETURN CLR_RED
   CASE nColor == CLR_HBLUE  ; RETURN CLR_HRED
   CASE nColor == CLR_CYAN   ; RETURN CLR_YELLOW
   CASE nColor == CLR_YELLOW ; RETURN CLR_HCYAN
   CASE nColor == CLR_HCYAN  ; RETURN CLR_YELLOW
   CASE nColor == CLR_BROWN  ; RETURN CLR_CYAN



ENDCASE
RETURN nColor
 
Un saludo y gracias a todos

Re: color en fuentes de haruPDF

Posted: Wed Apr 10, 2019 7:18 pm
by cnavarro
Prueba con esto ( quitando tu function, claro )

Code: Select all

      HPDF_Page_SetRGBFill( ::hPage, ( nClrText % 256 ) / 256.00,;
                                      ( Int( nClrText / 0x100 )  % 256 )  / 256.00 , (  Int(nClrText / 0x10000 ) % 256 ) / 256.00 )
 

Re: color en fuentes de haruPDF

Posted: Wed Apr 10, 2019 9:05 pm
by miarcod
Con esta modificacion funciona correctamente
Un millon de gracias
Entiendo que en el código que descargué la selección del color se pasa de forma incorrecta
Un saludo

Re: color en fuentes de haruPDF

Posted: Wed Apr 10, 2019 10:20 pm
by cnavarro
Modifica y añade al titulo del primer post del hilo ( Solucionado )
Saludos

Re: color en fuentes de haruPDF

Posted: Fri Apr 12, 2019 8:52 am
by Carlos Mora
Epa! Parece que se me coló un error. Suerte que está Cristobal atento.

Voy a corregir la línea en la librería, es un error evidente. Parece que ninguno hasta ahora habíamos impreso texto en colores!
Como es código abierto, la mejor manera es que la corrección se comparta, por lo que os animo a hacer la corrección en una copia vuestra y hacer un "pull request" con _. ¡Ganamos todos!

Un saludo

Re: color en fuentes de haruPDF

Posted: Sun Apr 14, 2019 11:06 am
by Carlos Mora
Ya está subida la corrección al repositorio, asi es que ya se puede actualizar.
Solo se cambió esa línea en el prg correspondiente.
Gracias a miarcod por reportar el error y al master Cristobal por solucionarlo