Función HPDFCreateXPSDocumentHandler

function HPDFCreateXPSDocumentHandler: IHPDFDocumentHandler;

Crea el handler opcional de páginas fijas XPS y OpenXPS con conversión de texto Glyphs ordenado y Path vectorial nativo

El importador de paths acepta geometría abreviada acotada, reglas de relleno F0 y F1, fills y strokes sólidos ARGB y RGB vía atributos o property elements, valores multi-stop LinearGradientBrush y RadialGradientBrush elípticos mediante property elements, alpha uniforme de stops, opacidad de brush y de path, mapeo de gradientes relativo a bounds o absoluto, ancho de stroke y valores RenderTransform de seis parámetros

Los fills ImageBrush de JPEG, PNG, TIFF y JPEG XR del paquete soportan modos de tile None, Tile, FlipX, FlipY y FlipXY, mapeo Viewbox y Viewport absoluto o RelativeToBoundingBox, clipping nativo de path y de colocación, atributos Transform finitos de seis parámetros o elementos MatrixTransform de ImageBrush.Transform en coordenadas locales del brush, opacidad de brush y de path, alpha de soft-mask PNG, dimensionamiento intrínseco consciente del DPI y un cache de recursos decodificados por conversión

Los image brushes repetidos usan tiling patterns de imágenes PDF nativas con una, dos o cuatro colocaciones recortadas para celdas ordinarias o reflejadas, mientras un image XObject y su soft mask permanecen compartidos; las matrices de pattern concatenan las transformaciones de fixed-page, de path y de brush sin alterar la geometría vectorial del path

Path.OpacityMask acepta máscaras sólidas, de gradiente linear multi-stop o radial elíptico, y máscaras PNG ImageBrush con colocación ordinaria, en tile o reflejada; el alpha uniforme se pliega en los estados existentes de fill y stroke, mientras que el alpha variable usa transparency groups DeviceGray nativos acotados que reutilizan shading patterns y streams de soft-mask de imágenes

VisualBrush acepta visuales Canvas, Path y Glyphs inline o respaldados por recursos, resuelve valores StaticResource a través de scopes ResourceDictionary anidados y remotos, y mapea un Viewbox absoluto en un Viewport absoluto o RelativeToBoundingBox

Cada visual distinto se compila una vez en un PDF Form XObject reutilizable con sus recursos requeridos de fuente, XObject, pattern, graphics state y color space; la colocación ordinaria ejecuta el Form directamente, mientras que Tile, FlipX, FlipY y FlipXY usan tiling patterns nativos acotados en lugar de expandir los comandos de dibujo del visual por celda

Las transformaciones y la opacidad de visuales, brushes y paths contenedores se componen en sus propios espacios de coordenadas, mientras que los recursos recursivos, los mapeos malformados, el contenido anidado no soportado y los budgets de profundidad, contenido, cache o colocación excedidos fallan en modo fail-closed antes de publicar un Form parcial

Canvas.Clip acepta geometría abreviada, valores PathGeometry de StaticResource locales o remotos, y property elements directos que contienen segmentos PathFigure estructurados y acotados de línea, polyline, Bézier, cuadráticos o arcos; las transformaciones de geometría y las reglas de relleno EvenOdd o NonZero se componen con la transformación del Canvas antes del clipping nativo PDF W* o W

Los clips de Canvas anidados retienen su intersección de graphics state de PDF, restringen las link annotations descendientes a los bounds activos del clip transformado, tratan la geometría vacía como un clip vacío sin diagnóstico, limitan la geometría parseada a 100.000 valores numéricos y fallan en modo fail-closed antes de pintar hijos cuando la geometría o su matriz efectiva está malformada o es singular

El Opacity de Canvas y los valores sólidos, de gradiente linear, de gradiente radial o de imagen PNG de Canvas.OpacityMask capturan los descendientes en un Form XObject DeviceRGB aislado, de modo que los hijos superpuestos se componen antes de aplicar el alpha del grupo; el alpha uniforme de la máscara se pliega en ese estado de grupo, mientras que el alpha espacialmente variable reutiliza recursos de soft-mask nativos acotados

Los grupos de Canvas anidados preservan sus propias transformaciones, clips, recursos transferidos de fuente, XObject, pattern, graphics state y color space, y los links recortados; la conversión permite como máximo 4.096 Forms de grupo de Canvas y 16 MiB de comandos capturados por grupo, y rechaza máscaras duplicadas, no soportadas, malformadas, singulares o sobredimensionadas antes de publicar recursos parciales o inalcanzables

Glyphs parsea como máximo 65.536 mapeos estrictos de Indices, preserva las cantidades de code units y glifos por clúster, los advances explícitos en centésimas de em, los offsets horizontales y verticales, la progresión inversa de BidiLevel impar, los brushes sólidos por atributo o de la propiedad Glyphs.Fill, la opacidad y la extracción Unicode, agrupa mapeos simples en arrays PDF nativos TJ y falla en modo fail-closed ante input malformado o sin acotar

Los recursos FontUri del paquete aceptan programas TrueType y OpenType, fragmentos miembros de TTC y fuentes XPS ofuscadas por GUID, preservan valores GlyphIndex directos o glifos derivados de cmap, reutilizan los bytes de fuente entre corridas, respetan los permisos de embedding y de no subsetting, y publican mapas ToUnicode conscientes de clústeres

FixedPage.NavigateUri sobre visuales Path y Glyphs transformados crea link annotations PDF nativas cuyos bounds de click siguen la geometría del path o las métricas del glifo; los links HTTP, HTTPS y mail se convierten en acciones URI, mientras que las referencias de página relativas al paquete y los fragmentos LinkTarget percent-decodificados se convierten en acciones GoTo hacia adelante o hacia atrás después de crear todas las páginas

Un FixedPage.NavigateUri de Canvas lo heredan los visuales descendientes Path, Glyphs y Canvas anidados hasta que un descendiente lo sobrescribe; cada anotación retiene los bounds y la transformación de su visual, los clips activos de Canvas restringen las regiones de click heredadas, los scopes anidados restauran el target externo, los grupos de opacidad aislados preservan las anotaciones y la captura reutilizable de VisualBrush permanece no interactiva

La navegación acepta como máximo 65.536 links y 8.192 caracteres por URI, chequea la cancelación mientras publica, suprime anotaciones mientras se captura contenido reutilizable de VisualBrush y falla en modo fail-closed ante caracteres de control, schemes inseguros, targets ausentes o discrepancias de página y fragmento

El RelativeTransform no estándar no soportado, los recursos de matriz sin resolver, el gradient spread Repeat o Reflect, la interpolación no sRGB, el alpha variable de stops en paint brushes, los ejes degenerados, la conversión de color, los image strokes, los viewboxes relativos de VisualBrush, la simulación de estilos, los glifos sideways y las propiedades de stroke avanzadas permanecen como diagnósticos explícitos

Document Handlers opcionales