Pro edizione
Strumenti per i font
In breve
Sezione intitolata “In breve”NextPDF Pro ispeziona i programmi di font incorporati, identifica i font subset tramite la loro convenzione di denominazione standard e produce un piano di de-subsetting strutturato con un impatto stimato sulla dimensione.
Disponibilità e licenze
Sezione intitolata “Disponibilità e licenze”Questa funzionalità è inclusa in NextPDF Pro (nextpdf/pro) e si attiva con un envelope di licenza di livello Pro. Un deployment privo di tale entitlement non carica le classi della funzionalità. Confronta le edizioni e ottieni una licenza.
Nessun flag di licenza per singola funzionalità limita questo modulo. Le classi di Font Tools sono disponibili ogniqualvolta nextpdf/pro è installato.
Installazione
Sezione intitolata “Installazione”composer require nextpdf/pro:^3Panoramica concettuale
Sezione intitolata “Panoramica concettuale”I font subset in un PDF incorporano solo i glifi usati dal documento. Per convenzione, il loro nome /BaseFont porta un tag di sei lettere maiuscole seguito da +, ad esempio ABCDEF+Arial. NextPDF Pro:
- Rileva i subset.
FontDesubsetterscansiona i dati PDF grezzi alla ricerca di voci/BaseFont, riconosce il pattern del prefisso subset e segnala ciascuna voce come un value objectSubsetInfocon il nome della famiglia originale, il conteggio dei glifi del subset, il conteggio completo dei glifi e la codifica. - Pianifica il de-subsetting.
DesubsetPlanraccoglie i font subset destinati alla sostituzione con programmi di font completi e riporta un aumento stimato della dimensione in byte, così da poter decidere se il de-subsetting valga il costo in dimensione del file prima di agire.
Font Tools è un livello di analisi e pianificazione. Descrive ciò che è presente e quanto costerebbe il de-subsetting; non riscrive esso stesso il programma di font.
Perché funziona così
Sezione intitolata “Perché funziona così”Riscrivere un programma di font incorporato è la parte difficile e rischiosa. I contorni dei glifi, l’hinting e le tabelle cmap devono restare coerenti, e un solo errore corrompe il rendering. Per questo NextPDF Pro separa il lavoro economico e sicuro — inventario e proiezione dei costi — da quella riscrittura costosa. Lo scanner legge solo byte; non analizza né esegue mai un programma di font, così resta deterministico e privo di effetti collaterali. I conteggi dei glifi e il delta di dimensione sono etichettati come euristiche di proposito, così che una valutazione di capacità resti onesta invece di fidarsi di un numero che il modulo non può misurare. Ciò consente di valutare se il de-subsetting valga il costo prima di procurarsi programmi di font completi.
Contesto di progettazione: Font: la parte difficile.
Superficie API
Sezione intitolata “Superficie API”| Class | Responsibility |
|---|---|
FontDesubsetter | Scansionare i dati PDF e segnalare le voci di font subset. |
SubsetInfo | Descrizione immutabile di un subset rilevato. |
DesubsetPlan | Subset mirati più aumento stimato della dimensione. |
Esempio di codice — Avvio rapido
Sezione intitolata “Esempio di codice — Avvio rapido”use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);foreach ($subsets as $info) { echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";}Esempio di codice — Produzione
Sezione intitolata “Esempio di codice — Produzione”use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();$subsets = $desubsetter->analyzeSubsets($pdfBytes);$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);Casi limite e insidie
Sezione intitolata “Casi limite e insidie”- Lo scanner segnala un
/BaseFontprivo del prefisso di sei lettere come una voce non-subset anziché ignorarlo. - L’aumento stimato della dimensione è un’euristica basata sui byte medi per glifo, non un valore misurato.
- Il rilevamento opera sulla rappresentazione in byte delle voci
/BaseFont; gli object stream cifrati o fortemente compressi potrebbero richiedere prima la decodifica.
Prestazioni
Sezione intitolata “Prestazioni”La scansione dei subset è lineare rispetto alla lunghezza in byte del PDF. La pianificazione è lineare rispetto al numero di subset rilevati.
Note sulla sicurezza
Sezione intitolata “Note sulla sicurezza”Font Tools legge solo i metadati strutturali. Non esegue programmi di font né risolve riferimenti a font esterni.
Conformità
Sezione intitolata “Conformità”| Behavior | Reference | Status |
|---|---|---|
| Subset font naming convention | ISO 32000-2 §9.9.2 | Aligned (paraphrased) |
Contratto di comportamento
Sezione intitolata “Contratto di comportamento”FontDesubsetter::analyzeSubsets()scansiona i dati PDF grezzi alla ricerca di voci/BaseFont, riconosce il prefisso subset di sei lettere maiuscole seguito da+e restituisce ciascuna come unSubsetInfoimmutabile con il nome della famiglia originale, il conteggio dei glifi del subset, il conteggio completo dei glifi e la codifica.- Un
/BaseFontprivo del prefisso subset viene segnalato come una voce non-subset anziché ignorato. DesubsetPlanraccoglie i subset destinati alla sostituzione e riporta un aumento stimato della dimensione in byte basato sui byte medi per glifo — un’euristica, non un valore misurato.- Questo è un livello di analisi e pianificazione. Segnala ciò che è presente e quanto costerebbe il de-subsetting; non riscrive il programma di font, non esegue programmi di font e non risolve riferimenti a font esterni.
Nota sul confine Enterprise
Sezione intitolata “Nota sul confine Enterprise”Enterprise non modifica il comportamento di Font Tools. Enterprise aggiunge funzionalità di fascia superiore documentate separatamente; non sono richieste per il rilevamento dei subset o la pianificazione del de-subsetting.
Core fallback / alternativa
Sezione intitolata “Core fallback / alternativa”La pipeline di font open source di NextPDF Core gestisce l’incorporamento dei font di base. Il conteggio dei subset e la pianificazione del de-subsetting sono aggiunte di Pro. Vedere /modules/font/.
Confine di pubblicazione
Sezione intitolata “Confine di pubblicazione”Questa pagina documenta solo il comportamento osservabile dall’esterno e la superficie pubblica dell’API supportata. I percorsi di namespace interni, le classi helper, le tabelle dei meccanismi, i nomi dei file di runbook e i prefissi dei ticket sono fuori ambito.
Vedere anche
Sezione intitolata “Vedere anche”- Font Tools — Deep Reference — contratto dell’API, comportamento e modalità di errore.
- Optimizer — ottimizzazione della dimensione del file.
- Core font module — gestione dei font open source.