安全的 SVG 彩色字形轉譯
DrawRegisteredColorGlyph 把受限的 OpenType SVG 字形文件轉成有界、可重用的 PDF Form XObject,不會啟動瀏覽器、腳本引擎或外部 SVG 執行環境
原生設定檔
此設定檔接受 svg 與 g 容器,以及 path、rect、circle、ellipse、line、polyline 與 polygon 幾何
路徑資料支援絕對與相對的 move、line、水平、垂直、三次、平滑三次、二次、平滑二次、橢圓弧與 close 指令,二次與弧線段會轉成有界的三次 PDF 曲線
純色與有界的向量漸層可透過群組繼承,連同填色規則、實心或漸層描邊樣式、不透明度、剪裁路徑、Alpha 或 Luminosity 軟遮罩、可見性、變換與本地 #id 重用
PNG 與 JPEG 影像節點只接受有界的 Base64 資料酬載,會註冊成 Image XObject,PNG alpha 則保留在軟遮罩裡
純 UTF-8 與 gzip 壓縮的 SVG 表格文件走同一條有界路徑
安全性與後備
解析器把壓縮輸入上限設在 8 MiB、展開輸入 32 MiB、產生的 PDF 運算子 16 MiB、元素 4,096 個、巢狀 64 層、路徑值 100,000 個
文件型別宣告、腳本、事件屬性、外部資源、不支援的 data 媒體類型、@import、外部 url() 參照、外部 use 目標與不支援的元素,都會在註冊前以失敗關閉
漸層展開、本地重用、遮罩、巢狀與產生的運算子仍受同一套解析器預算約束;遮罩使用有界的透明度群組,拒絕遞迴參照,最多允許八個作用中的遮罩參照
影像上限為 128 個節點、單邊 16,384 像素、總計 16,777,216 像素;完整的資源與文字邊界請見 SVG Form XObject 匯入設定檔
原生驗證得不到安全結果時,OnColorGlyphRasterize 會收到原始 SVG 素材,應用程式需要更廣 SVG 功能集時仍由它負責
放置
SVG viewport 以等比且保持長寬比的縮放映射到要求的字型大小正方形,把 SVG 向下的 Y 座標轉成 PDF 向上的 Y 座標,並把 Form XObject 錨定在字形基線上