Fuentes: embebido, subset y licencia
Fuentes: embebido, subset y licencia
11 reglasEmbebe siempre las fuentes en el PDF
Un PDF que no lleva sus fuentes dentro las sustituye en cualquier equipo que no tenga la original: los anchos cambian, el texto se reflowea y el layout se rompe. Embeber mete los contornos de los glifos en el archivo para que se vea idéntico en todos lados. Nunca confíes en el "se ve bien en mi máquina": la imprenta y el lector no tienen tus fuentes.
Subset: embebe solo los glifos que usas
El subset reduce la fuente a los caracteres realmente presentes y embebe solo esos, recortando el peso de golpe (una familia CJK o variable completa pesa megas). La mayoría de los exportadores hace subset cuando el uso es menor al 100% de los glifos. La excepción: los formularios PDF editables donde el usuario tecleará necesitan el juego completo (o los glifos faltantes) para que lo tecleado se dibuje, así que ahí embebe completo.
name type emb sub
ABCDEE+Inter-Bold TrueType yes yes ← subset (prefijo +)
Inter-Regular TrueType yes no ← completo
Verifica que la licencia permita embeber
Toda fuente declara sus derechos de embebido en el campo fsType de su tabla OS/2. Installable (0x0000) e Impresión y preview (0x0004) permiten embeber en PDF; Restricted License (0x0002) lo prohíbe sin permiso escrito, y No subsetting (0x0100) exige la fuente entera. Las descargas gratis "solo uso personal" y las fuentes pirata suelen traer bits restrictivos, así que revisa antes de entregar a un cliente o a prensa.
Installable 0x0000 sí
Editable 0x0008 sí
Impresión y preview 0x0004 sí (ver/imprimir)
Restricted License 0x0002 NO
No subsetting 0x0100 solo fuente completa
Usa OpenType/TrueType; deja el Type 1 deprecado
Trabaja con OpenType (.otf) o TrueType (.ttf). El PostScript Type 1 es un formato legado de 1984 que Adobe dejó de desarrollar en 1999 y retiró de la creación de contenido en sus apps (InDesign, Illustrator, Photoshop) en enero 2023: las Type 1 ya no aparecen ni sirven para trabajar. Migra cualquier Type 1 que quede a su equivalente OpenType antes de que desaparezca en silencio de tu documento.
Espera a que carguen las web fonts antes de imprimir
En HTML→PDF, headless Chrome o WeasyPrint pueden capturar la página antes de que un archivo de Google Fonts / @font-face termine de bajar, y congelan el fallback dentro del PDF. Condiciona la impresión a document.fonts.ready (una promesa que resuelve cuando todas las caras cargaron), o dale a Chrome un colchón de --virtual-time-budget. Auto-hospedar el archivo elimina la carrera de red por completo.
window.print(); // ahora la captura es segura
// chrome: --virtual-time-budget=5000
Deja fallbacks de sistema en el font stack
Si la web font no carga, se dibuja el siguiente nombre del stack de font-family, así que la última entrada debe ser un genérico que exista en todos lados: termina los stacks sans con system-ui, sans-serif y los serif con Georgia, serif. Un stack de un solo nombre custom sin fallback arriesga el default del navegador (a menudo Times) si algo falla. Empareja las métricas del fallback lo más posible para limitar el reflow.
/* mal */ font-family: 'Inter'; /* → Times si falla */
Carga bold e itálica reales, nunca faux
Cuando un peso o estilo no está embebido, el motor lo finge: el faux-bold engorda el contorno a la fuerza y el faux-italic inclina los glifos rectos en ángulo. Ambos se ven toscos, descuadran el espaciado y pueden fallar el preflight. Carga los archivos Bold e Italic reales de la familia; en CSS pon font-synthesis: none para que un peso faltante falle a la vista en vez de fingirse en silencio.
Fija las instancias de fuentes variables al exportar
Una fuente variable (OpenType 1.8, 2016) mete en un solo archivo un rango continuo por ejes como wght, wdth, opsz y slnt. Los RIP y las herramientas PDF viejas pueden malinterpretar las coordenadas de eje y renderizar un master por defecto en vez del peso que elegiste. Fija una instancia nombrada (aplana los ejes) al exportar, o usa el valor de font-variation-settings que el RIP respete, para que la salida de prensa coincida con la pantalla.
font-variation-settings: 'wght' 600, 'opsz' 14;
/* al exportar: instanciar/aplanar → master nombrado estático */
El hinting importa en pantalla; en prensa manda el vector
El hinting son las instrucciones que ajustan los contornos de los glifos a la retícula de píxeles en tamaños chicos en pantalla; gobierna la legibilidad en pantalla y la nitidez del PDF de pantalla. En la filmadora o platesetter la fuente se rasteriza a 2400+ dpi, donde lo que imprime es el contorno vectorial mismo, así que el hinting es casi irrelevante en prensa. La conclusión práctica: juzga el hinting fino en pantalla al 100%, y juzga peso y espaciado en una prueba física.
FreeType hinting docs · Microsoft typographyVerifica que el subset incluya acentos y símbolos
Un subset agresivo puede quitar glifos que tu texto necesita y salen como tofu (un cuadro vacío □) o desaparecen. El copy en español y de la zona euro exige ñ á é í ó ú ü ¡ ¿ €, más los signos tipográficos reales (« » “ ” –). Prueba cualquier página con estos caracteres: si uno muestra un cuadro, la familia no tiene el glifo o el subset lo excluyó. Elige una fuente con la cobertura correcta y fuerza al subset a conservar el rango Unicode usado.
Confirma en preflight que todo esté embebido
Antes de mandar a prensa, corre preflight y lee el reporte de fuentes: cada cara debe decir embebida (subset o completa), con cero sustituciones ni fuentes faltantes. Acrobat Preflight, PitStop o el pdffonts archivo.pdf de línea de comandos listan cada fuente, su tipo y si está embebida (emb yes). Una sola fila emb no significa que esa fuente se sustituirá en el RIP, así que arréglalo antes del tiraje, no después de la factura.
name type emb sub uni
ABCDEE+Inter-Regular TrueType yes yes yes ✓
ABCDEE+Inter-Bold TrueType yes yes yes ✓
Helvetica Type1 no no yes ← CORREGIR
- R-67 Embebe siempre las fuentes en el PDF
- R-68 Subset: embebe solo los glifos que usas
- R-69 Verifica que la licencia permita embeber
- R-70 Usa OpenType/TrueType; deja el Type 1 deprecado
- R-71 Espera a que carguen las web fonts antes de imprimir
- R-72 Deja fallbacks de sistema en el font stack
- R-73 Carga bold e itálica reales, nunca faux
- R-74 Fija las instancias de fuentes variables al exportar
- R-75 El hinting importa en pantalla; en prensa manda el vector
- R-76 Verifica que el subset incluya acentos y símbolos
- R-77 Confirma en preflight que todo esté embebido