113 lines
4.7 KiB
Plaintext
113 lines
4.7 KiB
Plaintext
|
metadata "med": float32as(0.000000, 0x0)
|
||
|
metadata "cond": float32as(-0.200000, 0xbe4ccccd)
|
||
|
metadata "ext": float32as(0.200000, 0x3e4ccccd)
|
||
|
|
||
|
registered "Extra Compressed": float32as(-0.700000, 0xbf333333)
|
||
|
registered "Ultra Compressed": float32as(-0.700000, 0xbf333333)
|
||
|
registered "Ultra Condensed": float32as(-0.700000, 0xbf333333)
|
||
|
registered "Extra Condensed": float32as(-0.500000, 0xbf000000)
|
||
|
registered "Extra Extended": float32as(0.400000, 0x3ecccccd)
|
||
|
registered "Ext Compressed": float32as(-0.700000, 0xbf333333)
|
||
|
registered "Ultra Expanded": float32as(0.800000, 0x3f4ccccd)
|
||
|
registered "Ultra Extended": float32as(0.800000, 0x3f4ccccd)
|
||
|
registered "Extra Expanded": float32as(0.400000, 0x3ecccccd)
|
||
|
registered "Semi Condensed": float32as(-0.700000, 0xbf333333)
|
||
|
registered "Semi Condensed": float32as(-0.100000, 0xbdcccccd)
|
||
|
registered "Ext Condensed": float32as(-0.500000, 0xbf000000)
|
||
|
registered "SemiCondensed": float32as(-0.100000, 0xbdcccccd)
|
||
|
registered "ExtraExpanded": float32as(0.400000, 0x3ecccccd)
|
||
|
registered "Semi Expanded": float32as(0.100000, 0x3dcccccd)
|
||
|
registered "Semi Extended": float32as(0.100000, 0x3dcccccd)
|
||
|
registered "Ext Expanded": float32as(0.400000, 0x3ecccccd)
|
||
|
registered "Ext Extended": float32as(0.400000, 0x3ecccccd)
|
||
|
registered "SemiExpanded": float32as(0.100000, 0x3dcccccd)
|
||
|
registered "Extra Narrow": float32as(-0.500000, 0xbf000000)
|
||
|
registered "ExtraNarrow": float32as(-0.500000, 0xbf000000)
|
||
|
registered "Extra Wide": float32as(0.800000, 0x3f4ccccd)
|
||
|
registered "Ultra Cond": float32as(-0.700000, 0xbf333333)
|
||
|
registered "Compressed": float32as(-0.500000, 0xbf000000)
|
||
|
registered "Extra Cond": float32as(-0.500000, 0xbf000000)
|
||
|
registered "Semi Cond": float32as(-0.100000, 0xbdcccccd)
|
||
|
registered "Condensed": float32as(-0.200000, 0xbe4ccccd)
|
||
|
registered "ExtraWide": float32as(0.800000, 0x3f4ccccd)
|
||
|
registered "Extended": float32as(0.200000, 0x3e4ccccd)
|
||
|
registered "Expanded": float32as(0.200000, 0x3e4ccccd)
|
||
|
registered "Ext Cond": float32as(-0.500000, 0xbf000000)
|
||
|
registered "Narrow": float32as(-0.400000 , 0xbecccccd)
|
||
|
registered "Compact": float32as(-0.400000, 0xbecccccd)
|
||
|
registered "Cond": float32as(-0.200000, 0xbe4ccccd)
|
||
|
registered "Wide": float32as(0.600000, 0x3f19999a)
|
||
|
registered "Thin": float32as(-0.700000, 0xbf333333)
|
||
|
|
||
|
panose 2, 3, 4: float32as(0.000000, 0x0)
|
||
|
panose 5: float32as(0.200000, 0x3e4ccccd)
|
||
|
panose 6: float32as(-0.200000, 0xbe4ccccd)
|
||
|
panose 7: float32as(0.400000, 0x3ecccccd)
|
||
|
panose 8: float32as(-0.400000, 0xbecccccd)
|
||
|
|
||
|
registered OS2 1: float32as(-0.700000, 0xbf333333)
|
||
|
registered OS2 2: float32as(-0.500000, 0xbf000000)
|
||
|
registered OS2 3: float32as(-0.200000, 0xbe4ccccd)
|
||
|
registered OS2 4: float32as(-0.100000, 0xbdcccccd)
|
||
|
registered OS2 5: float32as(0.000000, 0x0)
|
||
|
registered OS2 6: float32as(0.100000, 0x3dcccccd)
|
||
|
registered OS2 7: float32as(0.400000, 0x3ecccccd)
|
||
|
registered OS2 8: float32as(0.600000, 0x3f19999a)
|
||
|
registered OS2 9: float32as(0.800000, 0x3f4ccccd)
|
||
|
|
||
|
head[0x2d] & 0x20: float32as(-0.200000, 0xbe4ccccd)
|
||
|
head[0x2d] & 0x40: float32as(0.200000, 0x3e4ccccd)
|
||
|
|
||
|
registered default: float32as(0.000000, 0x0)
|
||
|
|
||
|
func (f *CTFont) Width() float64 {
|
||
|
if f.IsRegistered() {
|
||
|
return f.RegistryWidth()
|
||
|
}
|
||
|
|
||
|
width := 0.0
|
||
|
hasWidth := false
|
||
|
|
||
|
if there is an OS2 table {
|
||
|
var usWidthClass uint16
|
||
|
|
||
|
valid := false
|
||
|
if it's 78 bytes or more {
|
||
|
usWidthClass = uint16be(table[6:8])
|
||
|
if usWeightClass <= 10 {
|
||
|
valid = true
|
||
|
} else {
|
||
|
valid = false
|
||
|
}
|
||
|
} else {
|
||
|
usWidthClass = 0
|
||
|
valid = true
|
||
|
}
|
||
|
if valid {
|
||
|
ten := float64as(10.000000, 0x4024000000000000)
|
||
|
negPointFive := float64as(-0.500000, 0xbfe0000000000000)
|
||
|
width = (float64(usWidthClass) div ten) + negPointFive
|
||
|
hasWidth = true
|
||
|
}
|
||
|
}
|
||
|
|
||
|
then there's the style glossary strings comparison:
|
||
|
unregistered "semi condensed": float32as(-0.100000, 0xbdcccccd)
|
||
|
unregistered "extra expanded": float32as(0.400000, 0x3ecccccd)
|
||
|
unregistered "semicondensed": float32as(-0.100000, 0xbdcccccd)
|
||
|
unregistered "extraexpanded": float32as(0.400000, 0x3ecccccd)
|
||
|
unregistered "semi expanded": float32as(0.100000, 0x3dcccccd)
|
||
|
unregistered "semiexpanded": float32as(0.100000, 0x3dcccccd)
|
||
|
unregistered "extra narrow": float32as(-0.500000, 0xbf000000)
|
||
|
unregistered "extranarrow": float32as(-0.500000, 0xbf000000)
|
||
|
unregistered "extra wide": float32as(0.800000, 0x3f4ccccd)
|
||
|
unregistered "condensed": float32as(-0.200000, 0xbe4ccccd)
|
||
|
unregistered "extrawide": float32as(0.800000, 0x3f4ccccd)
|
||
|
unregistered "extended": float32as(0.200000, 0x3e4ccccd)
|
||
|
unregistered "expanded": float32as(0.200000, 0x3e4ccccd)
|
||
|
unregistered "narrow": float32as(-0.400000, 0xbecccccd)
|
||
|
unregistered "wide": float32as(0.600000, 0x3f19999a)
|
||
|
unregistered "thin": float32as(-0.700000, 0xbf333333)
|
||
|
|
||
|
default: float64as(0.000000, 0x0)
|