Pro editie
Font Tools
In het kort
Sectie met titel “In het kort”NextPDF Pro inspecteert ingebedde lettertypeprogramma’s, identificeert subset-lettertypen aan de hand van hun standaard naamgevingsconventie, en produceert een gestructureerd de-subsettingplan met een geschatte impact op de bestandsgrootte.
Beschikbaarheid en licentie
Sectie met titel “Beschikbaarheid en licentie”Deze mogelijkheid wordt geleverd in NextPDF Pro (nextpdf/pro) en wordt geactiveerd met een licentie-envelop van het Pro-niveau. Een deployment zonder die toekenning laadt de klassen van deze mogelijkheid niet. Vergelijk edities en vraag een licentie aan.
Geen enkele licentievlag per functie schermt deze module af. De Font Tools-klassen zijn beschikbaar zodra nextpdf/pro is geïnstalleerd.
Installatie
Sectie met titel “Installatie”composer require nextpdf/pro:^3Conceptueel overzicht
Sectie met titel “Conceptueel overzicht”Subset-lettertypen in een PDF bedden alleen de glyphs in die het document gebruikt. Volgens conventie draagt hun /BaseFont-naam een tag van zes hoofdletters gevolgd door +, bijvoorbeeld ABCDEF+Arial. NextPDF Pro:
- Detecteert subsets.
FontDesubsetterscant ruwe PDF-data op/BaseFont-vermeldingen, herkent het subset-prefixpatroon en rapporteert elke vermelding als eenSubsetInfo-waarde-object met de oorspronkelijke familienaam, het aantal subset-glyphs, het volledige aantal glyphs en de codering. - Plant de-subsetting.
DesubsetPlanverzamelt de subset-lettertypen die zijn aangemerkt voor vervanging door volledige lettertypeprogramma’s en rapporteert een geschatte toename in bytegrootte, zodat je kunt beslissen of de-subsetting de kosten in bestandsgrootte waard is voordat je handelt.
Font Tools is een analyse- en planningslaag. Deze beschrijft wat aanwezig is en wat de-subsetting zou kosten; deze herschrijft het lettertypeprogramma niet zelf.
Waarom het zo werkt
Sectie met titel “Waarom het zo werkt”Het herschrijven van een ingebed lettertypeprogramma is het moeilijke, risicovolle deel. Glyph-contouren, hinting en cmap-tabellen moeten consistent blijven, en één fout beschadigt de weergave. Daarom scheidt NextPDF Pro het goedkope, veilige werk — inventarisatie en kostenprojectie — van dat dure herschrijven. De scanner leest alleen bytes; deze parseert of voert nooit een lettertypeprogramma uit, waardoor deze deterministisch en zonder neveneffecten blijft. Glyph-tellingen en het grootteverschil zijn bewust als heuristieken bestempeld, zodat een capaciteitsinschatting eerlijk blijft in plaats van te vertrouwen op een getal dat de module niet kan meten. Zo kun je afwegen of de-subsetting de kosten waard is voordat je volledige lettertypeprogramma’s aanschaft.
Ontwerpachtergrond: Fonts: the hard part.
API-oppervlak
Sectie met titel “API-oppervlak”| Klasse | Verantwoordelijkheid |
|---|---|
FontDesubsetter | PDF-data scannen en subset-lettertypevermeldingen rapporteren. |
SubsetInfo | Immutable beschrijving van één gedetecteerd subset. |
DesubsetPlan | Aangemerkte subsets plus geschatte grootte-toename. |
Codevoorbeeld — Snelstart
Sectie met titel “Codevoorbeeld — Snelstart”use NextPDF\Pro\FontTools\FontDesubsetter;
$subsets = (new FontDesubsetter())->analyzeSubsets($pdfBytes);foreach ($subsets as $info) { echo $info->baseFont . ': ' . $info->subsetGlyphCount . " glyphs\n";}Codevoorbeeld — Productie
Sectie met titel “Codevoorbeeld — Productie”use NextPDF\Pro\FontTools\FontDesubsetter;
$desubsetter = new FontDesubsetter();$subsets = $desubsetter->analyzeSubsets($pdfBytes);$logger->info('fonttools.scan', ['subset_count' => count($subsets)]);Randgevallen en valkuilen
Sectie met titel “Randgevallen en valkuilen”- De scanner rapporteert een
/BaseFontzonder de prefix van zes letters als een niet-subset-vermelding in plaats van deze over te slaan. - De geschatte grootte-toename is een heuristiek gebaseerd op het gemiddelde aantal bytes per glyph, geen gemeten waarde.
- Detectie werkt op de byteweergave van
/BaseFont-vermeldingen; versleutelde of sterk gecomprimeerde object-streams moeten mogelijk eerst worden gedecodeerd.
Prestaties
Sectie met titel “Prestaties”Subset-scanning is lineair in de PDF-bytelengte. Planning is lineair in het aantal gedetecteerde subsets.
Beveiligingsnotities
Sectie met titel “Beveiligingsnotities”Font Tools leest alleen structurele metadata. Deze voert geen lettertypeprogramma’s uit en lost geen externe lettertypeverwijzingen op.
Conformiteit
Sectie met titel “Conformiteit”| Gedrag | Referentie | Status |
|---|---|---|
| Naamgevingsconventie voor subset-lettertypen | ISO 32000-2 §9.9.2 | Afgestemd (geparafraseerd) |
Gedragscontract
Sectie met titel “Gedragscontract”FontDesubsetter::analyzeSubsets()scant ruwe PDF-data op/BaseFont-vermeldingen, herkent de subset-prefix van zes-hoofdletters-plus-+, en retourneert elke als een immutableSubsetInfomet de oorspronkelijke familienaam, het aantal subset-glyphs, het volledige aantal glyphs en de codering.- Een
/BaseFontzonder de subset-prefix wordt gerapporteerd als een niet-subset-vermelding in plaats van overgeslagen. DesubsetPlanverzamelt de subsets die zijn aangemerkt voor vervanging en rapporteert een geschatte toename in bytegrootte op basis van het gemiddelde aantal bytes per glyph — een heuristiek, geen gemeten waarde.- Dit is een analyse- en planningslaag. Deze rapporteert wat aanwezig is en wat de-subsetting zou kosten; deze herschrijft het lettertypeprogramma niet, voert geen lettertypeprogramma’s uit en lost geen externe lettertypeverwijzingen op.
Enterprise-grensnotitie
Sectie met titel “Enterprise-grensnotitie”Enterprise verandert het Font Tools-gedrag niet. Enterprise voegt hoger-niveau functies toe die apart worden gedocumenteerd; ze zijn niet vereist voor subset-detectie of de-subsetplanning.
Core-fallback / alternatief
Sectie met titel “Core-fallback / alternatief”De open-source lettertypepijplijn van NextPDF Core verzorgt het inbedden van basislettertypen. Subset-boekhouding en de-subsetplanning zijn Pro-toevoegingen. Zie /modules/font/.
Publicatiegrens
Sectie met titel “Publicatiegrens”Deze pagina documenteert alleen extern waarneembaar gedrag en het ondersteunde publieke API-oppervlak. Interne namespace-paden, helperklassen, mechanismetabellen, runbook-bestandsnamen en ticketprefixen vallen buiten het bestek.
Zie ook
Sectie met titel “Zie ook”- Font Tools — Deep Reference — API-contract, gedrag en foutmodi.
- Optimizer — optimalisatie van bestandsgrootte.
- Core font module — open-source lettertypeverwerking.