aspose.info
ES

CFF2 - Formato de archivo de fuente compacta versión 2

Actualizado

¿Qué es un archivo CFF2?

El formato de archivo CFF2 es la versión 2.0 del formato de archivo CFF y permite el almacenamiento eficiente de contornos de glifos y metadatos similares al formato de archivo CFF. CFF2 se diferencia de CFF en que está diseñado para usarse en el contexto de una fuente OpenType como una tabla ‘sfnt’ con la etiqueta CFF2. No se puede utilizar como un programa independiente y depende de los datos de otras tablas OpenType.

Formato de archivo CFF2

Las especificaciones de formato de archivo CFF2 contienen detalles sobre el diseño de datos internos, tipos de datos, tablas y otra información interna sobre el formato de archivo. Se puede referir para referencia del desarrollador. Algunos de los detalles acerca de estos son los siguientes.

Diseño de datos

Los datos binarios del formato de archivo CFF2 se organizan lógicamente como una serie de estructuras de datos separadas. El diseño dentro de los datos binarios es como se muestra en la siguiente tabla.

EntradaComentarios
EncabezadoUbicación fija
Arriba DICTUbicación fija
ÍNDICE Global SubrUbicación fija
VariaciónTienda
FDSelectPresente sólo si hay más de una fuente DICT en el ÍNDICE de fuentes DICT.
Fuente DICT ÍNDICE
Matriz de fuente DICTIncluido en Font DICT INDEX.
DICT PrivadoUno por Fuente DICT.

Solo las primeras tres estructuras se basan en ubicaciones fijas. El resto se alcanza a través de compensaciones, y su ordenación se puede cambiar.

Tipos de datos

El formato de archivo CFF2 utiliza los siguientes tipos de datos.

NombreRangoDescripción
uint80 a 255número sin signo de 8 bits
uint160 a 65535Número sin signo de 16 bits
uint320 a 4294967295Número sin signo de 32 bits
CompensaciónvaríaDesplazamientos de 1, 2, 3 o 4 bytes (especificados por el campo OffSize en una tabla de índice)
Tamaño reducido1 a 4El número sin signo de 1 byte especifica el tamaño de un campo o campos de compensación

Almacena todos los datos numéricos de varios bytes y los campos de compensación en orden de bytes big-endian. El formato CFF2 está libre de bytes de relleno ya que no respeta ninguna restricción de alineación.

Datos DICT

Los archivos CFF2 contienen los datos del diccionario de fuentes como pares clave-valor en un formato tokenizado compacto. Las claves del diccionario se codifican como operadores de 1 o 2 bytes y los valores del diccionario se codifican como operandos numéricos de tamaño variable. Hay tres estructuras que utilizan el formato de datos DICT: Top DICT, Font DICT y Private DICT. Se definen varios tipos de operandos enteros de diferentes tamaños y se codifican como se muestra en la siguiente tabla (el primer byte del operando es b0, el segundo es b1, etc.).

Tamañorango b0Rango de valorCálculo de valor
132 a 246-107 a +107b0 - 139
2247 a 250+108 a +1131(b0 - 247) * 256 + b1 + 108
2251 a 254-1131 a -108-(b0 - 251) * 256 - b1 - 108
328-32768 a +32767b1 « 8
529-(2^31) a +(2^31 - 1)b1 « 24 | b2 « 16 | b3 « 8 | b4

Encabezado

Los datos binarios comienzan con un encabezado que tiene el formato que se muestra en la siguiente tabla.

TipoNombreDescripción
uint8versión principalFormatear la versión principal. Establecer en 2.
uint8versión menorFormato de versión secundaria. Poner a cero.
uint8Tamaño del encabezadoTamaño del encabezado (bytes).
uint16topDictLengthLongitud de la estructura DICT superior en bytes.

Referencias

Véase también