RE: EOT-Lite File Format

John, thanks again for the first draft !

Some feedback:
1. We've figured out that the original submission [1] has a typo. The first version number should be 0x00020000, not 0x00010000.
Version 1 is a legacy format that predates t2embed (!).
2. We recommend using 0x00020000 for EOTL files as that version has no rootstrings nor EUDC. This means step #2 checks for that value

For EOTL generators, I think the basic requirements I know of so far are
1. Set the version number to 0x00020000
2. Set the magic number to 0x504C
3. Set the embedding level to one of 0x0000 (installable), 0x0004 (preview and print), 0x0008 (editable), 0x0100 (no subsetting)
or 0x0200 (bitmap only)
4. Set the Italic and Weight fields per their value in the OS/2 table.

We will provide a more formal list shortly...


>-----Original Message-----
>From: [] On Behalf
>Of John Daggett
>Sent: Tuesday, July 28, 2009 5:15 PM
>To: www-font
>Subject: EOT-Lite File Format
>Since file format specs have been provided both for .webfont and ZOT, I
>wanted to sketch out what I imagine would be an EOT-Lite specification.
>I'm not endorsing this, I'm just sketching it out to frame the
>discussion.  It's written as an overlay format, one that can be overlaid
>the EOT-Classic format.  Only data that affects non-EOT-Classic is
>Embedded OpenType Lite (EOT-Lite) File Format
>Below is a description of the EOT-Lite font wrapper.  It is intended
>as a platform-independent wrapper around OpenType font data.  It is
>designed to be compatible with versions of Microsoft Internet Explorer
>that support the EOT format, referred to here as EOT-Classic [2].
>To be compatible with EOT-Classic, refer to that specification.
>All header values are little-endian.  Type names are based on those
>used in the OpenType specification. [1]
>(*) Values marked with an asterick are considered part of EOT-Classic
>    and do not affect load behavior or usage outside of legacy EOT-
>    implementations.
>  ULONG      EOTSize       Total structure length in bytes (including
>string and font data)
>  ULONG      FontDataSize  Length of the OpenType font (FontData) in
>  ULONG      Version       Version number
>  ULONG      Flags         Processing flags
>* USHORT     Padding1[9]   Not used in EOT-Lite, see EOT-Classic [2]
>  USHORT     MagicNumber   Magic number for EOT file - 0x504C
>* ULONG      Padding2[7]   Not used in EOT-Lite, see EOT-Classic [2]
>  ULONG      Reserved[4]   Reserved for future use - 0 for this version
>* USHORT     Padding3      Not used in EOT-Lite, see EOT-Classic [2]
>* BYTE       Padding4[n]   Variable size, not used in EOT-Lite, see EOT-
>Classic [2]
>  BYTE       FontData[FontDataSize]  OpenType font data
>The Version field contains the version number.  Valid version numbers
>are currently 0x00010000, 0x00020001, and 0x00020002.
>The Flags field contains a set of bit flags.  Only the values below
>are recognized in EOT-Lite, all other values are ignored:
>  TTEMBED_TTCOMPRESSED               0x00000004
>  TTEMBED_XORENCRYPTDATA             0x10000000
>The process of activating an EOT-Lite font consists of (1) EOT-Lite
>header validation and (2) font activation.
>EOT-Lite header validation:
>1. Check that MagicNumber is 0x504C.
>2. Check that the version number is either 0x00010000, 0x00020001, or
>are not set.
>If any of these checks fail, the font is not loaded.  The font is
>activated by loading the data at offset (EOTSize - FontDataSize) of
>length (FontDataSize) as a normal OpenType font.
>[1] OpenType specification -

>[2] EOT-Classic -


Received on Thursday, 30 July 2009 22:05:31 UTC