Renderizado seguro de glifos de color SVG
DrawRegisteredColorGlyph puede traducir un documento de glifo SVG de OpenType restringido directamente en operadores de ruta PDF compactos sin iniciar un navegador, un motor de scripts ni un runtime SVG externo
Perfil nativo
El perfil acepta contenedores svg y g además de la geometría path, rect, circle, ellipse, line, polyline y polygon
Los datos de ruta admiten comandos absolutos y relativos de mover, línea, horizontal, vertical, cúbica, cúbica suave, cuadrática, cuadrática suave y cerrar, con los segmentos cuadráticos convertidos en curvas PDF cúbicas
Los colores sólidos y los degradados vectoriales acotados pueden heredarse a través de los grupos junto con las reglas de relleno, los estilos de trazo sólidos o con degradado, la opacidad, las clip paths, las soft masks Alpha o Luminosity, la visibilidad, las transformaciones y la reutilización local de #id
Los nodos de imagen PNG y JPEG se aceptan solo como payloads de datos Base64 acotados y se registran como Image XObjects, con el alfa PNG conservado en una soft mask
Los documentos de tabla SVG UTF-8 simples y comprimidos con gzip usan la misma ruta acotada
Seguridad y respaldo
El parser limita la entrada comprimida a 8 MiB, la expandida a 32 MiB, los operadores PDF generados a 16 MiB, los elementos a 4.096, el anidamiento a 64 y los valores de trazado a 100.000
Los document types, los scripts, los atributos de evento, los recursos externos, los media types de datos no soportados, @import, las referencias url() externas, los destinos use externos y los elementos no soportados fallan de forma cerrada antes del registro
La expansión de degradados, la reutilización local, el enmascarado, el anidamiento y los operadores generados siguen sujetos a los mismos presupuestos del parser; las máscaras usan grupos de transparencia acotados, rechazan las referencias recursivas y permiten como máximo ocho referencias de máscara activas
Las imágenes se limitan a 128 nodos, 16.384 píxeles por dimensión y 16.777.216 píxeles en total; consulte el perfil de importación de Form XObject SVG para conocer los límites completos de recursos y texto
Cuando la validación nativa no devuelve un resultado seguro, OnColorGlyphRasterize recibe el asset SVG original y sigue siendo responsable de cualquier conjunto de funcionalidades SVG más amplio que la aplicación requiera
Colocación
El viewport SVG se mapea con una escala uniforme que conserva la relación de aspecto al cuadrado del tamaño de fuente solicitado, convierte las coordenadas Y descendentes del SVG a coordenadas Y ascendentes del PDF y ancla el Form XObject en la línea base del glifo