Font scaling on Windows

Akash Jain akash96j at gmail.com
Sat Jul 9 03:05:15 UTC 2016


I may not have been clear in what I was trying to convey.

The scaling I am talking about is set using
Format->Character->Position->Rotation/Scaling->Scale Width . The value
this field sets is called scaling factor.

What I want to know is how do we tell Windows that stretched glyphs
have to be drawn?
My understanding is that eventually a FontSelectPattern with width=0
is passed to ImplGetLogFontFromFontSelect of
vcl/win/gdi/salfont.cxx:1285. This function returns a non-zero lfWidth
LOGFONT. The width is set according to the criteria mentioned on the
msdn page. This 100% width is then scaled (scaled width =
100%width*scaling factor/100) and eventually
ImplGetLogFontFromFontSelect with FontSelectPattern object with the
scaled width is called. The function now returns a LOGFONT with a
lfWidth value == scaled width. This is how Windows draws the stretched
glyphs.


More information about the LibreOffice mailing list