Principio de subconjuntos de fuentes PDF: por qué reduce el 90 % del tamaño

Conclusión primero: los subconjuntos de fuentes PDF pueden reducir el 90 % del tamaño; la causa raíz es que las fuentes chinas suelen ocupar 15-20 MB, mientras que un documento realmente solo usa uno o dos mil caracteres. El principio central del subconjuntado son tres pasos: escanear el conjunto de caracteres realmente usados en el documento, reconstruir la tabla de mapeo CMap y remapear los índices de glifos descartando los no utilizados. Source Han Serif completo ocupa 18 MB; tras el subconjuntado, solo 0,4 MB, una reducción del 97,7 %. A continuación se explica la estructura de archivos de fuentes, el principio técnico del subconjuntado y datos comparativos de tres fuentes.

Si aún no está familiarizado con los métodos generales de compresión PDF, le recomendamos leerPrincipios de compresión PDF: principios y métodos

1. Estructura de archivos de fuentes: por qué las fuentes chinas incrustadas son tan grandes

Para entender por qué el subconjuntado es eficaz, primero hay que comprender qué contiene un archivo de fuente. Los archivos TrueType (.ttf) y OpenType (.otf) constan de múltiples tablas de datos, cada una responsable de diferentes funciones. Al incrustarse en PDF, estas tablas se empaquetan completas en el archivo, independientemente de cuántos caracteres use el documento.

Tabla de datosFunciónProporción típica¿Recortable por subconjuntado?
cmapMapeo de codificación de caracteres a índice de glifo1%–3%Requiere reconstrucción
glyfDatos de contorno de glifo TrueType70%–85%Recortable en gran medida
CFFContorno de glifo OpenType CFF (PostScript)60%–80%Recortable en gran medida
locaÍndice de posición de datos de glifo1%–2%Requiere reconstrucción
hmtxMétrica horizontal (ancho/avance)2%–5%Requiere reconstrucción
nameMetadatos: nombre de fuente, copyright, etc.0.5%–1%Conservar
postMapeo de nombres PostScript1%–3%Recorte parcial

Como se puede observar en la tabla anterior, los datos de contorno de glifo (tabla glyf o CFF) representan el 60 %–85 % del tamaño del archivo de fuente. Una fuente china contiene entre 20 000 y 70 000 glifos; cada carácter chino tiene un promedio de 300–600 bytes de datos de contorno vectorial, sumando 10–20 MB en total. Sin embargo, un documento PDF de 50 páginas normalmente solo usa 800–2000 caracteres diferentes, lo que significa que más del 95 % de los datos de glifo se desperdician — precisamente el espacio de compresión que aprovecha el subconjuntado.

2. Principio de subconjuntado: tres pasos para recortar glifos no utilizados

La idea central del subconjuntado de fuentes es conservar solo los glifos que el documento realmente usa y descartar el resto. El proceso se divide en tres pasos clave, cada uno implicando operaciones precisas sobre la estructura de las tablas de fuente.

PasoOperaciónPrincipioTablas procesadas
1. Escaneo de uso de caracteresRecorrer el flujo de contenido de todas las páginas PDF y extraer los códigos de caracteres mostradosRecopilar puntos de código Unicode analizando operadores de texto (Tj/TJ)Ninguna (genera conjunto de caracteres)
2. Reconstrucción de tabla CMapReconstruir el mapeo de codificación a índice de glifo según los caracteres usadosConservar solo las entradas de mapeo de caracteres usados, eliminar el restocmap
3. Remapeo de índices de glifoReordenar continuamente los glifos usados y actualizar todos los índices de referenciaLos índices originales pueden no ser consecutivos; tras el remapeo, van de 0 a N consecutivamenteglyf/CFF, loca, hmtx

1. Escaneo de uso de caracteres

El primer paso es escanear el documento PDF para encontrar todos los caracteres realmente mostrados. El texto en PDF se escribe en el flujo de contenido mediante operadores de texto (Tj muestra cadenas, TJ muestra arrays), donde cada carácter corresponde a una codificación. La herramienta de subconjuntado recorre el flujo de contenido de todas las páginas, extrae estas codificaciones y las convierte a puntos de código Unicode mediante la tabla CMap actual de la fuente, obteniendo finalmente un "conjunto de caracteres usados".

Durante el escaneo también se manejan casos especiales: CMap ToUnicode (mapeo inverso), codificación multibyte (común en fuentes CJK) y el prefijo de subconjuntado de fuentes incrustadas (formato de seis caracteres + signo). Un PDF chino de 50 páginas normalmente produce 800–2000 caracteres Unicode diferentes; sumando signos de puntuación y dígitos, se conservan aproximadamente 1000–2500 glifos.

2. Reconstrucción de tabla CMap

La tabla CMap es el "directorio" de la fuente, registrando el índice de glifo (glyph ID) correspondiente a cada codificación de carácter. La tabla CMap de una fuente china original contiene entre 20 000 y 70 000 mapeos; tras el subconjuntado, solo se conservan las entradas de los caracteres usados. La reconstrucción también debe manejar múltiples formatos de subtabla de codificación.

Formato de subtabla CMapRango de codificaciónPropósitoProcesamiento de subconjuntado
Format 00–255Un byte ASCII/LatinRecortar entradas no usadas
Format 4Plano básico BMPCaracteres comunes CJKReconstruir tabla de segmentos
Format 12Unicode completoCubre todos los caracteresRecortar segmentos no usados

3. Remapeo de índices de glifo

Este es el paso más crítico y complejo. En la fuente original, los índices de glifo (GID) se disponen consecutivamente de 0 a N, pero los glifos a conservar pueden estar dispersos. El remapeo consiste en reordenar los glifos conservados en una nueva secuencia continua: el GID 0 original (.notdef) permanece sin cambios, el GID 1523 original puede convertirse en el nuevo GID 1, el GID 8944 en el nuevo GID 2, y así sucesivamente.

Tras el remapeo, se deben actualizar sincrónicamente todas las tablas que referencian GID: la tabla glyf (o CFF) conserva solo los datos de glifo correspondientes y los ordena por el nuevo índice; la tabla loca reconstruye el índice de posiciones; la tabla hmtx reconstruye los datos de métrica horizontal; la tabla post actualiza el mapeo de nombres PostScript. Un manejo incorrecto en este paso puede dañar la fuente, por lo que se debe seguir estrictamente la especificación OpenType.

3. Datos reales: comparación antes y después del subconjuntado de tres fuentes

Seleccionamos tres fuentes comunes para pruebas de subconjuntado, representando fuentes chinas (Source Han Serif, Microsoft YaHei) y fuentes en inglés (Arial). El documento de prueba es una licitación china de 50 páginas, con 1342 caracteres usados.

FuenteArchivo originalGlifos (original)Glifos (subconjunto)Tras subconjuntadoReducción
Source Han Serif Regular18.2MB6553513420.42MB97.7%
Microsoft YaHei Regular15.6MB2862213420.35MB97.8%
Arial Regular0.82MB3257960.06MB92.7%

Los datos muestran que el subconjuntado es más efectivo en fuentes chinas: Source Han Serif pasa de 18,2 MB a 0,42 MB, una reducción del 97,7 %. Esto se debe a que las fuentes chinas tienen muchos glifos (60 000+) pero el documento usa pocos (1000+), ofreciendo un enorme espacio de recorte. La fuente Arial en inglés originalmente ocupa solo 0,82 MB; tras el subconjuntado, 0,06 MB, una reducción del 92,7 %; aunque el tamaño absoluto es pequeño, la proporción es igualmente considerable.

Veamos el efecto del subconjuntado con diferentes volúmenes de caracteres, usando Source Han Serif como ejemplo:

Tipo de documentoCaracteres usadosTamaño tras subconjuntadoReducciónNotas
Notificación breve (1 pág.)Aprox. 2000.08MB99.6%Muy pocos caracteres, subconjunto mínimo
Acta de reunión (10 págs.)Aprox. 6000.19MB99.0%Documento de oficina diario
Licitación (50 págs.)Aprox. 13420.42MB97.7%Documento profesional, amplia cobertura de caracteres
Manual técnico (200 págs.)Aprox. 28000.85MB95.3%Gran volumen de caracteres usados
Enciclopedia (1000 págs.)Aprox. 65001.92MB89.5%Cerca de la cobertura máxima

4. Comparación de herramientas de subconjuntado y recomendaciones por escenario

Existen diversas herramientas para el subconjuntado de fuentes, desde herramientas de línea de comandos de código abierto hasta motores de compresión comerciales, cada una con sus ventajas e inconvenientes. La tabla siguiente compara las soluciones principales.

HerramientaCapacidad de subconjuntadoSoporte CFFProcesamiento por lotesDificultad de integración
SmartSlim★★★★★AdmiteSDK/API/escritorio
fonttools (Python)★★★★☆Requiere scriptMedia
Adobe Acrobat★★★★☆LimitadoOperación GUI
Ghostscript★★★☆☆ParcialAdmiteLínea de comandos
Herramientas online★★☆☆☆ParcialNo admiteBaja (riesgo de privacidad)

SmartSlim, basado en un motor de compresión Rust propio, maneja automáticamente ambos formatos de glifo (TrueType y OpenType CFF) durante el subconjuntado y admite el procesamiento por lotes de cientos de PDF mediante arrastrar y soltar. Más importante aún, todo el proceso de subconjuntado se completa localmente; los datos de fuentes y el contenido del documento no pasan por ningún servidor externo, lo que es especialmente crítico para documentos confidenciales y archivos sensibles de empresas.

Recomendaciones de estrategia de subconjuntado por escenario:

Escenario¿Subconjuntado recomendado?PrecaucionesHerramienta recomendada
Archivo y distribución finalMuy recomendadoTras subconjuntar no se pueden editar nuevos caracteresSmartSlim
Archivo por lotes empresarialMuy recomendadoUsar API para procesamiento automático por lotesSmartSlim Server
Publicación/vista previa onlineRecomendadoReducir tamaño de descarga mejora velocidad de cargaScript fonttools
Borrador que aún requiere ediciónNo recomendadoConservar fuente completa para ediciónNo subconjuntar por ahora
Documento confidencial/secretosoRecomendadoDebe procesarse localmente, prohibir herramientas onlineSmartSlim

Para más técnicas de optimización PDF, consulteGuía de optimización de linearización PDFyMétodos de compresión de documentos Word

5. Preguntas frecuentes (FAQ)

Q1: ¿El subconjuntado de fuentes PDF afecta a la visualización?

No. El subconjuntado de fuentes solo descarta los caracteres y datos de glifo no utilizados en el documento; los caracteres conservados son idénticos a los de la fuente original, sin impacto en la visualización. Tras el subconjuntado, la fuente sigue siendo de contorno vectorial, sin distorsión al ampliar o reducir; atributos como color y grosor también se mantienen. La única limitación es que la fuente subconjuntada solo puede usarse en ese documento y no puede reutilizarse en otros.

Q2: ¿Cuánto tamaño puede reducir el subconjuntado de fuentes?

Depende de la relación entre el número de caracteres usados y el tamaño original de la fuente. Las fuentes chinas (p. ej., Source Han Serif 18 MB) normalmente usan solo 1000-2000 caracteres; tras el subconjuntado, el tamaño se reduce a 0,3-0,8 MB, una reducción superior al 95 %. Las fuentes en inglés (p. ej., Arial 0,8 MB) usan aún menos caracteres; tras el subconjuntado, 0,05-0,1 MB, una reducción de aproximadamente el 90 %. Cuanto mayor la fuente y menos caracteres usados, más significativo el efecto del subconjuntado.

Q3: ¿Se puede editar texto en un PDF subconjuntado?

Con limitaciones. El subconjuntado solo conserva los caracteres ya usados en el documento; si al editar se introduce un nuevo carácter (que no aparece en el documento original), no podrá mostrarse y aparecerá como un cuadro o espacio en blanco. Por tanto, el subconjuntado es adecuado para archivo y distribución de documentos finales, pero no para documentos que aún requieren mucha edición. Si necesita editar, se recomienda conservar la fuente completa o volver a incrustar un subconjunto.

Q4: ¿Cómo verificar si un PDF ya tiene subconjuntos de fuentes?

Abra el PDF con Adobe Acrobat, vaya a Archivo > Propiedades > Fuentes y revise la lista de fuentes incrustadas. Si el nombre de la fuente tiene un prefijo de seis caracteres (p. ej., ABCDEO+Source Han Serif), significa que ya está subconjuntada. También puede abrir el PDF con SmartSlim; el motor analizará automáticamente el estado de incrustación de fuentes e indicará si se necesita subconjuntado, junto con una estimación del tamaño de compresión.

Resumen

El subconjuntado de fuentes PDF es uno de los medios más eficaces para reducir el tamaño de un PDF, especialmente en documentos con fuentes chinas incrustadas. El principio central son tres operaciones: escanear caracteres usados, reconstruir la tabla de mapeo CMap y remapear índices de glifo descartando los no utilizados. Los datos reales muestran que Source Han Serif de 18 MB se reduce a solo 0,4 MB tras el subconjuntado, una reducción del 97,7 %, sin impacto en la visualización.

Recomendación práctica: realice el subconjuntado de fuentes antes de distribuir el documento final; para documentos confidenciales, use herramientas locales. Si necesita procesar PDF por lotes, SmartSlim admite más de 40 formatos en 10 categorías, incluidos PDF, imágenes, vídeo, Office y OFD; basado en un motor de compresión Rust propio, completa automáticamente el subconjuntado de fuentes, con los datos sin salir del dominio.

¿Necesita comprimir archivos? Pruebe SmartSlim

Construido sobre un motor de compresión Rust propio, compatible con 10 categorías y más de 40 formatos, incluyendo PDF, imágenes, vídeo, Office y OFD, con compresión local que mantiene sus datos en sus instalaciones.