Imprimir una linea con varias fuentes. - SOLUCIONADO

Imprimir una linea con varias fuentes. - SOLUCIONADO

Postby Garbi » Thu Jul 08, 2021 10:06 am

Hola,

Necesito imprimir una parte de una alinea en negrita (el codigo), y la siguiente parte (concepto) normal, he estado haciendo pruebas y revisando el foro, pero no consigo hacerlo pongo la linea que necesito imprimir.

oPrn:cmSay( linea,3.6,memoline(alltrim((cpptod)->codigo)+" - "+alltrim((cpptod)->concepto),nlongitudlineat,nlineactualt),oFont)

He intentado esto :
Imprimir el codigo :

oPrn:cmSay( linea,3.6,alltrim((cpptod)->codigo),oFontnegrita)

Averiguar el ancho con

nsize:=oPrn:GetTextWidth(alltrim((cpptod)->codigo),oFontnegrita)

pero me lo da en pixeles y lo paso a cm así :

nancho:=oPrn:Cmtr2Pix(nsize, 0)

y despues imprimo la linea normal :

oPrn:cmSay( linea,3.6+nancho[1]," - "+alltrim((cpptod)->concepto),nlongitudlineat,nlineactualt,oFont)

Pero me da error, no consigo hacerlo.

¿Alguna sugerencia?

Muchas gracias
Last edited by Garbi on Thu Jul 08, 2021 4:34 pm, edited 1 time in total.
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 333
Joined: Wed Nov 02, 2005 3:28 pm

Re: Imprimir una linea con varias fuentes.

Postby cmsoft » Thu Jul 08, 2021 12:09 pm

Puedes hacerlo cambiando de font, pero en un ancho en CM fijo
Code: Select all  Expand view

@ 5.5, 1   PRINT TO oPrn TEXT "C.U.I.T.:"  SIZE 3,.5 CM FONT oFont3 ALIGN "R" //Ancho de 3 cm x 0.5 cm de alto alineado a la derecha
@ 5.5, 4.1 PRINT TO oPrn TEXT oQryVen1:cuit SIZE 6,.5 CM FONT oFont ALIGN "L" //Ancho de 6 cm x 0.5 cm de alto alineado a la izquierda
 

Espero te de una pista
User avatar
cmsoft
 
Posts: 1283
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Imprimir una linea con varias fuentes.

Postby Garbi » Thu Jul 08, 2021 12:22 pm

Eso lo he probado, pero el inconveniente es que el código es variable, pueden contener un carácter o varios y a la hora de imprimirse no queda bien. no me acaba de convencer.

No creo que sea muy difícil saber lo que ocupa el código impreso en negrita para sumarlo al largo de la continuación del código (concepto) pero no consigo sacarlo.

Gracias.
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 333
Joined: Wed Nov 02, 2005 3:28 pm

Re: Imprimir una linea con varias fuentes.

Postby karinha » Thu Jul 08, 2021 1:17 pm

Buen dia. Haga un ejemplo simples, más completo para testes, evite publicar fragmentos de programas, no hay forma de probar fragmentos de programas.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7766
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Imprimir una linea con varias fuentes. - SOLUCIONADO

Postby Garbi » Thu Jul 08, 2021 4:36 pm

Asi lo he solucionado :

Code: Select all  Expand view

               if fv =="oFont" .and. nlineactualt = 1 .and. (!empty((cpptod)->codigo) .or. !empty((cpptod)->concepto))
                   ncolcm:=0
                   oPrn:cmSay( linea,3.6,alltrim((cpptod)->codigo),ofontnegrita)
                   nsize:=oPrn:GetTextWidth(alltrim((cpptod)->codigo),oFontnegrita)
                   ncolmm:= nsize * 25.4 / oPrn:nLogPixelX() // convierto los pixeles en mm
                   ncolcm := ncolmm/10 // convierto los mm en cm.
                   oPrn:cmSay( linea,3.6+ncolcm,memoline(" - "+alltrim((cpptod)->concepto),nlongitudlineat,nlineactualt),oFont)
               elseif  (!empty((cpptod)->codigo) .or. !empty((cpptod)->concepto))
                   oPrn:cmSay( linea,3.6,memoline(alltrim((cpptod)->codigo)+" - "+alltrim((cpptod)->concepto),nlongitudlineat,nlineactualt),&(fv))
               else
                   oPrn:cmSay( linea,3.6,memoline(alltrim((cpptod)->codigo)+alltrim((cpptod)->concepto),nlongitudlineat,nlineactualt),&(fv))
               endif
Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Garbi
 
Posts: 333
Joined: Wed Nov 02, 2005 3:28 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: wilsongamboa and 36 guests