PROCEDURE JustifyLine LPARAMETERS tcText lnBarPos = AT('|',tcText) IF lnBarPos = 0 RETURN tcText ENDIF lnLineWidth = gnLineWidthInches * 96 && ??? lnFontWidth = FONTMETRIC(6,gcFontName,gnFontSize) lnSpaceWidth = TXTWIDTH(SPACE(10),gcFontName,gnFontSize) * lnFontWidth / 10 lcLeft = ALLTRIM(LEFT(tcText,lnBarPos - 1)) lnLeftWidth = TXTWIDTH(lcLeft,gcFontName, gnFontSize) * lnFontWidth lcRight = ALLTRIM(SUBSTR(tcText,lnBarPos + 1)) lnRightWidth = TXTWIDTH(lcRight,gcFontName, gnFontSize) * lnFontWidth lnMidWidth = lnLineWidth - lnLeftWidth - lnRightWidth lcMid = SPACE(lnMidWidth/3.78) && The magic number 3.78 is the closest I've got tcText = lcLeft + lcMid + lcRight RETURN tcTextThanbk you for the help.