Justificado de texto

Post Reply
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Justificado de texto

Post by Mike Serra »

Buenas foro!!

Me han planteado una cosilla que no se como solucionar, y es que con la función memoline voy escribiendo un texto en un listado de un cliente, entonces el texto que son lineas de 40 caracteres me lo imprime perfectamente, pero el cliente quiere que el texto salga justificado, pero no quiere que use el tipo de letra Courier New( :( ). ¿Podéis orientarme?

MUCHAS GRACIAS,

Fw 2.8 + xHarbour
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Podrias ir añadiendo espacios al texto y llamando al método oPrinter:GetTextWidth( cText, oFont ) hasta que devuelva el ancho deseado
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Alfredo Arteaga
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico
Contact:

Post by Alfredo Arteaga »

Aquí el código a colocar en el método Say() de TPrinter:

IF nPad=PAD_BOTH .AND. " "$cText // Justificado a ambos lados
nP:=1
DO WHILE ::GetTextWidth( cText, oFont ) < nWidth
FOR nI=nP TO Len(cText)
nP++
cC:=SubStr(cText,nI,1)
IF cC=" "
cText:=Substr(cText,1,nI)+Substr(cText,nI,Len(cText))
nI:=Len(cText)+1
nP++
ENDIF
NEXT nI
IF nP>=Len(cText)-1
nP:=1
ENDIF
ENDDO
ENDIF
Post Reply