0

我正在查看 EMF 文件规范,但似乎从未使用过 LogFontPanose 对象。

EMF 规范: https ://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-emf/91c257d7-c39d-4a36-9b1f-63e3f73d30ca

有几种类型的字体对象可用:LogFont、LogFontEx、LogFontExDv 和 LogFontPanose。

在部分中,他们给出了通过检查字段大小2.3.7.8来确定记录创建哪种类型的字体对象的算法。ExtCreateFontIndirectWelw

如果 elw 字段的大小等于或小于 LogFontPanose 对象的大小(第 2.2.16 节),则 elw 必须被视为固定长度的 LogFont 对象。超出 LogFont 对象范围的字节,直到 elw 字段的末尾,必须被忽略

如果 elw 字段的大小大于 LogFontPanose 对象的大小,则 elw 必须被视为可变长度 LogFontExDv 对象。

按照这种算法,永远无法创建 logFontPanose 对象。如果 elw 是一个 LogFontPanose 长度,它必须是一个 LogFont 对象,panose 对象中的所有字节都被忽略。这是他们规范中的错误吗?

4

0 回答 0