HPDFCreateXPSDocumentHandler 函式

function HPDFCreateXPSDocumentHandler: IHPDFDocumentHandler;

建立選用的 XPS 與 OpenXPS 固定頁面處理器,把有序的 Glyphs 文字與原生向量 Path 轉換成 PDF

路徑匯入器接受有界的縮寫幾何、F0 與 F1 填充規則、屬性或屬性元素形式的純色 ARGB 與 RGB 填充與筆劃、屬性元素形式的多停駐點 LinearGradientBrush 與橢圓 RadialGradientBrush 值、均一的停駐點 alpha、筆刷與路徑不透明度、相對於界限與絕對座標的漸層對應、筆劃寬度,以及六參數的 RenderTransform 值

套件中的 JPEG、PNG、TIFF 與 JPEG XR ImageBrush 填充支援 None、Tile、FlipX、FlipY 與 FlipXY 平鋪模式、絕對或 RelativeToBoundingBox 的 Viewbox 與 Viewport 對應、原生路徑與放置裁剪、筆刷局部座標中有限的六參數 Transform 屬性或 ImageBrush.Transform MatrixTransform 元素、筆刷與路徑不透明度、PNG 軟式遮罩 alpha、DPI 感知的固有尺寸,以及每次轉換一個已解碼資源快取

重複的影像筆刷使用原生 PDF 影像平鋪圖樣(tiling pattern),一般或反射單元分別以一、二或四個裁剪後的放置呈現,同時一個影像 XObject 及其軟式遮罩保持共用;圖樣矩陣串接固定頁面、路徑與筆刷變換,而不改變向量路徑幾何

Path.OpacityMask 接受純色、多停駐點線性或橢圓放射狀漸層,以及具一般、平鋪或反射放置的 PNG ImageBrush 遮罩;均勻的 alpha 會折入既有的填充與筆劃狀態,而空間上可變的 alpha 則使用有界的原生 DeviceGray 透明度群組,重複使用明暗圖樣與影像軟式遮罩串流

VisualBrush 接受內嵌或以資源為後盾的 Canvas、Path 與 Glyphs 視覺元素、透過巢狀與遠端 ResourceDictionary 範圍解析 StaticResource 值,並把絕對 Viewbox 對應到絕對或 RelativeToBoundingBox 的 Viewport

每個相異的視覺元素只編譯一次,成為可重複使用的 PDF Form XObject,並附上所需的字型、XObject、圖樣、圖形狀態與色彩空間資源;一般放置直接執行 Form,而 Tile、FlipX、FlipY 與 FlipXY 則改用有界的原生平鋪圖樣,不為每個單元展開視覺繪圖命令

視覺、筆刷與容器路徑的變換和不透明度在各自的座標空間中合成,而遞迴資源、格式錯誤的對應、不支援的巢狀內容,以及超出深度、內容、快取或放置預算的情況,都會在部分 Form 發布之前 fail closed

Canvas.Clip 接受縮寫幾何、本機或遠端 StaticResource 的 PathGeometry 值,以及含有有界結構化 PathFigure 直線、折線、Bézier、二次曲線或弧線區段的直接屬性元素;幾何變換與 EvenOdd 或 NonZero 填充規則會在原生 PDF W* 或 W 裁剪之前與 Canvas 變換合成

巢狀 Canvas 裁剪保留其 PDF 圖形狀態交集、把子系連結註解限制在作用中的已變換裁剪界限內、把空幾何視為不帶診斷訊息的空裁剪、把已解析幾何上限設為 100,000 個數值,並在幾何或其有效矩陣格式錯誤或奇異時,於子項繪製前 fail closed

Canvas Opacity 與純色、線性漸層、放射狀漸層或 PNG 影像形式的 Canvas.OpacityMask 值會把子系擷取到一個隔離的 DeviceRGB Form XObject,讓重疊的子項在套用群組 alpha 之前先完成合成;均勻的遮罩 alpha 會折入該群組狀態,而空間上可變的 alpha 則重複使用有界的原生軟式遮罩資源

巢狀 Canvas 群組保留自己的變換、裁剪、移轉過來的字型、XObject、圖樣、圖形狀態與色彩空間資源,以及已裁剪的連結;轉換最多允許 4,096 個 Canvas 群組 Form,每個群組最多 16 MiB 的已擷取命令,並在發布部分或不可達資源之前,拒絕重複、不支援、格式錯誤、奇異或過大的遮罩

Glyphs 最多解析 65,536 個嚴格的 Indices 對應、保留叢集碼位與字形數、明確的百分之一 em 前進量、水平與垂直偏移、奇數 BidiLevel 的反向推進、純色屬性或 Glyphs.Fill 屬性筆刷、不透明度與 Unicode 擷取、把簡單對應批次成原生 PDF TJ 陣列,並在輸入格式錯誤或無界時 fail closed

套件 FontUri 資源接受 TrueType 與 OpenType 程式、TTC 成員片段與 GUID 混淆的 XPS 字型、保留直接 GlyphIndex 值或 cmap 衍生字形、跨執行重複使用字型位元組、遵守內嵌與禁止子集化權限,並發布叢集感知的 ToUnicode 對應表

已變換 Path 與 Glyphs 視覺元素上的 FixedPage.NavigateUri 會建立原生 PDF 連結註解,其點擊界限跟隨路徑幾何或字形度量;HTTP、HTTPS 與 mail 連結變成 URI 動作,而套件相對的頁面參照與百分比解碼後的 LinkTarget 片段,則在所有頁面建立完成後變成向前或向後的 GoTo 動作

Canvas 的 FixedPage.NavigateUri 會被子系 Path、Glyphs 與巢狀 Canvas 視覺元素繼承,直到某個子系覆寫它為止;每個註解保留其視覺元素的界限與變換、作用中的 Canvas 裁剪會約束繼承而來的點擊區域、巢狀範圍會還原外層目標、隔離的不透明度群組會保留註解,而可重複使用的 VisualBrush 擷取則保持非互動

導覽最多接受 65,536 個連結,每個 URI 最多 8,192 個字元、會在發布時檢查取消、在擷取可重複使用 VisualBrush 內容時抑制註解,並針對控制字元、不安全的 scheme、缺席的目標或頁面與片段不符,一律 fail closed

不支援的非標準 RelativeTransform、未解析的矩陣資源、Repeat 或 Reflect 漸層擴散、非 sRGB 插補、繪製筆刷中的可變停駐點 alpha、退化軸、色彩轉換、影像筆劃、相對 VisualBrush 檢視框、樣式模擬、橫向字形與進階筆劃屬性,仍然會產生明確的診斷訊息

選用的文件處理器