Nice find omit59!
Must admit I tried something like this but couldn't understand why the value of tmInternalLeading never changed with the font size! I see your scaling effect! If it works, bravo!
I'm going to give this a whirl.
Back in a mo...

Code: Select all
If PrintRequester()
If StartPrinting("Test")
size = 10
printer_DC.l = StartDrawing(PrinterOutput())
printer_DC.l
tm.TEXTMETRIC
GLPrinterDPIX.l = GetDeviceCaps_(printer_DC,#LOGPIXELSX)
GLPrinterDPIY.l = GetDeviceCaps_(printer_DC,#LOGPIXELSY)
StopDrawing()
height=-MulDiv_(size, GLPrinterDPIY, 72)
LoadFont(0, "Arial", height)
printer_DC.l = StartDrawing(PrinterOutput())
DrawingFont(FontID(0))
GetTextMetrics_(printer_DC,tm)
StopDrawing()
fontsize = height + tm\tmInternalLeading
FreeFont(0)
LoadFont(0, "Arial", fontsize)
printer_DC.l = StartDrawing(PrinterOutput())
If printer_DC.l
DrawingFont(FontID(0))
DrawText(0, 30,"New Arial " + Str(size))
StopDrawing()
EndIf
StopPrinting()
EndIf
EndIf