aspose.info
FR

OTF - Format de fichier de police TrueType

Mis à jour le

Qu’est-ce qu’un fichier OTF ?

Un fichier avec l’extension .otf fait référence au format de police OpenType. Le format de police OTF est plus évolutif et étend les fonctionnalités existantes des formats TTF pour la typographie numérique. Développé par Microsoft et Adobe, OTF combine les fonctionnalités des formats de police PostScript et TrueType. Cela permet au format OTF de s’adapter aux systèmes d’écriture majoritaires et c’est pourquoi il est uniformément utilisé sur les principales plates-formes informatiques. Le format de police OpenType est pris en charge par Mac OS X et Windows 2000 et versions ultérieures.

Bref historique

L’exigence des polices OpenType est née de l’exigence d’un format de police plus expressif capable de gérer une typographie fine. En outre, il visait à répondre aux exigences du comportement complexe de nombreux systèmes d’écriture du monde. Microsoft a tenté d’obtenir une licence pour la technologie de typographie avancée d’Apple, connue sous le nom de GX Typography, au début des années 1990. Cela ne s’est pas bien passé et, par conséquent, Microsoft a commencé à améliorer sa propre technologie de police TrueType en 1994. Les modifications comprenaient également l’introduction d’un format de police plus approprié qui répond également aux fonctionnalités des formats de police Type 1 (PostScript) d’Adobe.

Adobe, en 1996, a rejoint Microsoft dans ses efforts pour remplacer à la fois le TrueType d’Apple et ses propres formats de police Type 1. Cela a entraîné la combinaison des deux formats de police sous-jacents pour surmonter les limitations et ajouter de nouvelles extensions. Cette nouvelle technologie a été introduite la même année sous le nom OpenType.

Spécifications du format de fichier OTF

Les spécifications OTF sont disponibles publiquement par Microsoft et peuvent être consultées du point de vue du développeur. Comme TTF, il utilise la même structure de conteneur ‘sfnt’ et est compatible avec les spécifications TrueType. Les données contenues dans un fichier de police OpenType sont utilisées à différentes fins, telles que le calcul de la mise en page du texte, la définition de glyphes en tant que contours TrueType ou Compact Font Format (CFF), la fourniture de bitmaps monochromes ou de couleur ou de documents SVG comme descriptions de glyphes alternatives et des informations de métadonnées.

Types de données OTF

Les fichiers OTF utilisent les types de données suivants qui sont tous en Big Endian.

Type de donnéesDescriptif
uint8Entier non signé 8 bits.
int8Entier signé 8 bits.
uint16Entier non signé 16 bits.
int16Entier signé 16 bits.
uint24Entier non signé 24 bits.
uint32Entier non signé 32 bits.
int32Entier signé 32 bits.
FixéNombre à virgule fixe signé 32 bits (16.16)
FWORDint16 qui décrit une quantité en unités de conception de police.
UFWORDuint16 qui décrit une quantité en unités de conception de police.
F2DOT14Nombre fixe signé 16 bits avec les 14 bits inférieurs de la fraction (2.14).
LONGDATETIMEDate et heure représentées en nombre de secondes depuis 12h00 minuit, le 1er janvier 1904, UTC. La valeur est représentée sous la forme d’un entier 64 bits signé.
ÉtiquetteTableau de quatre uint8 (longueur = 32 bits) utilisé pour identifier un tableau, un axe de variation de conception, un script, un système linguistique, une fonctionnalité ou une ligne de base
Décalage16Décalage court vers une table, identique à uint16, décalage NULL = 0x0000
Décalage32Décalage long vers une table, identique à uint32, décalage NULL = 0x00000000
Version16Point16Valeur 32 bits compressée avec numéros de version majeurs et mineurs. (Voir les numéros de version du tableau.)

Répertoire des tables OTF

Un fichier OTF commence par un répertoire de table. Ce répertoire est la collection de niveau supérieur des tables du fichier de police. Selon le nombre de polices dans un fichier, le répertoire de la table peut se trouver à un emplacement différent dans le fichier. Par exemple, si le fichier de polices n’a qu’une seule police, le répertoire de la table commence à l’octet 0 du fichier. En cas de collection de plusieurs polices OpenType, le début du répertoire de la table est indiqué dans le TTCHeader.

TypeNomDescription
uint32sfntVersion0x00010000 ou 0x4F54544F (‘OTTO’)
uint16numTablesNombre de tables.
uint16searchRangePuissance maximale de 2 inférieure ou égale à numTables, fois 16 ((2**floor(log2(numTables))) * 16, où “**” est un opérateur d’exponentiation).
uint16entrySelector Log2 de la puissance maximale de 2 inférieure ou égale à numTables (log2(searchRange/16), qui est égal à floor(log2(numTables))).
uint16rangeShiftnumTables fois 16, moins searchRange ((numTables * 16) - searchRange).
tableRecordtableRecords[numTables]Tableau d’enregistrements de table—un pour chaque table de niveau supérieur dans la police

Enregistrement de tableau

Pour chaque table de niveau supérieur dans la police, il existe un enregistrement de table composé des champs suivants.

TypeNomDescriptif
ÉtiquettetableTagIdentificateur de table.
uint32somme de contrôleSomme de contrôle pour cette table.
Décalage32décalageDécalage depuis le début du fichier de police.
uint32longueur Longueur de ce tableau.

Chaque tableau du fichier de polices OpenType est représenté par des noms connus sous le nom de balises de tableau. Il est indispensable que tous les enregistrements du tableau soient triés par ordre croissant par balise.

Références

Voir aussi