Ir al contenido
getnextpdf.com

Pro edición

Herramientas de fuentes

NextPDF Pro inspecciona los programas de fuente incrustados, identifica las fuentes en subconjunto por su convención de nomenclatura estándar y produce un plan de reversión del subconjunto estructurado con un impacto de tamaño estimado.

Esta capacidad se incluye en NextPDF Pro (nextpdf/pro) y se activa con un sobre de licencia de nivel Pro. Un despliegue sin ese derecho no carga las clases de la capacidad. Compare ediciones y obtenga una licencia.

Ningún indicador de licencia por función restringe este módulo. Las clases de Font Tools están disponibles siempre que nextpdf/pro esté instalado.

Ventana de terminal
composer require nextpdf/pro:^3

Las fuentes en subconjunto de un PDF incrustan únicamente los glifos que el documento usa. Por convención, su nombre /BaseFont lleva una etiqueta de seis letras mayúsculas seguida de +, por ejemplo ABCDEF+Arial. NextPDF Pro:

  • Detecta subconjuntos. FontDesubsetter escanea los datos de PDF en bruto en busca de entradas /BaseFont, reconoce el patrón de prefijo de subconjunto e informa de cada entrada como un objeto de valor SubsetInfo con el nombre de familia original, el recuento de glifos del subconjunto, el recuento total de glifos y la codificación.
  • Planifica la reversión del subconjunto. DesubsetPlan recopila las fuentes en subconjunto destinadas a su sustitución por programas de fuente completos e informa de un aumento estimado del tamaño en bytes, de modo que pueda decidir si la reversión del subconjunto vale el coste de tamaño de archivo antes de actuar.

Font Tools es una capa de análisis y planificación. Describe lo que está presente y lo que costaría revertir el subconjunto; no reescribe por sí mismo el programa de fuente.

Reescribir un programa de fuente incrustado es la parte difícil y arriesgada. Los contornos de los glifos, el hinting y las tablas cmap deben mantenerse coherentes, y un solo error corrompe el renderizado. Por eso NextPDF Pro separa el trabajo barato y seguro —inventario y proyección de coste— de esa reescritura costosa. El escáner solo lee bytes; nunca analiza ni ejecuta un programa de fuente, de modo que se mantiene determinista y sin efectos secundarios. Los recuentos de glifos y el delta de tamaño se etiquetan como heurísticas a propósito, para que una estimación de capacidad siga siendo honesta en lugar de confiar en un número que el módulo no puede medir. Eso le permite ponderar si la reversión del subconjunto vale el coste antes de conseguir los programas de fuente completos.

Contexto de diseño: Fuentes: la parte difícil.

ClaseResponsabilidad
FontDesubsetterEscanear los datos de PDF e informar de las entradas de fuente en subconjunto.
SubsetInfoDescripción inmutable de un subconjunto detectado.
DesubsetPlanSubconjuntos destinados más el aumento de tamaño estimado.
use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);
foreach ($subsets as $info) {
echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";
}
use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();
$subsets = $desubsetter->analyzeSubsets($pdfBytes);
$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);
  • El escáner informa de un /BaseFont sin el prefijo de seis letras como una entrada que no es de subconjunto, en lugar de omitirla.
  • El aumento de tamaño estimado es una heurística basada en el promedio de bytes por glifo, no un valor medido.
  • La detección funciona sobre la representación en bytes de las entradas /BaseFont; los flujos de objetos cifrados o muy comprimidos pueden necesitar decodificación primero.

El escaneo de subconjuntos es lineal respecto a la longitud en bytes del PDF. La planificación es lineal respecto al número de subconjuntos detectados.

Font Tools lee únicamente metadatos estructurales. No ejecuta programas de fuente ni resuelve referencias de fuente externas.

ComportamientoReferenciaEstado
Convención de nomenclatura de fuente en subconjuntoISO 32000-2 §9.9.2Alineado (parafraseado)
  • FontDesubsetter::analyzeSubsets() escanea los datos de PDF en bruto en busca de entradas /BaseFont, reconoce el prefijo de subconjunto de seis letras mayúsculas más + y devuelve cada una como un SubsetInfo inmutable con el nombre de familia original, el recuento de glifos del subconjunto, el recuento total de glifos y la codificación.
  • Un /BaseFont sin el prefijo de subconjunto se informa como una entrada que no es de subconjunto, en lugar de omitirse.
  • DesubsetPlan recopila los subconjuntos destinados a su sustitución e informa de un aumento estimado del tamaño en bytes basado en el promedio de bytes por glifo: una heurística, no un valor medido.
  • Es una capa de análisis y planificación. Informa de lo que está presente y de lo que costaría revertir el subconjunto; no reescribe el programa de fuente, no ejecuta programas de fuente ni resuelve referencias de fuente externas.

Enterprise no cambia el comportamiento de Font Tools. Enterprise añade funciones de nivel superior documentadas por separado; no son necesarias para la detección de subconjuntos ni para la planificación de reversión del subconjunto.

El pipeline de fuentes de código abierto de NextPDF Core gestiona la incrustación de fuentes base. La contabilidad de subconjuntos y la planificación de reversión del subconjunto son adiciones de Pro. Consulte /modules/font/.

Esta página documenta únicamente el comportamiento observable externamente y la superficie pública de la API admitida. Las rutas de espacios de nombres internos, las clases auxiliares, las tablas de mecanismos, los nombres de archivo de runbook y los prefijos de tickets quedan fuera del alcance.