FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Justificado de texto
Posts: 297
Joined: Fri Apr 14, 2006 05:52 PM
Justificado de texto
Posted: Wed Mar 07, 2007 06:46 PM

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

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Justificado de texto
Posted: Thu Mar 08, 2007 11:21 AM

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
Posts: 326
Joined: Sun Oct 09, 2005 05:22 PM
Justificado de texto
Posted: Thu Mar 08, 2007 07:03 PM

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

Continue the discussion