Formato de fuente web abierta (.woff)

Recomendación Estándar

Web Open Font Format (WOFF) es el primer formato de fuentes web abiertas, respaldado por el W3C. Envuelve fuentes TrueType u OpenType con compresión zlib y metadatos XML de licencia.

Inspección y metadatos

Los sistemas operativos y analizadores de archivos identifican los archivos de WOFF inspeccionando la secuencia de bytes binarios inicial:

Selecciona o arrastra archivos aquí

Privado - los archivos nunca salen de tu dispositivo

o pega Ctrl+V
Garantía de privacidad sin transmisión de red: 0 bytes subidos a servidores externos. Todo el procesamiento se realizó de forma local en el entorno seguro de tu navegador.

Firma de cabecera a nivel de bytes (bytes mágicos)

Los sistemas operativos y analizadores de archivos identifican los archivos de WOFF inspeccionando la secuencia de bytes binarios inicial:

FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):

77 4F 46 46

REPRESENTACIÓN ASCII: wOFF

Estandarización: Recomendación de la W3C (2012)

Especificaciones técnicas

Arquitectura del contenedorCabecera WOFF de 44 bytes seguida del directorio de tablas, datos de tablas comprimidos con zlib, metadatos extendidos opcionales y datos privados
CompresiónCompresión Deflate (zlib) aplicada a cada tabla de fuentes individual
Orden de bytes (Endianness)Big-Endian (Estándar SFNT)
Espacios de colorHeredado de las tablas de fuentes subyacentes
Canales y estructuraContornos de glifos TrueType («glyf») o PostScript («CFF »), métricas y funciones tipográficas
Dimensiones máximasHasta 65 535 glifos por archivo de fuente
TransparenciaHeredado del formato de fuente subyacente
Streaming y progresivoLa descompresión de tablas individuales permite cargar fuentes progresivamente.

Matriz de comparación técnica: WOFF frente a la competencia

Atributo técnicoWOFF (Actual)WOFF2TTFOTF
Códec de compresiónDeflate (zlib) por tablaBrotli con preprocesamiento de tablasSFNT sin comprimirSFNT sin comprimir
Firma mágicawOFF (0x77 0x4F 0x46 0x46)wOF2 (0x77 0x4F 0x46 0x32)0x00 0x01 0x00 0x00OTTO (0x4F 0x54 0x54 0x4F)
Tamaño de archivo relativoAprox. un 40 % menos que TTFAprox. un 60 % menos que TTFTamaño de referencia (100 %)Tamaño de referencia (100 %)
Entorno de destinoNavegadores web heredados (IE9+, Safari 5+)La compatibilidad varía según el navegador.Sistemas operativos de escritorioAutoedición e impresión

Modos de corrupción comunes y guía de recuperación hexadecimal

La consola del navegador muestra «Failed to decode downloaded font: OTS parsing error» (no se pudo descodificar la fuente descargada: error de análisis OTS).

Causa raíz: La longitud declarada de una tabla sin comprimir no coincide con la real o el flujo zlib está dañado.

Recuperación: Vuelve a comprimir las tablas de fuentes o convierte la fuente a WOFF2 con Font Converter de File2File.app.

Análisis de seguridad y vectores de ataque al analizador

Los navegadores usan OpenType Sanitizer (OTS) para analizar los archivos WOFF descargados de sitios que no son de confianza y bloquear contenido malicioso.

Vectores de ataque conocidos

  • Lectura fuera de los límites del búfer al descomprimir con zlib fragmentos dañados de las tablas de fuentes.
  • Los campos de longitud de tabla no coincidentes pueden provocar desbordamientos de búfer en la memoria dinámica de los motores de fuentes.
  • Denegación de servicio por agotamiento de memoria durante la expansión de las tablas de fuentes.

Mejores prácticas defensivas: Valida siempre con OTS los archivos WOFF descargados antes de pasarlos a los motores de fuentes del sistema operativo.

Orígenes históricos e hitos

2018WOFF2 lo sustituye como formato preferido para fuentes web gracias a la mayor eficiencia de la compresión Brotli.
2012El W3C publica WOFF 1.0 como recomendación oficial de estándar web.
2009Henrik Rydgård, Tal Leming y Jonathan Kew especifican WOFF para resolver los problemas de licencias de fuentes web.

Ventajas principales

  • Puede reducir el tamaño de los archivos de fuentes web frente a TTF u OTF sin comprimir; el ahorro depende de la fuente y del codificador.
  • Es compatible con prácticamente todos los navegadores web de escritorio y móviles publicados desde 2011.
  • Incluye un bloque opcional de metadatos XML con licencias de fuentes, créditos de autor e información de derechos de la fundición tipográfica.

Limitaciones técnicas

  • WOFF2 ha sustituido a WOFF en muchos flujos de trabajo web. Usa compresión Brotli y transformaciones de tablas de fuentes; el ahorro de tamaño varía.
  • No se puede instalar directamente en sistemas operativos de escritorio (Windows/Mac) sin conversión a TTF/OTF.
  • El algoritmo de compresión zlib más antiguo es menos eficiente que los codificadores de entropía modernos.

Curiosidades técnicas interesantes

  • Los bytes mágicos para WOFF 1.0 son 'wOFF' (0x77 0x4F 0x46 0x46), mientras que WOFF 2.0 utiliza 'wOF2'.
  • Las fundiciones tipográficas aceptaron incluir sus fuentes en la web cuando WOFF permitió distinguirlas de las fuentes de escritorio que podían piratearse.
  • WOFF se implementó originalmente en Firefox 3.6 en 2010 antes de convertirse en una recomendación oficial de la W3C.

Preguntas técnicas frecuentes

¿Cuál es la diferencia entre WOFF y WOFF2?

WOFF usa compresión zlib y WOFF2 usa el algoritmo Brotli de Google y transformaciones de tablas. Por eso, los archivos WOFF2 ocupan aproximadamente un 30 % menos que los WOFF.

¿Cómo puedo convertir una fuente WOFF a TTF o OTF para uso de escritorio?

Puedes convertir archivos WOFF en fuentes de escritorio TTF o OTF instalables en segundos usando File2File.app directamente en tu navegador web.

¿Todavía necesito WOFF 1.0 en sitios web modernos?

No. Todos los navegadores modernos admiten WOFF2 de forma nativa. WOFF 1.0 solo es necesario si debes dar soporte a navegadores heredados obsoletos como Internet Explorer.