Sicheres Rendern von SVG-Farbglyphen

DrawRegisteredColorGlyph übersetzt ein eingeschränktes OpenType-SVG-Glyphen-Dokument in ein begrenztes wiederverwendbares PDF-Form-XObject, ohne einen Browser, eine Skript-Engine oder eine externe SVG-Laufzeit zu starten

Natives Profil

Das Profil akzeptiert die Container svg und g sowie die Geometrien path, rect, circle, ellipse, line, polyline und polygon

Pfaddaten unterstützen absolute und relative Move-, Line-, Horizontal-, Vertical-, Cubic-, Smooth-Cubic-, Quadratic-, Smooth-Quadratic-, Elliptisch-Arc- und Close-Befehle, wobei quadratische und Arc-Segmente in begrenzte kubische PDF-Kurven konvertiert werden

Einfarben und begrenzte Vektorgradienten können über Gruppen zusammen mit Füllregeln, Vollton- oder Gradient-Stroke-Stilen, Deckkraft, Clip-Pfaden, Alpha- oder Luminosity-Soft-Masks, Sichtbarkeit, Transformationen und lokaler #id-Wiederverwendung vererbt werden

PNG- und JPEG-Bildknoten werden nur als begrenzte Base64-Daten-Payloads akzeptiert und als Image XObjects registriert, wobei PNG-Alpha in einer Soft-Mask bewahrt bleibt

Klare UTF-8- und gzip-komprimierte SVG-Tabellen-Dokumente verwenden denselben begrenzten Pfad

Sicherheit und Fallback

Der Parser begrenzt komprimierte Eingaben auf 8 MiB, erweiterte Eingaben auf 32 MiB, erzeugte PDF-Operatoren auf 16 MiB, Elemente auf 4.096, Verschachtelung auf 64 und Pfadwerte auf 100.000

Dokumenttypen, Skripte, Ereignisattribute, externe Ressourcen, nicht unterstützte Daten-Media-Types, @import, externe url()-Referenzen, externe use-Ziele und nicht unterstützte Elemente schlagen vor der Registrierung sicher ab

Gradienten-Expansion, lokale Wiederverwendung, Maskierung, Verschachtelung und erzeugte Operatoren bleiben denselben Parser-Budgets unterworfen; Masken verwenden begrenzte Transparenzgruppen, weisen rekursive Referenzen zurück und erlauben höchstens acht aktive Mask-Referenzen

Bilder sind auf 128 Knoten, 16.384 Pixel pro Dimension und insgesamt 16.777.216 Pixel begrenzt; das Profil SVG-Form-XObject-Import nennt die vollständigen Ressourcen- und Textgrenzen

Wenn die native Validierung kein sicheres Ergebnis liefert, empfängt OnColorGlyphRasterize das ursprüngliche SVG-Asset und bleibt für jede breitere SVG-Funktionsmenge verantwortlich, die die Anwendung benötigt

Platzierung

Der SVG-Viewport wird mit einer einheitlichen seitenbewahrenden Skalierung auf das angeforderte quadratische Schriftquadrat abgebildet, konvertiert SVG-Y-Koordinaten nach unten in PDF-Y-Koordinaten nach oben und verankert das Form-XObject an der Glyphen-Basislinie