Salve a tutti,
ho la necessità di calcolare le dimensioni giuste del font necessario per stampare un certo numero di caratteri.
Ho quindi fatto questa routine alla quale passo come parametri:
- cFontName, ossia il font che voglio utilizzare, per esempio "Arial"
- n_ColRequiredil numero di caratteri che voglio siano rappresentati in una linea di stampa
- nMaxSize, ossia le dimensioni del foglio in millimetri
Sembra funzioni, però mi restituisce una dimensione di font diversa da quella che utilizzerei ad esempio in Word mentre ho la necessità di ottenere un valore comparabile con Word/Windows.
Qualche idea ?
Grazie.
? GetFontSize("Arial",136,"210")
Function GetFontSize(cFontName,n_ColRequired,nMaxSize)
oPrn:=PrintBegin("")
aPoints:=oPrn:Cmtr2Pix(0,nMaxSize/10)
for nFontWidth:=90 to 1 step -1
oFont:=Tfont():New(cFontName,-nFontWidth)
oPrn:SetFont(oFont)
llv:=oPrn:GetTextWidth(replicate("B",n_ColRequired),oFont)
llv2:=oPrn:Pix2mmtr(0,llv)
if llv2[2]<nMaxSize &&
exit
endif
oFont:End()
sysrefresh()
next
oPrn:End()
return(nFontWidth)