Variable und farbige OpenType-Schriften
HotPDF kann fvar-Achsen und benannte Instanzen prüfen, ausgewählte Koordinaten validieren und vor der üblichen Schriftinstallation, Teilmengenerstellung und dauerhaften Zwischenspeicherung eine statische Instanz erzeugen
Arbeitsablauf für variable Schriften
PDF.InspectVariableFont(FontPath, Axes, Instances);
PDF.SetVariableFontAxis('wght', 650);
PDF.RegisterUnicodeTTF(FontPath);
CFF2-OpenType-Schriften werden intern mit Standard- oder ausgewählten Koordinaten instanziiert, einschließlich fvar, avar-Zuordnung 1.0 und 2.0, vsindex-Status je Schriftwörterbuch, blend-Auswertung, rekursiven lokalen und globalen Unterprogrammen sowie metrischen Deltas aus HVAR, VVAR und MVAR
Variable TrueType-Schriften mit glyf-Konturen werden für Nicht-Standardkoordinaten intern instanziiert. Die Pipeline wertet gemeinsame und private gvar-Tupel aus, wendet IUP-Interpolation an, aktualisiert einfache Konturen und zusammengesetzte Versätze, löst horizontale und vertikale Phantompunktmetriken auf, übernimmt MVAR, erstellt kompakte Glyphendaten und loca neu und entfernt Variationstabellen aus der prüfsummenkorrekten statischen sfnt
OnVariableFontInstance ist für CFF2- und variable TrueType-Schriften optional. Es kann eine interne Nicht-Standardinstanz durch Rückgabe einer gültigen statischen sfnt ohne fvar-Tabelle ersetzen
Die aufgelösten Koordinaten bleiben über GetRegisteredVariableFontAxes verfügbar und werden Teil des installierten und zwischengespeicherten Schriftinhalts
Instanziierung, Teilmengen und Sicherheit auf niedriger Ebene
HPDFIsCFF2Font, HPDFInstantiateCFF2Font, HPDFSubsetCFF2Font, HPDFIsTrueTypeVariableFont und HPDFInstantiateTrueTypeVariableFont stellen Byte-Array-Arbeitsabläufe für Aufrufer bereit, die Schriftcontainer bereits selbst verwalten
Die statische Ausgabe bewahrt Glyphen-IDs und Hint-Programme, während sfnt-Tabellen und Prüfsummen neu erstellt werden. Der CFF2-Pfad bewahrt außerdem private Daten und Schriftmatrizen je Schriftwörterbuch
Fehlerhafte Versätze, ungültige Variationsstrukturen, übermäßige Unterprogrammtiefe, Operationsgrenzen und erweiterte CharString-Grenzen schlagen sicher fehl, statt eine teilweise instanziierte Schrift zurückzugeben
Arbeitsablauf für farbige Glyphen
GetRegisteredColorGlyphInfo erkennt COLR- und CPAL-Ebenen, SVG-Glyphendokumente, CBDT/CBLC-Strikes und sbix-Strikes für eine registrierte Schrift
DrawRegisteredColorGlyph zeichnet COLR-v0-Ebenen, begrenzte COLR-v1-Paint-Graphen, eingeschränkte sichere SVG-Dokumente, CBDT-PNG-Bilder sowie sbix-PNG- oder JPEG-Bilder nativ
COLR v1 unterstützt Ebenenglyphen-Clips, einfarbige und mehrstufige lineare Füllungen, radiale und verlaufende Füllungen, affine Transformationen, wiederverwendbare farbige Glyphen, Quell- und Zielreihenfolge sowie PDF-Mischkompositionen
Das native SVG-Profil unterstützt Pfade, Rechtecke, Kreise, Ellipsen, Linien, Polygone, Polylinien, geerbte einfarbige Füllungen und Konturen, affine Transformationen sowie gzip-komprimierte SVG-Dokumente
THPDFColorGlyphRasterizeEvent bleibt der Fallback für nicht unterstützte SVG-Funktionen, nicht unterstützte Porter-Duff-Modi, Deckkraft, Verläufe und anwendungsspezifische Rasterausgabe
THPDFOpenTypeColorGlyphInfo.COLRv1Paints stellt den validierten flachen DAG über die Records THPDFCOLRv1Paint, THPDFCOLRv1ColorStop und THPDFCOLRv1Transform zur Prüfung ohne erneutes Analysieren der Schriftbytes bereit
Aufrufer wählen Palette und Zielpixelgröße, damit Strike-Auswahl und Rasterausgabe deterministisch bleiben