Rendu sûr des glyphes SVG en couleur

DrawRegisteredColorGlyph traduit un document de glyphes SVG OpenType restreint en un Form XObject PDF borné réutilisable sans lancer de navigateur, de moteur de scripts ni d'exécution SVG externe

Profil natif

Le profil accepte les conteneurs svg et g ainsi que la géométrie path, rect, circle, ellipse, line, polyline et polygon

Les données de chemin prennent en charge les commandes absolues et relatives de mouvement, de ligne, horizontale, verticale, cubique, cubique lisse, quadratique, quadratique lisse, d'arc elliptique et de fermeture, avec les segments quadratiques et d'arc convertis en courbes PDF cubiques bornées

Les couleurs unies et les dégradés vectoriels bornés peuvent être hérités par les groupes avec les règles de remplissage, les styles de trait unis ou en dégradé, l'opacité, les clip paths, les soft masks Alpha ou Luminosity, la visibilité, les transformations et la réutilisation locale #id

Les nœuds d'images PNG et JPEG ne sont acceptés que comme charges de données Base64 bornées et sont enregistrés comme Image XObjects, avec l'alpha PNG conservé dans un soft mask

Les documents de table SVG en UTF-8 brut et compressés gzip utilisent le même chemin borné

Sécurité et repli

L'analyseur plafonne l'entrée compressée à 8 MiO, l'entrée décompressée à 32 MiO, les opérateurs PDF générés à 16 MiO, les éléments à 4 096, l'imbrication à 64 et les valeurs de chemin à 100 000

Les types de document, scripts, attributs d'événement, ressources externes, types de média de données non pris en charge, @import, références url() externes, cibles use externes et éléments non pris en charge échouent de manière sûre avant l'enregistrement

L'expansion des dégradés, la réutilisation locale, le masquage, l'imbrication et les opérateurs générés restent soumis aux mêmes budgets de l'analyseur ; les masques utilisent des groupes de transparence bornés, rejettent les références récursives et autorisent au plus huit références de masques actives

Les images sont limitées à 128 nœuds, 16 384 pixels par dimension et 16 777 216 pixels au total ; voir le profil Import de Form XObject SVG pour les limites complètes de ressources et de texte

Lorsque la validation native ne renvoie aucun résultat sûr, OnColorGlyphRasterize reçoit la ressource SVG d'origine et reste responsable de tout ensemble de fonctionnalités SVG plus large requis par l'application

Placement

Le cadre de visualisation SVG est mappé avec une échelle uniforme préservant le rapport dans le carré de taille de police demandé, convertit les coordonnées Y descendantes du SVG en coordonnées Y montantes du PDF et ancre le Form XObject à la ligne de base du glyphe