HPDFCreateXPSDocumentHandler 函数

function HPDFCreateXPSDocumentHandler: IHPDFDocumentHandler;

创建可选的 XPS 与 OpenXPS 固定页处理器,将文本转换为有序的 Glyphs,将矢量转换为原生 Path 转换

路径导入器接受有界的缩写几何、F0 与 F1 填充规则、属性或属性元素的 solid ARGB 与 RGB 填充和描边、属性元素的多 stop LinearGradientBrush 与椭圆 RadialGradientBrush 值、统一 stop alpha、画刷与路径透明度、相对边界与绝对渐变映射、描边宽度以及六参数 RenderTransform 值

包内 JPEG、PNG、TIFF 与 JPEG XR ImageBrush 填充支持 None、Tile、FlipX、FlipY 与 FlipXY 平铺模式、绝对或 RelativeToBoundingBox 的 Viewbox 与 Viewport 映射、原生路径与放置裁剪、画刷局部坐标下有限的六参数 Transform 属性或 ImageBrush.Transform MatrixTransform 元素、画刷与路径透明度、PNG 软蒙版 alpha、DPI 感知的固有尺寸,以及每次转换一个解码资源缓存

重复图像画刷使用原生 PDF 图像平铺 pattern,普通或反射单元格带一、二或四个裁剪放置,同时一个 image XObject 及其软蒙版保持共享;pattern 矩阵级联固定页面、路径与画刷变换,不改变矢量路径几何

Path.OpacityMask 接受 solid、多 stop 线性或椭圆径向渐变,以及普通、平铺或反射放置的 PNG ImageBrush 蒙版;均匀 alpha 折入既有填充与描边状态,空间可变 alpha 使用有界的原生 DeviceGray 透明组,复用 shading pattern 与图像软蒙版流

VisualBrush 接受内联或资源承载的 Canvas、Path 与 Glyphs visual,经嵌套与远程 ResourceDictionary 作用域解析 StaticResource 值,并把绝对 Viewbox 映射到绝对或 RelativeToBoundingBox 的 Viewport

每个不同的 visual 只编译一次,成为可复用的 PDF Form XObject,带其所需的字体、XObject、pattern、图形状态与颜色空间资源;普通放置直接执行 Form,Tile、FlipX、FlipY 与 FlipXY 使用有界的原生平铺 pattern,而不是逐单元格展开 visual 绘制命令

visual、画刷与所在路径的变换和透明度在各自的坐标空间中组合;递归资源、畸形映射、不受支持的嵌套内容,以及超出深度、内容、缓存或放置预算,都会在发布部分 Form 之前失败即关闭

Canvas.Clip 接受缩写几何、本地或远程 StaticResource 的 PathGeometry 值,以及包含有界结构化 PathFigure 直线、折线、Bézier、二次或弧段的直接属性元素;几何变换与 EvenOdd / NonZero 填充规则先与 Canvas 变换组合,再进入原生 PDF W* / W 裁剪

嵌套 Canvas 裁剪保留其 PDF 图形状态交集,把后代链接注释约束到活动变换后的裁剪边界,空几何视为空裁剪且不产生诊断,解析几何上限 100,000 个数值;几何或其有效矩阵畸形或奇异时,在子绘制之前失败即关闭

Canvas Opacity 与 solid、线性渐变、径向渐变或 PNG 图像的 Canvas.OpacityMask 值把后代捕获进一个隔离的 DeviceRGB Form XObject,重叠子级先合成再应用组 alpha;均匀蒙版 alpha 折入该组状态,空间可变 alpha 复用有界的原生软蒙版资源

嵌套 Canvas 组保留自己的变换、裁剪、转移的字体、XObject、pattern、图形状态与颜色空间资源以及被裁剪的链接;转换最多允许 4,096 个 Canvas 组 Form、每组 16 MiB 捕获命令,并在发布部分或不可达资源前拒绝重复、不受支持、畸形、奇异或超大的蒙版

Glyphs 最多解析 65,536 条严格 Indices 映射,保留簇码元与字形数、显式的百分之一 em advance、水平与垂直偏移、奇数 BidiLevel 反向推进、solid 属性或 Glyphs.Fill 属性画刷、透明度与 Unicode 提取,把简单映射批量进原生 PDF TJ 数组,并对畸形或无界输入失败即关闭

包 FontUri 资源接受 TrueType 与 OpenType 程序、TTC 成员片段和 GUID 混淆的 XPS 字体,保留直接 GlyphIndex 值或 cmap 派生字形,跨 run 复用字体字节,遵守嵌入与禁止子集化权限,并发布簇感知的 ToUnicode 映射

变换后的 Path 与 Glyphs visual 上的 FixedPage.NavigateUri 创建原生 PDF 链接注释,点击边界跟随路径几何或字形度量;HTTP、HTTPS 与 mail 链接成为 URI 动作,包相对页面引用和百分号解码的 LinkTarget 片段在所有页面创建后成为前进或后退的 GoTo 动作

Canvas 的 FixedPage.NavigateUri 被后代 Path、Glyphs 与嵌套 Canvas visual 继承,直到某个后代覆盖它;每个注释保留其 visual 的边界与变换,活动的 Canvas 裁剪约束继承的点击区域,嵌套作用域恢复外层目标,隔离透明组保留注释,可复用 VisualBrush 捕获保持非交互

导航最多接受 65,536 个链接、每 URI 8,192 字符;发布时检查取消,捕获可复用 VisualBrush 内容期间抑制注释;控制字符、不安全 scheme、缺失目标或页面与片段不匹配都失败即关闭

不受支持的非标准 RelativeTransform、未解析的矩阵资源、Repeat 或 Reflect 渐变扩展、非 sRGB 插值、绘图画刷中的可变 stop alpha、退化轴、颜色转换、图像描边、相对 VisualBrush viewbox、样式模拟、横排字形与高级描边属性仍是显式诊断

可选文档处理器