Pro edición
Herramientas de fuentes
De un vistazo
Sección titulada «De un vistazo»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.
Disponibilidad y licencias
Sección titulada «Disponibilidad y licencias»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.
Instalación
Sección titulada «Instalación»composer require nextpdf/pro:^3Descripción conceptual
Sección titulada «Descripción conceptual»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.
FontDesubsetterescanea 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 valorSubsetInfocon 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.
DesubsetPlanrecopila 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.
Por qué funciona así
Sección titulada «Por qué funciona así»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.
Superficie de la API
Sección titulada «Superficie de la API»| Clase | Responsabilidad |
|---|---|
FontDesubsetter | Escanear los datos de PDF e informar de las entradas de fuente en subconjunto. |
SubsetInfo | Descripción inmutable de un subconjunto detectado. |
DesubsetPlan | Subconjuntos destinados más el aumento de tamaño estimado. |
Ejemplo de código — Inicio rápido
Sección titulada «Ejemplo de código — Inicio rápido»use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);foreach ($subsets as $info) { echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";}Ejemplo de código — Producción
Sección titulada «Ejemplo de código — Producción»use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();$subsets = $desubsetter->analyzeSubsets($pdfBytes);$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);Casos límite y trampas
Sección titulada «Casos límite y trampas»- El escáner informa de un
/BaseFontsin 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.
Rendimiento
Sección titulada «Rendimiento»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.
Notas de seguridad
Sección titulada «Notas de seguridad»Font Tools lee únicamente metadatos estructurales. No ejecuta programas de fuente ni resuelve referencias de fuente externas.
Conformidad
Sección titulada «Conformidad»| Comportamiento | Referencia | Estado |
|---|---|---|
| Convención de nomenclatura de fuente en subconjunto | ISO 32000-2 §9.9.2 | Alineado (parafraseado) |
Contrato de comportamiento
Sección titulada «Contrato de comportamiento»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 unSubsetInfoinmutable con el nombre de familia original, el recuento de glifos del subconjunto, el recuento total de glifos y la codificación.- Un
/BaseFontsin el prefijo de subconjunto se informa como una entrada que no es de subconjunto, en lugar de omitirse. DesubsetPlanrecopila 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.
Nota sobre el límite de Enterprise
Sección titulada «Nota sobre el límite de Enterprise»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.
Alternativa / repliegue de Core
Sección titulada «Alternativa / repliegue de Core»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/.
Límite de publicación
Sección titulada «Límite de publicación»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.
Véase también
Sección titulada «Véase también»- Font Tools — Referencia profunda — contrato de API, comportamiento y modos de fallo.
- Optimizer — optimización del tamaño de archivo.
- Módulo de fuentes de Core — tratamiento de fuentes de código abierto.