HPDFCreateXPSDocumentHandler Function
function HPDFCreateXPSDocumentHandler: IHPDFDocumentHandler;
Создаёт опциональный обработчик фиксированных страниц XPS и OpenXPS с упорядоченным Glyphs текстом и нативным векторным Path преобразованием
Импортёр путей принимает ограниченную сокращённую геометрию, F0 и F1 правила заливки, сплошные заливки и обводки ARGB и RGB из атрибутов или элементов-свойств, многоточечные LinearGradientBrush и эллиптические RadialGradientBrush значения, единую альфу стопов, прозрачность кистей и путей, отображение градиента относительно границ и абсолютное, толщину обводки и шестипараметрические RenderTransform значения
Пакетные JPEG-, PNG-, TIFF- и JPEG XR- ImageBrush заливки поддерживают None, Tile, FlipX, FlipY, и FlipXY режимы тайлов, абсолютное или RelativeToBoundingBox Viewbox и Viewport отображение, нативное отсечение путей и размещений, конечные шестипараметрические Transform атрибуты или ImageBrush.Transform MatrixTransform элементы в координатах кисти, прозрачность кистей и путей, альфу soft-mask PNG, внутренние размеры с учётом DPI и один кэш декодированных ресурсов на конверсию
Создает дополнительный обработчик фиксированных страниц XPS и OpenXPS
Path.OpacityMask принимает сплошные, многоточечные линейные или эллиптические радиальные градиенты и PNG ImageBrush маски с обычным, тайловым или зеркальным размещением; равномерная альфа вливается в существующие состояния заливки и обводки, а переменная альфа использует ограниченные нативные transparency-группы DeviceGray, переиспользующие шейдинг-паттерны и потоки soft-mask изображений
VisualBrush принимает встроенные или ресурсные Canvas, Path, и Glyphs визуалы, разрешает StaticResource значения через вложенные и удалённые ResourceDictionary области и отображает абсолютный Viewbox в абсолютный или RelativeToBoundingBox Viewport
Каждый отдельный визуал один раз компилируется в переиспользуемый Form XObject PDF со своими ресурсами шрифтов, XObject, паттернов, graphics-state и цветовых пространств; обычное размещение исполняет Form напрямую, а Tile, FlipX, FlipY, и FlipXY используют ограниченные нативные tiling-паттерны вместо разворачивания команд рисования визуала на каждую ячейку
Необязательные обработчики документов
Canvas.Clip принимает сокращённую геометрию, локальные или удалённые StaticResource PathGeometry значения и прямые элементы-свойства с ограниченной структурированной PathFigure геометрией линий, полилиний, Безье, квадратичных кривых или дуг; трансформации геометрии и EvenOdd или NonZero правила заливки компонуются с трансформацией Canvas перед нативным PDF W* или W отсечением
Вложенные Canvas-клипы сохраняют своё пересечение состояний графики PDF, ограничивают дочерние link-аннотации активными трансформированными границами клипа, трактуют пустую геометрию как пустой клип без диагностики, ограничивают разобранную геометрию 100 000 числовых значений и строго отказывают перед отрисовкой потомков, если геометрия или её эффективная матрица повреждены или вырождены
Canvas Opacity и сплошные, линейно-градиентные, радиально-градиентные или PNG-изображения Canvas.OpacityMask значения захватывают потомков в один изолированный Form XObject DeviceRGB, так что перекрывающиеся дети компонуются до применения групповой альфы; равномерная альфа маски вливается в состояние группы, а пространственно переменная альфа переиспользует ограниченные нативные soft-mask ресурсы
Вложенные группы Canvas сохраняют собственные трансформации, клипы, перенесённые ресурсы шрифтов, XObject, паттернов, graphics-state и цветовых пространств, а также клипнутые ссылки; конверсия допускает максимум 4096 Form-групп Canvas и 16 МиБ захваченных команд на группу и отвергает дублированные, неподдерживаемые, повреждённые, вырожденные или чрезмерно большие маски до публикации частичных или недостижимых ресурсов
Glyphs разбирает максимум 65 536 строгих Indices отображений, сохраняет число кодовых единиц и глифов кластеров, явные продвижения в сотых долях em, горизонтальные и вертикальные смещения, нечётный BidiLevel обратный порядок, сплошные кисти из атрибутов или Glyphs.Fill элементов-свойств, прозрачность и извлечение Unicode, группирует простые отображения в нативные PDF TJ массивы и строго отказывает на повреждённом или неограниченном входе
Пакетные FontUri ресурсы принимают программы TrueType и OpenType, фрагменты членов TTC и GUID-обфусцированные XPS-шрифты, сохраняют прямые GlyphIndex значения или глифы из cmap, переиспользуют байты шрифтов между запусками, соблюдают права встраивания и запрета сабсеттинга и публикуют кластерные ToUnicode карты
FixedPage.NavigateUri на трансформированных Path и Glyphs визуалах создаёт нативные link-аннотации PDF, чьи зоны клика следуют геометрии путей или метрикам глифов; HTTP-, HTTPS- и mail-ссылки становятся URI-действиями, а ссылки на страницы относительно пакета и percent-декодированные LinkTarget фрагменты становятся прямыми или обратными GoTo-действиями после создания всех страниц
Canvas FixedPage.NavigateUri наследуется потомками Path, Glyphsи вложенными визуалами Canvas, пока потомок его не переопределит; каждая аннотация сохраняет границы и трансформацию своего визуала, активные клипы Canvas ограничивают унаследованные зоны клика, вложенные области восстанавливают внешнюю цель, изолированные группы прозрачности сохраняют аннотации, а переиспользуемые VisualBrush захваты остаются неинтерактивными
Навигация принимает максимум 65 536 ссылок и 8192 символа на URI, проверяет отмену при публикации, подавляет аннотации, пока захватывается переиспользуемый VisualBrush контент, и строго отказывает на управляющих символах, небезопасных схемах, отсутствующих целях или несовпадениях страниц и фрагментов
Неподдерживаемые нестандартные RelativeTransform, неразрешённые матричные ресурсы, spread градиента Repeat или Reflect, не-sRGB интерполяция, переменная альфа стопов в paint-кистях, вырожденные оси, преобразование цвета, обводка изображениями, относительные VisualBrush viewbox-ы, имитация стилей, боковые глифы и расширенные свойства обводки остаются явными диагностиками