Eu peguei uma solução aqui no fórum, Asimoes. Determina primeiro o número de caracteres por polegada e monta o Setfont() com esse número.... cai certinho no PDF
*-----------------------------------------
FUNCTION impWinPrint(cPrinter,xarqtxt)
*-----------------------------------------
#define DMPAPER_A4 9 // A4 210 x 297 mm
LOCAL oPrinter:= Win_Prn():New(cPrinter), aFonts, x, nColFixed,nColTTF, nColCharSet
LOCAL ncarpol, i, nHandle, cString
.
.
.
nhandle:= fopen( xarqtxt ) // read
cstring:= ""
xmaxlen:= 0
for i:= 1 to 10
IF gfreadline( @cString, nHandle )
IF LEN( cString ) > xmaxLen
xmaxLen:= LEN( cString )
endif
else
exit
endif
next
if xmaxlen <= 85
ncarpol:= 12
elseif xmaxlen <= 100
ncarpol:= 13
elseif xmaxlen <= 136
ncarpol:= 18
elseif xmaxlen <= 160
ncarpol:= 20
elseif xmaxlen <= 190
ncarpol:= 25
endif
oPrinter:SetFont('Courier New',,ncarpol)