aspose.info
FR

CFF2 - Format de fichier de police compact version 2

Mis à jour le

Qu’est-ce qu’un fichier CFF2 ?

Le format de fichier CFF2 est la version 2.0 du format de fichier CFF et permet un stockage efficace des contours de glyphes et des métadonnées similaires au format de fichier CFF. CFF2 diffère de CFF en ce qu’il est destiné à être utilisé dans le contexte d’une police OpenType en tant que table ‘sfnt’ avec la balise CFF2. Il ne peut pas être utilisé en tant que programme autonome et dépend des données d’autres tables OpenType.

Format de fichier CFF2

Les spécifications du format de fichier CFF2 contiennent des détails sur la disposition des données internes, les types de données, les tableaux et d’autres informations internes sur le format de fichier. Il peut être référé pour la référence du développeur. Certains des détails à ce sujet sont les suivants.

Disposition des données

Les données binaires du format de fichier CFF2 sont logiquement organisées en un certain nombre de structures de données distinctes. La disposition dans les données binaires est comme indiqué dans le tableau suivant.

EntréeCommentaires
En-têteEmplacement fixe
Haut DICTEmplacement fixe
INDICE mondial des sous-titresEmplacement fixe
VarianteMagasin
FDSelectPrésent uniquement s’il y a plus d’une police DICT dans la police DICT INDEX.
Font DICT INDEX
Tableau de polices DICTInclus dans la police DICT INDEX.
DICT privéUn par police DICT.

Seules les trois premières structures sont basées sur des emplacements fixes. Les autres sont atteints via des décalages et leur ordre peut être modifié.

Types de données

Le format de fichier CFF2 utilise les types de données suivants.

NomGammeDescription
uint80 à 255nombre non signé 8 bits
uint160 à 65535Numéro non signé 16 bits
uint320 à 4294967295Numéro non signé 32 bits
DécalagevarieDécalages de 1, 2, 3 ou 4 octets (spécifiés par le champ OffSize dans une table d’index)
OffTaille1 à 4Un nombre non signé de 1 octet spécifie la taille d’un ou plusieurs champs Décalage

Il stocke toutes les données numériques multi-octets et les champs de décalage dans l’ordre des octets big-endian. Le format CFF2 est exempt d’octets de remplissage car il ne respecte aucune restriction d’alignement.

Données DICT

Les fichiers CFF2 contiennent les données du dictionnaire de polices sous forme de paires clé-valeur dans un format tokenisé compact. Les clés de dictionnaire sont codées sous forme d’opérateurs de 1 ou 2 octets et les valeurs de dictionnaire sont codées sous forme d’opérandes numériques de taille variable. Trois structures utilisent le format de données DICT : Top DICT, Font DICT et Private DICT. Un certain nombre de types d’opérandes entiers de tailles variables sont définis et codés comme indiqué dans le tableau suivant (le premier octet de l’opérande est b0, le second est b1, etc.).

Tailleplage b0Plage de valeursCalcul de la valeur
132 à 246-107 à +107b0 - 139
2247 à 250+108 à +1131(b0 - 247) * 256 + b1 + 108
2251 à 254-1131 à -108-(b0 - 251) * 256 - b1 - 108
328-32768 à +32767b1 « 8
529-(2^31) à +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

Entête

Les données binaires commencent par un en-tête ayant le format indiqué dans le tableau ci-dessous.

TypeNomDescription
uint8version majeureMettre en forme la version majeure. Réglez sur 2.
uint8version mineureFormater la version mineure. Mettre à zéro.
uint8headerSizeTaille de l’en-tête (octets).
uint16topDictLengthLongueur de la structure Top DICT en octets.

Références

Voir aussi