FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Imprimir una linea con varias fuentes. - SOLUCIONADO
Posts: 350
Joined: Wed Nov 02, 2005 03:28 PM
Imprimir una linea con varias fuentes. - SOLUCIONADO
Posted: 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

Saludos,
Regards,

Jose Luis Alepuz
joseluis@mancomputer.com
www.mancomputer.com
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Imprimir una linea con varias fuentes.
Posted: Thu Jul 08, 2021 12:09 PM
Puedes hacerlo cambiando de font, pero en un ancho en CM fijo
Code (fw): Select all Collapse
@ 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
Posts: 350
Joined: Wed Nov 02, 2005 03:28 PM
Re: Imprimir una linea con varias fuentes.
Posted: 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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Imprimir una linea con varias fuentes.
Posted: Thu Jul 08, 2021 01: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
Posts: 350
Joined: Wed Nov 02, 2005 03:28 PM
Re: Imprimir una linea con varias fuentes. - SOLUCIONADO
Posted: Thu Jul 08, 2021 04:36 PM
Asi lo he solucionado :

Code (fw): Select all Collapse
聽 聽 聽 聽 聽 聽 聽 聽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

Continue the discussion