|
Using Portable TrueType Metrics
Applications that use the TrueType text metrics can achieve a high degree of
printer and document portability; even applications that must maintain
compatibility with earlier versions of Windows can use the TrueType metrics.
Design widths overcome most of the problems of device-dependent text
introduced by physical devices. Design widths are a kind of logical width. Independent
of any rasterization problems or scaling transformations, each glyph has a
logical width and height. Composed to a logical page, each character in a string has
a place that is independent of the physical device widths. Although a logical
width implies that widths can be scaled linearly at all point sizes, this is
not necessarily true for either nonportable or most TrueType fonts. At smaller
point sizes, some glyphs are made wider relative to their height for better
readability.
The characters in TrueType core fonts are designed against a 2048 by 2048
grid. The design width is the width of a character in these grid units. (TrueType
supports any integer grid size up to 16,384 by 16,384; grid sizes that are
integer powers of 2 scale faster than other grid sizes.)
The font outline is designed in notional units. The em square is the notional
grid against which the font outline is fitted. (You can use the otmEMSquare member of OUTLINETEXTMETRIC and the ntmSizeEM member of NEWTEXTMETRIC to retrieve the size of the em square in notional units.) When a font is
created that has a point size (in device units) equal to the size of its em square,
the ABC widths for this font are the desired design widths. For example,
assume the size of an em square is 1000 and the ABC widths of a character in the
font are 150, 400, and 150. A character in this font that is 10 device units high
would have ABC widths of 1.5, 4, and 1.5, respectively. Since the MM_TEXT
mapping mode is most commonly used with fonts (and MM_TEXT is equivalent to device
units), this is a simple calculation.
Because of the high resolution of TrueType design widths, applications that
use them must take into account the large numeric values that can be created.
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|