Renderização segura de glifos SVG coloridos

DrawRegisteredColorGlyph traduz um documento de glifos SVG OpenType restrito em um Form XObject PDF reutilizável e limitado, sem iniciar um browser, uma engine de scripts ou um runtime SVG externo

Perfil nativo

O perfil aceita contêineres svg e g, mais a geometria path, rect, circle, ellipse, line, polyline e polygon

Dados de path suportam comandos absolutos e relativos de move, line, horizontal, vertical, cúbica, cúbica suave, quadrática, quadrática suave, arco elíptico e close, com segmentos quadráticos e de arco convertidos em curvas cúbicas PDF limitadas

Cores sólidas e gradientes vetoriais limitados podem ser herdados pelos grupos junto com regras de fill, estilos de stroke sólidos ou com gradiente, opacidade, clip paths, soft masks Alpha ou Luminosity, visibilidade, transforms e reutilização local de #id

Nós de imagem PNG e JPEG são aceitos apenas como payloads de dados Base64 limitados e são registrados como Image XObjects, com o alpha de PNG preservado em uma soft mask

Documentos SVG em UTF-8 puro e comprimidos com gzip usam o mesmo caminho limitado

Segurança e fallback

O parser limita a entrada comprimida a 8 MiB, a entrada expandida a 32 MiB, os operadores PDF gerados a 16 MiB, os elementos a 4.096, o aninhamento a 64 e os valores de path a 100.000

Tipos de documento, scripts, atributos de eventos, recursos externos, media types de dados não suportados, @import, referências externas url(), alvos externos use e elementos não suportados falham fechados antes do registro

Expansão de gradientes, reutilização local, masking, aninhamento e operadores gerados permanecem sujeitos aos mesmos orçamentos do parser; máscaras usam transparency groups limitados, rejeitam referências recursivas e permitem no máximo oito referências ativas de máscara

Imagens são limitadas a 128 nós, 16.384 pixels por dimensão e 16.777.216 pixels no total; veja o perfil de Importação de Form XObject SVG para os limites completos de recursos e de texto

Quando a validação nativa não retorna resultado seguro, OnColorGlyphRasterize recebe o asset SVG original e continua responsável por qualquer conjunto de features SVG mais amplo exigido pela aplicação

Posicionamento

O viewport SVG é mapeado com uma escala uniforme que preserva a proporção para o quadrado do tamanho de fonte solicitado, converte as coordenadas Y descendentes do SVG para coordenadas Y ascendentes do PDF e ancora o Form XObject na baseline do glifo