Pro édition
Outils de polices
En un coup d’œil
Section intitulée « En un coup d’œil »NextPDF Pro inspecte les programmes de police embarqués, identifie les polices en sous-ensemble par leur convention de nommage standard et produit un plan de dé-sous-ensemblage structuré avec un impact estimé sur la taille.
Disponibilité et licence
Section intitulée « Disponibilité et licence »Cette capacité est fournie dans NextPDF Pro (nextpdf/pro) et s’active avec une enveloppe de licence de niveau Pro. Un déploiement sans ce droit ne charge pas les classes de la capacité. Compare les éditions et obtiens une licence.
Aucun indicateur de licence par fonctionnalité ne conditionne ce module. Les classes de Font Tools sont disponibles dès que nextpdf/pro est installé.
Installation
Section intitulée « Installation »composer require nextpdf/pro:^3Aperçu conceptuel
Section intitulée « Aperçu conceptuel »Les polices en sous-ensemble dans un PDF n’embarquent que les glyphes utilisés par le document. Par convention, leur nom /BaseFont porte une étiquette de six lettres majuscules suivie d’un +, par exemple ABCDEF+Arial. NextPDF Pro :
- Détecte les sous-ensembles.
FontDesubsetterbalaye les données PDF brutes à la recherche des entrées/BaseFont, reconnaît le motif de préfixe de sous-ensemble et rend compte de chaque entrée sous forme d’un objet-valeurSubsetInfoavec le nom de famille d’origine, le nombre de glyphes du sous-ensemble, le nombre total de glyphes et l’encodage. - Planifie le dé-sous-ensemblage.
DesubsetPlancollecte les polices en sous-ensemble visées par un remplacement par des programmes de police complets et rend compte d’une augmentation estimée de la taille en octets, afin que tu puisses décider si le dé-sous-ensemblage vaut son coût en taille de fichier avant d’agir.
Font Tools est une couche d’analyse et de planification. Elle décrit ce qui est présent et ce que coûterait le dé-sous-ensemblage ; elle ne réécrit pas elle-même le programme de police.
Pourquoi ça fonctionne ainsi
Section intitulée « Pourquoi ça fonctionne ainsi »Réécrire un programme de police embarqué est la partie difficile et risquée. Les contours de glyphes, le hinting et les tables cmap doivent rester cohérents, et une seule erreur corrompt le rendu. NextPDF Pro sépare donc le travail bon marché et sûr — inventaire et projection de coût — de cette réécriture coûteuse. Le balayeur ne lit que des octets ; il n’analyse ni n’exécute jamais un programme de police, ce qui le maintient déterministe et sans effet de bord. Le nombre de glyphes et l’écart de taille sont délibérément étiquetés comme des heuristiques, afin qu’une décision de capacité reste honnête au lieu de se fier à un nombre que le module ne peut pas mesurer. Cela te permet d’évaluer si le dé-sous-ensemblage vaut son coût avant de te procurer des programmes de police complets.
Contexte de conception : Les polices : la partie difficile.
Surface d’API
Section intitulée « Surface d’API »| Classe | Responsabilité |
|---|---|
FontDesubsetter | Balaye les données PDF et rend compte des entrées de polices en sous-ensemble. |
SubsetInfo | Description immuable d’un sous-ensemble détecté. |
DesubsetPlan | Sous-ensembles visés plus augmentation estimée de la taille. |
Exemple de code — Démarrage rapide
Section intitulée « Exemple de code — Démarrage rapide »use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);foreach ($subsets as $info) { echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";}Exemple de code — Production
Section intitulée « Exemple de code — Production »use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();$subsets = $desubsetter->analyzeSubsets($pdfBytes);$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);Cas limites et pièges
Section intitulée « Cas limites et pièges »- Le balayeur rend compte d’un
/BaseFontsans le préfixe de six lettres comme entrée hors sous-ensemble, plutôt que de le passer. - L’augmentation estimée de la taille est une heuristique fondée sur la moyenne d’octets par glyphe, et non une valeur mesurée.
- La détection fonctionne sur la représentation en octets des entrées
/BaseFont; les flux d’objets chiffrés ou fortement compressés peuvent nécessiter un décodage préalable.
Performance
Section intitulée « Performance »Le balayage de sous-ensembles est linéaire par rapport à la longueur en octets du PDF. La planification est linéaire par rapport au nombre de sous-ensembles détectés.
Notes de sécurité
Section intitulée « Notes de sécurité »Font Tools ne lit que des métadonnées structurelles. Il n’exécute aucun programme de police et ne résout aucune référence de police externe.
Conformité
Section intitulée « Conformité »| Comportement | Référence | Statut |
|---|---|---|
| Convention de nommage des polices en sous-ensemble | ISO 32000-2 §9.9.2 | Aligné (paraphrasé) |
Contrat de comportement
Section intitulée « Contrat de comportement »FontDesubsetter::analyzeSubsets()balaye les données PDF brutes à la recherche des entrées/BaseFont, reconnaît le préfixe de sous-ensemble de six lettres majuscules suivi d’un+, et renvoie chacune sous forme d’uneSubsetInfoimmuable avec le nom de famille d’origine, le nombre de glyphes du sous-ensemble, le nombre total de glyphes et l’encodage.- Un
/BaseFontsans le préfixe de sous-ensemble est rapporté comme entrée hors sous-ensemble plutôt que passé. DesubsetPlancollecte les sous-ensembles visés par un remplacement et rend compte d’une augmentation estimée de la taille en octets fondée sur la moyenne d’octets par glyphe — une heuristique, pas une valeur mesurée.- C’est une couche d’analyse et de planification. Elle rend compte de ce qui est présent et de ce que coûterait le dé-sous-ensemblage ; elle ne réécrit pas le programme de police, n’exécute aucun programme de police et ne résout aucune référence de police externe.
Note de frontière Enterprise
Section intitulée « Note de frontière Enterprise »Enterprise ne change pas le comportement de Font Tools. Enterprise ajoute des fonctionnalités de niveau supérieur, documentées séparément ; elles ne sont pas requises pour la détection de sous-ensembles ou la planification du dé-sous-ensemblage.
Repli / alternative Core
Section intitulée « Repli / alternative Core »Le pipeline de polices open source de NextPDF Core gère l’embarquement des polices de base. La comptabilité des sous-ensembles et la planification du dé-sous-ensemblage sont des ajouts de Pro. Voir /modules/font/.
Frontière de publication
Section intitulée « Frontière de publication »Cette page ne documente que le comportement observable de l’extérieur et la surface d’API publique prise en charge. Les chemins d’espaces de noms internes, les classes d’assistance, les tables de mécanismes, les noms de fichiers de runbook et les préfixes de tickets sont hors périmètre.
Voir aussi
Section intitulée « Voir aussi »- Font Tools — Référence approfondie — contrat d’API, comportement et modes de défaillance.
- Optimizer — optimisation de la taille de fichier.
- Module de polices de Core — gestion des polices open source.