Salta ai contenuti
getnextpdf.com

Pro edizione

Strumenti per i font

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.

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.

Terminal window
composer require nextpdf/pro:^3

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. FontDesubsetter scansiona i dati PDF grezzi alla ricerca di voci /BaseFont, riconosce il pattern del prefisso subset e segnala ciascuna voce come un value object SubsetInfo con il nome della famiglia originale, il conteggio dei glifi del subset, il conteggio completo dei glifi e la codifica.
  • Pianifica il de-subsetting. DesubsetPlan raccoglie 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.

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.

ClassResponsibility
FontDesubsetterScansionare i dati PDF e segnalare le voci di font subset.
SubsetInfoDescrizione immutabile di un subset rilevato.
DesubsetPlanSubset mirati più aumento stimato della dimensione.
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)]);
  • Lo scanner segnala un /BaseFont privo 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.

La scansione dei subset è lineare rispetto alla lunghezza in byte del PDF. La pianificazione è lineare rispetto al numero di subset rilevati.

Font Tools legge solo i metadati strutturali. Non esegue programmi di font né risolve riferimenti a font esterni.

BehaviorReferenceStatus
Subset font naming conventionISO 32000-2 §9.9.2Aligned (paraphrased)
  • 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 un SubsetInfo immutabile con il nome della famiglia originale, il conteggio dei glifi del subset, il conteggio completo dei glifi e la codifica.
  • Un /BaseFont privo del prefisso subset viene segnalato come una voce non-subset anziché ignorato.
  • DesubsetPlan raccoglie 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.

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.

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/.

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.