Версия хранится в заголовке файла шрифта, а не в таблице данных шрифта.Если у вас есть объект ttLib.TTFont
(т. Е. Вы открыли файл шрифта с помощью fontTools), вы можете посмотреть на атрибут .sfntVersion
вашего TTFont
объекта, чтобы получить версию (обычно это либо 0x00010000
/Версия 1 или 0x4F54544F
/ OTTO, но возможны и другие значения, см. Ниже).Но этот тип предполагает, что вы уже создали объект TTFont
, открыв файл шрифта, так что это может быть проблемой типа курицы и яйца.Если вам интересно узнать версию, прежде чем пытаться открыть файл / создать TTFont
, вам нужно будет прослушать первые четыре байта (как минимум) вне fontTools.
Примечание: я немного смущен вашим вопросом.Вы упоминаете Type 1, который на самом деле является разновидностью шрифта PostScript, но не (обычно) такого же типа в шрифтах OpenType / sfnt-housed (это будет Type 2 , "Compact Font"Формат "или CFF). - это, предположительно, способ хранения Типа 1 в шрифтах OpenType / sfnt-housed;Apple упоминает об этом в своем справочном руководстве TrueType :
Значения 'true' (0x74727565) и 0x00010000 распознаются OS X и iOS как обозначающие шрифты TrueType.Значение 'typ1' (0x74797031) распознается как относящееся к старому стилю шрифта PostScript, помещенному в оболочку sfnt.Значение «OTTO» (0x4F54544F) указывает шрифт OpenType с контурами PostScript (т. Е. Таблица «CFF» вместо таблицы «glyf»).Другие значения в настоящее время не поддерживаются.
Так что, если typ1
на самом деле то, о чем вы спрашиваете, вы можете искать 0x74797031
/ "typ1" в первых четырех байтах файла,Но фактические typ1
sfnt-размещенные шрифты чрезвычайно редки - почти не существуют.Подавляющее большинство фактических шрифтов Type 1 будет либо в файлах .PFA / .PFB (для платформ не-Mac), либо в файле «Printer Font» (pre-OS X Mac), который будет связан со старым ресурсом.-fork файл "чемодан", содержащий растровые изображения.Файлы шрифтов типа 1 будут иметь %!PS-AdobeFont-1
в качестве первых байтов файла.